我正在尝试将代码从Mathematica重写为Matlab。
Mathematica的原始代码是:
[好,直到这里没问题,因为我可以在任何需要的地方(x,x + 1,...)求值TT [x]函数并执行数字积分。
我想在Matlab上做完全一样的事情,这是我的问题:
TT = simplify(T);
Fx = 7.734*10^(-2)*vpaintegral(TT,x+1,0,Mu)
Result = double(Fx)
使用sym / vpaintegral时出错(第131行)无法针对“ x +1”进行积分。积分变量必须为符号变量。
我做错了什么?可以在Mathematica上正确评估和集成函数,但在Matlab上不能正确评估和集成函数,还有另一种方法吗?如果我引入“ x”而不是“ x + 1”,那么积分将完美地工作,否则就无法实现。
提前感谢!
为什么不将TT
替换为subs(TT,x,x+1)
,例如,我要用y替换下面函数中的cos(x)并进行积分
syms x y
f=3/4*(1+cos(x))^2
vpaintegral(subs(f,cos(x),y),y,0,1)