我想计算以下递归的符号积分:
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)
表达式是真还是假。
如果你能建议如何计算这个递归积分,我会感激不尽的。谢谢
答案 0 :(得分:0)
如果您想确保在递归函数的每个步骤中使用不同的实数值,您可以定义一个变量来说明您的深度。
假设我们将其称为depth
,并且在顶层等于1.每次向前推进一步时,将depth
增加1。
现在,如果您想获得与正确深度相对应的数字,您可以将其称为y(depth)
。