Re: [討論] 數值積分
※ 引述《sikotu (sikotu)》之銘言:
: 請問一下
: 現在我式子需要做兩次數值積分(不是做雙重積分)
: 例如:
: 1 1
: ∫ exp(∫ 2tx dx) dt
: 0 0
: t和x為變數
: 先在指數做一次對x的數值積分
: 積分後為t的函數
: 接著指數函數再對t做數值積分
: 嘗試過許多遍一直積不出來...
: 所以想來請教一下大家
: 感謝 <(_ _)>
你要做數值積分的話被積函數必須變數可分離
如你的例子可寫成
1 1
∫ exp(t∫ 2x dx) dt
0 0
剩下的就很簡單了
f1=@(x) 2*x;
I1=quad(f1,0,1,1e-15);
f2=@(t) exp(I1*t);
I2=quad(f2,0,1,1e-15)
如果變數不可分離就只能用符號運算
I=int(exp(int('2*x*t','x',0,1)),0,1)
答案為exp(1)-1
可以看兩個算出來的答案的差
er=double(abs(I-I2))
基本上非常接近
不過用符號運算必須被積函數能夠求出反導函數才可以
也有可能裡面積分積得出來 但是外面的就積不出來
所以還有第三種作法
I3=int('2*x*t','x',0,1);
eval(['f3=@(t) exp(',char(I3),');'])
I4=quad(f3,0,1,1e-15)
這樣是把裡面的積分用符號運算算出結果
然後外面的積分用數值積分
這樣被積函數的要求只有裡面的積分可以寫出反導函數而已
當然你的例子是三種作法都可以
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.146.175
推
07/06 02:46, , 1F
07/06 02:46, 1F
→
07/06 02:49, , 2F
07/06 02:49, 2F
→
07/06 02:51, , 3F
07/06 02:51, 3F
→
07/06 17:36, , 4F
07/06 17:36, 4F
推
07/08 09:54, , 5F
07/08 09:54, 5F
討論串 (同標題文章)