[問題] 數值積分

作者: obelisk0114 (追風箏的孩子)   2015-04-25 16:42:30
我想要用數值積分求下面這積分的 FWHM(半高全寬)
http://i.imgur.com/LgocICB.png
我想求出最大值發生處以及其數值,然後用 FindRoot 解
但是第一步用 MaxValue 就跑出什麼 max precision 的問題
想問有什麼簡單的數值方法大致求出 FWHM
附上積分程式碼
Integrate[(
Abs[Integrate[
E^(I*2*Pi/0.7*z*0.5^2*p^2)*BesselJ[0, 2*Pi/0.7*r*0.5*p]*p, {p,
0, 1}]])^2*r, {r, 0, 3552/15}]
作者: LPH66 (-6.2598534e+18f)   2015-04-25 22:08:00
要用 MMA 做數值積分基本上就把 Integrate 換成 NIntegrate就可以了, 不是真的太難數值積的東西應該都能做
作者: GeeDuTu (基督徒)   2015-04-25 22:13:00
我覺得不行 他這個裡面還有z也確實有點麻煩 我令z=Range[-10,10,0.1]算很久
作者: kanonehilber (隱居處)   2015-04-27 01:52:00
為什麼我看到的圖很奇怪@@之前遇到一個積分也是裡面有其他變數無法NIntegrate最後用Sum硬加
作者: GeeDuTu (基督徒)   2015-04-27 17:47:00
NIntegrate[y z^2, {z, 0, 2}]光這種就不行了
作者: AmibaGelos (Amiba Gelos)   2015-04-27 23:24:00
這個積分可以換成fresnel的實數積分,所以原式第二次積時可以改採手動sum的方式,間距取等比間距來加快計算基本上可以用1-BesselJ0 2-Erf 3-Fresnel的二重積分表示,不過因為bessel函式最快所以用bessel算就好了剛剛試了一下結果MMA內建的方法還是比較快@@Method->{"GlobalAdaptive",Method->"ClenshawCurtisOscillatoryRule"}

Links booklink

Contact Us: admin [ a t ] ucptt.com