次の再帰的な記号積分を計算したい:
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 から T までのさまざまな値の 'x' を呼び出すことを期待myfunc
していましたが、実際の値ではなくシンボリック値 'x' で呼び出されるため、エラーが返されます。実際、if (T>0)
式が真か偽かを判断することはできません。
この再帰積分の計算方法を教えていただければ幸いです。ありがとう