【问题标题】:sage math: simplify algebra expression with stepssage math:用步骤简化代数表达式
【发布时间】:2021-05-14 11:37:40
【问题描述】:

例子:

简化2(3x+5)

第一步:2*3x + 2*5

第二步:6x + 2*5

解决方案:6x + 10

我试过圣人数学:https://sagecell.sagemath.org/?q=ngzkdm

sage: x = SR.var('x')
sage: 2*(3*x+5)
6*z + 10

请问如何做到这一点

我需要显示步骤。当然这是一个简单的案例。

【问题讨论】:

标签: sage


【解决方案1】:

在网上搜索 [math software steps] 或 [math software show steps] 会显示诸如 cymath、mathway、polymathlove、quickmath、symbolab、wolfram alpha 等结果。

它们似乎主要是应用程序和网站;我找不到 任何用于该任务的免费软件,尽管它可能存在。

这不是 SageMath 的重点,但仍然可以试一试。

Sage 有“表达方式”:

sage: x = SR.var('x')
sage: a = 3*x + 5
sage: b = SR(2)
sage: expr = a.mul(b, hold=True)
sage: expr
2*(3*x + 5)

可以获取表达式的运算符和操作数。

sage: a.operator()
<function add_vararg at 0x...>
sage: a.operands()
[3*x, 5]

sage: expr.operator()
<function mul_vararg at 0x...>
sage: expr.operands()
[3*x + 5, 2]

和和积符号运算符是:

sage: plus = sage.symbolic.operators.add_vararg
sage: times = sage.symbolic.operators.mul_vararg

sage: expr.operator() == times
True
sage: a.operator() == plus
True

所以一个人可以遍历表达式树并且 展开其中所有和的乘积。

这里是一步一步扩展的简单例子 在问题中,手工完成:

sage: x = SR.var('x')
sage: a = 3*x + 5
sage: b = SR(2)
sage: expr = a.mul(b, hold=True)
sage: expr
2*(3*x + 5)

sage: d, e = a.operands()
sage: d, e
(3*x, 5)
sage: print(f'{b}*{d} + {b}*{e}')
2*3*x + 2*5
sage: print(f'{b*d} + {b*e}')
6*x + 10
sage: print(b*a)
6*x + 10

可以写一个函数来

  • 分析表达式树
  • 检测其中一个因子为和的所有产品
  • 询问用户要执行哪个扩展
  • 打印所选扩展的步骤
  • 重复

要做到正确,需要进行大量的试验和错误。 希望以上提示对您有所帮助。

【讨论】:

  • 但它们是网站,我想以编程方式进行。这些是否提供开源库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 2020-09-29
  • 2021-11-28
  • 1970-01-01
相关资源
最近更新 更多