JuliaMath / JuliaMath/Cubature.jl

specify order of pcubature rule

Open
#24 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
133
Forks
20
PR merge metrics
No merged PRs in 30d

Description

`pcubature` gives the wrong answer when integrating `sin(x)^2` in the interval `[0,2π]`: it should be π, it returns instead 0 ([thread in discourse](https://discourse.julialang.org/t/convergence-of-hcubature/660/5))
```
julia> pcubature(x -> sin(x[1])^2, [0.0], [2π], reltol=1e-6, abstol=1e-4)
(1.2564358174293111e-31,3.1410895435732783e-32)
julia> hcubature(x -> sin(x[1])^2, [0.0], [2π], reltol=1e-6, abstol=1e-4)
(3.1415926535897936,8.38977585329799e-9)
```
This is because `pcubature` starts with a low order rule and samples the integrand at the three points 0, π and 2π for which `sin^2` is identically 0. Similarly, when the integrand is `cos^2` it returns 2π because the integrand at those points is 1. (Note that `hcubature` gives the correct result in both cases.)

Currently there is no way of specifying a higher order rule: can this be supported?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.