【问题标题】:Complex integration in MapleMaple 中的复杂集成
【发布时间】:2013-02-27 21:03:55
【问题描述】:

在 Maple 中计算以下代码需要很长时间。基本上,我试图在以原点为中心的圆上找到复值函数的均方模。代码应该如何改正,或者有没有在线计算器可以做到这一点?

evalf(subs(subs([n=3, p=1.2451, z=exp(x*I)/2], subs(s=(p/2)*(1+1/(4*z)^n), subs(t=s+sqrt(s^2-1/(4*z)^n), w=z*t^(2/n)))), Int(abs(w)^2, x=0..2*Pi)/(2*Pi)));

【问题讨论】:

    标签: integration maple


    【解决方案1】:

    这有用吗?我的意思是它给出了预期的结果吗?通过提供被积函数作为操作符(黑匣子),可以防止 evalf/Int 引擎过于昂贵地戳它。这可以节省时间,尽管存在风险,因为它可能会错过某些问题的关键不连续性。

    > U:=subs(subs([n=3, p=1.2451, z=exp(x*I)/2],
    >         subs(s=(p/2)*(1+1/(4*z)^n),
    >              subs(t=s+sqrt(s^2-1/(4*z)^n),
    >                   w=z*t^(2/n)))),
    >         Int(X->eval(abs(w)^2,x=X), 0..2*Pi)/(2*Pi)):
    
    > st:=time():
    > evalf(U);
                                 0.3351666815
    
    > time()-st;
                                     0.109
    

    另一个(可能不太普遍有用的可能性)可能是,

    > restart:
    > U:=subs(subs([n=3, p=1.2451, z=exp(x*I)/2],
    >         subs(s=(p/2)*(1+1/(4*z)^n),
    >              subs(t=s+sqrt(s^2-1/(4*z)^n),
    >                   w=z*t^(2/n)))),
    >         Int(abs(w)^2, x=0..2*Pi)/(2*Pi)):             
    
    > st:=time():
    > simplify(U);
    
                                                    -20
                      0.3351666815 - 0.5131390209 10    I
    
    > time()-st;
                                     3.150
    

    【讨论】:

    • 谢谢,您的第一个建议有效。第二个给出了不正确的结果,因为正函数的积分应该是正的。
    • 第二个结果与第一个结果具有相同的实部。不同之处在于由于数字舍入导致的假想伪影可以忽略不计,可以使用fnormal 命令将其删除。但我更多是出于好奇——第一种方式更好,而不仅仅是为了速度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    相关资源
    最近更新 更多