【问题标题】:How to get the correct solution of this simple equation in wxMaxima?如何在 wxMaxima 中得到这个简单方程的正确解?
【发布时间】:2021-04-12 18:12:39
【问题描述】:

我正在尝试在 wxMaxima 中求解以下简单方程:

21.3874=0.00202415/(d^3)

当我使用solve() 时,我得到了 3 个解(2 个复数和 1 个实数)。我知道 d 是实数和正数(因为它是一个直径),所以我只对第三种解决方案感兴趣。它以以下形式给出: d=((40483)^(1/3))/(10427748^(1/3)) 我尝试使用 map() 函数保存它,但它保存了所有 3 个解决方案,我不知道如何仅映射最后一个,以便我可以使用它进行进一步的计算。

不管怎样,重写这个解决方案并在上面使用float()函数后,结果是:0.1571668 但这是不正确的,因为结果应该是 0.0455717。

有趣的是,to_poly_solve() 给出了不同的解决方案,真正的解决方案是:0.2439467

关于这个问题我有 3 个问题:

  1. 为什么 wxMaxima 给出了两个错误的解决方案以及如何获得正确的解决方案?
  2. 如何告诉 Maxima 我正在寻找给定方程的实数正解。
  3. 是否可以映射选定的解决方案,以便在进一步计算中引用它(例如在其上使用float())?

【问题讨论】:

    标签: maxima wxmaxima


    【解决方案1】:

    嗯,当我尝试时,我得到了预期的结果(0.0455717)。

    (%i5) mysolutions: solve (21.3874 = 0.00202415/(d^3), d);
    
    rat: replaced 21.3874 by 106937/5000 = 21.3874
    
    rat: replaced -0.00202415 by -40483/20000000 = -0.00202415
                            1/3           1/3
               sqrt(3) 40483    %i - 40483
    (%o5) [d = ------------------------------, 
                                 1/3
                        20 427748
                                 1/3           1/3             1/3
                    sqrt(3) 40483    %i + 40483           40483
              d = - ------------------------------, d = ------------]
                                      1/3                        1/3
                             20 427748                  10 427748
    

    为了仅隔离第三种解决方案,请注意solve 返回一个列表,因此您可以只说mysolutions[3](或分配solve 结果的变量的名称)。

    如果你只想要数值,你可以说rhs(mysolutions[3]) where rhs = "right-hand side"。还有lhs = "left-hand side"。

    但是,请注意,将公式 d = something 用作 subst 的参数很方便,以便将值替换为其他表达式,例如:

    (%i6) preferred_solution: mysolutions[3];
                                       1/3
                                  40483
    (%o6)                   d = ------------
                                         1/3
                                10 427748
    (%i7) float (preferred_solution);
    (%o7)                d = 0.04557166543026844
    (%i8) subst (preferred_solution, %pi*(d/2)^2);
                                   2/3
                              40483    %pi
    (%o8)                     -------------
                                        2/3
                              400 427748
    (%i9) float (%);
    (%o9)                 0.001631096598182001
    

    【讨论】:

      猜你喜欢
      • 2022-08-17
      • 1970-01-01
      • 2012-04-20
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      相关资源
      最近更新 更多