MATLAB 不计算积分
MATLAB not evaluating integral
MATLAB 返回相同的表达式。
这是我的代码
syms tau alpha phi
f = sign(alpha*cos(phi))*(abs(alpha*cos(phi)) - 2.5*(alpha*cos(phi))^2);
F=f*sin(phi);
int(F,phi, [pi/2, acos(tau/alpha)])
我确实插入了变量 tau 和 alpha 的值,但它仍然给我相同的表达式。任何人都知道如何解决它?或者其他一些可以用这些符号给我答案的数值方法? wolfram-mathematica 有帮助吗?
类似于
syms tau alpha phi
f = sign(alpha*cos(phi))*(abs(alpha*cos(phi)) - 2.5*(alpha*cos(phi))^2);
只会生成另一个符号变量。然而,您的目标是指定一个符号函数,为此您必须指定函数参数:
syms tau alpha phi
f(tau,alpha,phi) = sign(alpha*cos(phi))*(abs(alpha*cos(phi)) - 2.5*(alpha*cos(phi))^2);
F(tau,alpha,phi) =f*sin(phi);
然后你可以用
计算积分
R = int(F,phi, [pi/2, acos(tau/alpha)])
由于您的积分取决于 tau
和 alpha
,R
又是一个符号函数 R(tau,alpha)
。
或者你可以只在末尾指定参数,例如
syms tau alpha phi
f = sign(alpha*cos(phi))*(abs(alpha*cos(phi)) - 2.5*(alpha*cos(phi))^2);
F=f*sin(phi);
R(tau,alpha) = int(F,phi, [pi/2, acos(tau/alpha)])
但我个人觉得不太干净。
注意F也可以直接写成
F(tau,alpha,phi) = sin(phi)*(sign(alpha*cos(phi))*(abs(alpha*cos(phi)) - 2.5*(alpha*cos(phi))^2));
数学
Integrate[(Sign[alpha*Cos[phi]]*(Abs[alpha*Cos[phi]] - 5/2*
(alpha*Cos[phi])^2))*Sin[phi], {phi, Pi/2, ArcCos[tau/alpha]}]
(* 条件表达式[-(tau^2/(2 alpha)) + (5 alpha^3 Abs[tau]^3)/
(6 Abs[alpha]^4), ArcCos[tau/alpha] \[Element] Reals] *)
因此,如果 ArcCos[tau/alpha] 是实数元素,则结果是 ConditionalExpression 中的表达式。
如果您可以指定类似 -1<=tau/alpha<=1 && 0<=tau 的内容,那么它可以提供更简单的结果,(tau^2 (-3 + 5 tau))/ (6 个阿尔法)
请在依赖之前验证它。
MATLAB 返回相同的表达式。 这是我的代码
syms tau alpha phi
f = sign(alpha*cos(phi))*(abs(alpha*cos(phi)) - 2.5*(alpha*cos(phi))^2);
F=f*sin(phi);
int(F,phi, [pi/2, acos(tau/alpha)])
我确实插入了变量 tau 和 alpha 的值,但它仍然给我相同的表达式。任何人都知道如何解决它?或者其他一些可以用这些符号给我答案的数值方法? wolfram-mathematica 有帮助吗?
类似于
syms tau alpha phi
f = sign(alpha*cos(phi))*(abs(alpha*cos(phi)) - 2.5*(alpha*cos(phi))^2);
只会生成另一个符号变量。然而,您的目标是指定一个符号函数,为此您必须指定函数参数:
syms tau alpha phi
f(tau,alpha,phi) = sign(alpha*cos(phi))*(abs(alpha*cos(phi)) - 2.5*(alpha*cos(phi))^2);
F(tau,alpha,phi) =f*sin(phi);
然后你可以用
计算积分R = int(F,phi, [pi/2, acos(tau/alpha)])
由于您的积分取决于 tau
和 alpha
,R
又是一个符号函数 R(tau,alpha)
。
或者你可以只在末尾指定参数,例如
syms tau alpha phi
f = sign(alpha*cos(phi))*(abs(alpha*cos(phi)) - 2.5*(alpha*cos(phi))^2);
F=f*sin(phi);
R(tau,alpha) = int(F,phi, [pi/2, acos(tau/alpha)])
但我个人觉得不太干净。
注意F也可以直接写成
F(tau,alpha,phi) = sin(phi)*(sign(alpha*cos(phi))*(abs(alpha*cos(phi)) - 2.5*(alpha*cos(phi))^2));
数学
Integrate[(Sign[alpha*Cos[phi]]*(Abs[alpha*Cos[phi]] - 5/2*
(alpha*Cos[phi])^2))*Sin[phi], {phi, Pi/2, ArcCos[tau/alpha]}]
(* 条件表达式[-(tau^2/(2 alpha)) + (5 alpha^3 Abs[tau]^3)/ (6 Abs[alpha]^4), ArcCos[tau/alpha] \[Element] Reals] *)
因此,如果 ArcCos[tau/alpha] 是实数元素,则结果是 ConditionalExpression 中的表达式。
如果您可以指定类似 -1<=tau/alpha<=1 && 0<=tau 的内容,那么它可以提供更简单的结果,(tau^2 (-3 + 5 tau))/ (6 个阿尔法)
请在依赖之前验证它。