【问题标题】:get the expression out of solve results从求解结果中获取表达式
【发布时间】:2021-03-05 14:27:18
【问题描述】:

考虑简单的解决方案:

 sol: solve(b * x - a, x);
一种 [x = -] b

如何从上述结果中得到表达式部分sol: a / b

解决方案已提供给我here

【问题讨论】:

  • 所提供的解决方案在哪些方面不适合您?提供的解决方案未涵盖您想要做什么?解决它的另一种方法是说:sol: rhs (first (sol))。顺便说一句,关于推文中的另一个问题,请注意绘图函数的名称是wxplot2d,而不是wxplot2D
  • 嘿,@RobertDodier 感谢您的评论。如果所提供的解决方案是指以下解决方案,则它不是 WxMaxima/Maxima 解决方案。如果您指的是我在推文中链接的那个,那么这是一个非常好的解决方案。我只是将其添加为下面的答案。此外,如果您愿意,请随时提供您的替代解决方案作为答案。 ??????

标签: maxima wxmaxima


【解决方案1】:

感谢Johann Weilharter我找到了一种提取表达式的方法:

 sol: ev(x, solve(b * x - a, x)[1]);

当然,如果有多个解决方案,则需要将1更改为具体实例。

或者,正如问题的 cmets 所指出的,也可以使用

sol: rhs(first(solve(b * x - a, x)));

oneliner 来完成这项工作。

【讨论】:

    【解决方案2】:

    您需要的是一个符号评估库。如果你正在考虑一个 python 实现,你可以使用SymPy

    import sympy as sym
    
    x = sym.Symbol('x')
    b = sym.Symbol('b')
    a = sym.Symbol('a')
    sol = sym.solve((b * x - a), x)
    print(sol)
    
    ------
    [a/b]
    

    【讨论】:

    • 我不在乎 Python/SymPy 的答案。但无论如何谢谢你。 ?
    • 问题底部的标签表明这是一个Maxima/WxMaxima问题。 ?但不用担心。无论如何,你在这里帮助一个家伙做得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多