使用 matlabFunction,我如何指定哪些是变量,哪些是常量?
Using matlabFunction, how can I specify which is the variable and which are constants?
我有一个函数,我想将其作为一个积分来求值(使用函数 'integral',它在参数中接受一个函数句柄),它使用符号变量,但我想创建一个 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)
这里有一个解决方法。
函数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))
然后你可以使用微积分基本定理计算积分。
我有一个函数,我想将其作为一个积分来求值(使用函数 'integral',它在参数中接受一个函数句柄),它使用符号变量,但我想创建一个 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)
这里有一个解决方法。
函数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))
然后你可以使用微积分基本定理计算积分。