我有一个函数,我想作为一个整数(使用函数'整数'它在函数句柄中使用函数句柄)使用符号变量,但我想创建一个matlabFunction(一个匿名函数)只根据其中一个符号变量,并将其他符号变量视为常量。
s = (g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2)
S = matlabFunction(s)
S =
@(a,g,t,v)sqrt(v.^2+g.^2.*t.^2+g.*t.*v.*sin(a).*2.0)
但我希望看到的是
@(t)sqrt(v.^2+g.^2.*t.^2+g.*t.*v.*sin(a).*2.0)
答案 0 :(得分:0)
这里有一个解决方法。
函数integral
在数值上集成了一个函数。因此,要使用它,您需要一个数值表达式,因此您需要为a
,g
和v
赋予值。
如果你不想这样做,你可以象征性地整合等式s
,所以:
s = (g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2)
int(s,'t')
ans=
(t/2 + (v*sin(a))/(2*g))*(g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2) + (log((g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2) + (t*g^2 + v*sin(a)*g)/(g^2)^(1/2))*(g^2*v^2 - g^2*v^2*sin(a)^2))/(2*(g^2)^(3/2))
然后你可以使用微积分的基本定理来评估积分。