[問題]quad積分問題已回收

看板MATLAB作者 (凡人昱)時間16年前 (2009/02/25 01:20), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
最近用quad作積分發現結果有問題 結果試著將積分範圍分成兩段分別積 結果就合理了 不知道是甚麼問題? code如下: xt =@(x) 0.1736*abs(5.1021e+003-x)./1000; sigy= @(x) 184.5*xt(x).^0.894 yt =@(x) 0.9848*abs(5.1021e+003-x)-103.6579 sigz1 = @(x) (440.8*xt(x).^1.9410 +106.6*xt(x).^1.1490)./2+ 6.2850 F1= @(x) (sigy(x).*sigz1(x)).^-1.*exp(-0.5*yt(x).^2./sigy(x).^2) 要F1對x積分 從4000.2積到5102 輸入quad(F1,4000.2,5102) 結果=3.4790e-009<--不合理答案 輸入quad(F1,4000.2,5000)+quad(F1,5000,5102) 結果=0.3686<--較正確答案 懷疑是是積分範圍不同 數值積分取點間隔太大造成~"~ 請問各位高手這是甚麼問題? 有讓第一種積分正確的方法嗎 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.40.65.191

02/25 11:00, , 1F
輸入quad(F1,4000.2,5102,1e-10),第四個輸入為容許誤差
02/25 11:00, 1F

02/25 12:24, , 2F
謝謝! 這樣答案就正確了 順便想請問這個tolerance代表的是
02/25 12:24, 2F

02/25 12:25, , 3F
答案的誤差容許範圍嗎 預設值是1e-6 為什麼我原本做法誤差
02/25 12:25, 3F

02/25 12:26, , 4F
0.3多 遠大於這個tolerance呢?
02/25 12:26, 4F
文章代碼(AID): #19f2nGgu (MATLAB)
文章代碼(AID): #19f2nGgu (MATLAB)