作者askooen (刺刺的鳳梨)
看板MATLAB
標題[討論] 有關數值積分
時間Mon May 27 01:51:19 2013
請問版上各位高手!
假設今天我有一個函數f(x,y)=exp(x+y)
如果y是一個array,等於[1 2 3 4 5]
若分別代入y=1, y=2,...後的函數陣列為f=[f(x,1), f(x,2),...]
則f的數值積分要怎麼做?
(也就是說我做y為不同值時,對x的數值積分)
我嘗試過這樣寫
y=[1 2 3 4 5]
f=inline('exp(x+y(ii))')
for ii=1:5
integral=quad(f(ii),xmin,xmax)
end
matlab出現了錯誤訊息
Not enough inputs to inline function.
我猜應該是f(x,y)必須輸入兩個值才行
但如果f輸入了兩個值,積分也不用積了 QQ
請問有什麼解決方法嗎
煩請各位大大回答
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.82.135.248
推 profyang:沒用過inline這函數 不過你y(ii)是啥?那時還沒進for迴圈? 05/27 02:11
→ profyang:是我的話就直接定義成向量用trapz了... 05/27 02:12
→ ejialan:把f改成f=inline('exp(x+y)')或f=@(x,y) exp(x+y) 05/27 08:11
→ ejialan:然後積分改成integral=quad(@(x) f(x,y(ii)),xmin,xmax) 05/27 08:11