我需要計算許多點的積分。所以,如何編寫包含數值積分的函數?
f = f(r,theta,k,phi);
q =integral2(f,0,1,0,2*pi,'AbsTol',0,'RelTol',1e-10); % integration should be by k and phi
我想要的Q的R和theta的一個功能,我可以隨時把它計算在給定的R和θ點的整合。我怎樣才能做到這一點? 問題是我無法使用無限的@函數或matlabFunction()方法,因爲它似乎是先完成了積分,當Matlab檢測到它沒有定義所有參數時,它會帶來一些錯誤。
「......它帶來了一些錯誤。」 - 如果你是特定的,這會很有幫助。你的代碼是無效的,除非函數'f'返回一個函數句柄。無論如何,重新定義'f'是一個壞主意。 – horchler
是的,f是手柄。積分採用了四個變量函數的函數句柄。錯誤與參數是函數句柄有關。然後我不明白什麼是定義一個函數的正確方法,它將計算我在網格中給出的許多點的積分。我用這種方式寫出q = @(r,theta)integral2(f,0,2 * pi,0,10,'AbsTol',0.01,'RelTol',1e-10),但我不確定這是否可行好。我認爲這是一個醜陋的解決方案。 – bordart