[運算] quadgk積分運算

看板MATLAB作者 (榮)時間6年前 (2018/02/12 20:08), 編輯推噓1(100)
留言1則, 1人參與, 6年前最新討論串1/1
大家好,小弟目前想要用quadgk函數來計算下面這個積分 https://imgur.com/jn2YHYx
其中 https://imgur.com/a/BguSY 我預期積分出來的值應該會介於數量級10^(-22)~10^(-23) 程式碼如下 (假設qa=2) : % parameter a0 = 1.412 * 10^(-10) ; a = sqrt(3) * a0 ; d1 = 3.35 * 10^(-10) ; del = 0.184*sqrt(3)*a0 ; g0 = -2.7 ; g1 = 0.48 ; % q value qa = 2 ; q = qa/(a) ; % functional form fun = @(r) 10.^(50).*(besselj(0,q.*r)).*(r.*( g0.*(1-(d1./r).^2).*exp(-(r-a0)./del)... + g1.*(d1./r).^2.*exp(-(r-d1)./del) )) ./(2.*pi) ; % integration tq = quadgk(fun,0,inf) 但是出來之後結果是tq=0 我原本想說可能是因為我積分數值都太小,所以我把fun整個scale 10^(50)倍, 但是出來之後結果還是tq=0,我就有點卡住了QQ 想請問各位大大像這種數值比較小的積分要怎麼做才會準呢? 謝謝各位了OTZ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.112.227 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1518437303.A.079.html

02/12 20:36, 6年前 , 1F
不要用SI,用atomic unit
02/12 20:36, 1F
文章代碼(AID): #1QWOEt1v (MATLAB)
文章代碼(AID): #1QWOEt1v (MATLAB)