【问题标题】:Why maxima cannot solve these equations为什么最大值不能解这些方程
【发布时间】:2014-02-26 14:45:07
【问题描述】:

我有几个方程可以指定椭圆元素之间的关系(短半轴和长半轴、偏心率、中心和远心距离、焦点参数)。 我想找到通过所有其他元素的组合来表达每个元素的其他公式。 solve() 在某些组合上工作得很好,但在其他组合上却不行。 这些案例有什么区别,我该如何解决?

    sys:[b=a*sqrt(1-e^2),p=a*(1-e^2),c=a*(1+e),d=a*(1-e)];
    solve(sys,[a,b,e,p]);
    solve(sys,[a,b,e,c]);
    solve(sys,[a,b,e,d]);
    solve(sys,[a,b,p,c]);
    solve(sys,[a,b,p,d]);
    solve(sys,[a,b,c,d]);
    /* solve(sys,[a,e,p,c]); -- gives error */
    /* solve(sys,[a,e,p,d]); -- gives error */
    /* solve(sys,[a,e,c,d]); -- gives error */
    solve(sys,[a,p,c,d]);
    solve(sys,[b,e,p,c]);
    solve(sys,[b,e,p,d]);
    solve(sys,[b,e,c,d]);
    solve(sys,[b,p,c,d]);
    solve(sys,[e,p,c,d]);

这里是“好”和“坏”情况的输出:

(%i5) solve(sys,[a,b,c,d]);
                                        2
                  p           sqrt(1 - e ) p          p          p
(%o5)   [[a = - ------, b = - --------------, c = - -----, d = -----]]
                 2                 2                e - 1      e + 1
                e  - 1            e  - 1

(%i6) solve(sys,[a,e,p,c]);

algsys: tried and failed to reduce system to a polynomial in one variable; give up.
 -- an error. To debug this try: debugmode(true);

【问题讨论】:

    标签: maxima


    【解决方案1】:

    在这些上尝试to_poly_solve。这是一个共享包——调用前必须输入load(to_poly_solve);

    【讨论】:

    • 我有最大值 5.25.1,但在其中找不到这个包。它是与以后的版本一起分发的某种新包还是我应该单独下载它?
    • 在 5.27 之前的版本中,尝试load(to_poly_solver)(注意:solver 而不是solve)。该函数始终命名为to_poly_solve,因此文件名被调整为相同,而不是略有不同。如果可能,请使用最新版本 (5.32),因为已经修复了许多错误并进行了其他改进。
    • 谢谢,成功了。我仍然很好奇为什么solve()失败以及这些案例之间的区别是什么时候。乍一看,它们并没有什么特别之处。
    猜你喜欢
    • 2022-01-12
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多