【问题标题】:Analytic solution to an equation including the error function in MaximaMaxima 中包含误差函数的方程的解析解
【发布时间】:2019-04-12 14:45:51
【问题描述】:

Maxima 似乎没有为这个方程提供一个包含误差函数的解析解。这里的自变量是“p”,要求解的因变量是“x”。

see an illustration of equation follow link

(%i3)   solveexplicit:true$ ratprint:false$ fpprintprec:6$
(%i4)   eqn: (sqrt(%pi)*(25*2^(3/2)*p-25*sqrt(2))*erf(1/(25*2^(3/2)*x))*x+1)/(25*p) = 0.04;
(%i5)   solve (eqn, x);
(%o5)   []
(%i6)   eqn, [p=2,x=0.00532014],numer;
(%o6)   0.04=0.04

感谢任何帮助或指出正确的方向。

【问题讨论】:

    标签: maxima


    【解决方案1】:

    据我所知,Maxima 无法求解包含erf 的方程。您可以通过find_root获得数值结果:

    (%i5) find_root (eqn, x, 0.001, 0.999), p=2;
    (%o5)               0.005320136894034347
    

    至于符号解,我稍微研究了一下方程。如果我没记错的话,可以将其转换为erf(something/x)*x = otherstuff 或等效erf(y) = somethingelse*y 其中y = something/xsomethingelse = otherstuff/something 的形式。我对这种形式的方程一无所知,但也许你能找到一些东西。

    【讨论】:

    • 我也玩过这个并替换了y=1/(25*2^1,5*x),但没有成功。
    【解决方案2】:

    是的,solve 只能做多项式。我对 x 的小值使用了级数展开,并且准确度足够好。

    (%i11)  seriesE: 1$  
            termE: erf(x)$  
            for p: 1 unless p > 3 do  
                      (termE: diff (termE, x)/p,   
                       seriesE: seriesE + subst (x=0, termE)*x^p)$  
            seriesE;  
    
    (%o11)  -(2*x^3)/(3*sqrt(%pi))+(2*x)/sqrt(%pi)+1  
    

    但是,“表达式的长度超出了配置设置所允许的范围!”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 2015-01-22
      相关资源
      最近更新 更多