0

我正在尝试在 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. 我如何告诉千里马我只在寻找给定方程的真实和正解。
  3. 是否可以映射选定的解决方案,以便在进一步计算中引用它(例如float()在其上使用)?
4

1 回答 1

0

嗯,当我尝试时,我得到了预期的结果(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=“左侧”。

但是,请注意,仅使用等式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
于 2021-04-12T22:44:01.190 回答