[討論] 有關數值積分

看板MATLAB作者 (刺刺的鳳梨)時間12年前 (2013/05/27 01:51), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
請問版上各位高手! 假設今天我有一個函數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

05/27 02:11, , 1F
沒用過inline這函數 不過你y(ii)是啥?那時還沒進for迴圈?
05/27 02:11, 1F

05/27 02:12, , 2F
是我的話就直接定義成向量用trapz了...
05/27 02:12, 2F

05/27 08:11, , 3F
把f改成f=inline('exp(x+y)')或f=@(x,y) exp(x+y)
05/27 08:11, 3F

05/27 08:11, , 4F
然後積分改成integral=quad(@(x) f(x,y(ii)),xmin,xmax)
05/27 08:11, 4F
文章代碼(AID): #1HeakS-w (MATLAB)