MATLAB不评估积分

时间:2017-07-18 07:07:22

标签: matlab wolfram-mathematica integration integral numerical-integration

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会帮忙吗?

2 个答案:

答案 0 :(得分:0)

这样的东西
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)])

由于您的积分取决于taualphaR再次是符号函数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));

答案 1 :(得分:0)

数学

Integrate[(Sign[alpha*Cos[phi]]*(Abs[alpha*Cos[phi]] - 5/2*
  (alpha*Cos[phi])^2))*Sin[phi], {phi, Pi/2, ArcCos[tau/alpha]}]

(* ConditionalExpression [ - (tau ^ 2 /(2 alpha))+(5 alpha ^ 3 Abs T ^ 3)/        (6Absα^ 4),ArcCos [tau / alpha] \ [Element] Reals] *)

因此,如果ArcCos [tau / alpha]是实数的元素,则结果是ConditionalExpression内的表达式。

如果您可以指定类似-1< = tau / alpha< = 1&& 0< = tau然后它可以提供更简单的结果,(tau ^ 2(-3 + 5 tau))/(6 alpha)

请在依赖它之前验证这一点。