JuliaMath / JuliaMath/Cubature.jl
specify order of pcubature rule
- 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.