1
一個遞歸函數的我想計算以下符號積分這是遞歸的:積分在MATLAB
function [y] = myfunc(i,T)
s = sym('s');
x= sym('x');
h=[....] %matrix n*n (function of x)
d=[....] %matrix n*1 (constants)
for k=1:n
if (T>0)
y= int(exp(-s*x)*h(i,k)*myfunc(k,T-x/d(i)),'x',0,T);
end
end
我預期MATLAB,而計算的積分,來電myfunc(k,T-x/d(i))
爲從0到「x」的不同值T.但是,它將返回錯誤,因爲myfunc
將以符號值「x」調用,而不是實際值。確實,它不能確定if (T>0)
表達式是真是假。
如果你能提出如何計算這個遞歸積分,我會很感激。謝謝
我不認爲我能夠幫助你,但從試圖理解你的問題,我仍然不清楚'h'和'd'包含什麼。此外,在遞歸方案中,爲什麼當我傳遞函數時不會「更改」? – Vidar
我寫了第一個簡單和小的代碼,只關注這個問題。但正如您所問,我編輯並添加了更多的細節。此外,'h'的元素是'x'函數的概率密度函數,'d'包含常量值...謝謝 – Joseph
符號集成不會通過遞歸調用不同值的myfunc來工作。這種方法只適用於數字正交(顯然,它只是近似於積分,儘管通常很好)。 –