【问题标题】:MATLAB not evaluating integralMATLAB不评估积分
【发布时间】:2017-12-22 21:54:28
【问题描述】:

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 有帮助吗?

【问题讨论】:

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


    【解决方案1】:

    数学

    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[tau]^3)/ (6 Abs[alpha]^4), ArcCos[tau/alpha] \[Element] Reals] *)

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

    如果您可以指定类似 -1

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

    【讨论】:

    • 嗨,比尔,非常感谢您的帮助。您指定的条件适合我的工作,所以我可以输入它们。但问题是当我在mathematica 中运行你的脚本时,它给了我一个错误而不是答案。这是错误“SSH 在启动内核‘新内核’时遇到本地网络设置错误。错误代码 = 104。”。我真的是mathematica的初学者,你能帮我解决这个问题吗?非常感谢您的帮助。
    • 让我们试试这个:转到develop.open.wolframcloud.com/app 并等待它加载。点击右下角的“新建笔记本”,等待它稳定下来。然后点击大的白色区域并粘贴 Assuming[alpha>tau>0,Integrate[(Sign[alpha* Cos[phi]]* (Abs[alpha* Cos[phi]] -5/2* (alpha* Cos[ phi])^2))* Sin[phi],{phi,Pi/2,ArcCos[tau/alpha]}]] 并等待它稳定下来。单击菜单栏上的“评估”,然后单击“评估所有单元格”并等待。看看这是否有效。请不要滥用此服务。还有很多关于登录、订阅等我不使用的内容。
    【解决方案2】:

    有点像

    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));
    

    【讨论】:

    • 感谢您的帮助。但它并没有解决问题,它给了我与前面相同的答案,即它没有整合上述函数并再次返回相同的表达式。
    • @UzairKhan 您必须使用一些参数调用集成函数,例如x = double(R(1,2)) 给出与 tau = 1 和 alpha = 2 的积分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 2011-07-20
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 2017-05-16
    • 2021-07-07
    相关资源
    最近更新 更多