是否有任何开源或易于访问的软件可以简化


17

我总是用手来计算,但现在我的同志们变得烦人,并且进行了很多重复的练习,其中涉及的只是像上面的表达式那样插入东西。我对诸如Python或R之类的简化此类方程式的开源软件特别感兴趣。我尝试使用Wolfram Alpha,但未成功。哪些开源软件包能够替代表达式入方程x 2 +2x+3并简化结果?具体来说,我正在寻找具有类似命令之类的软件包。x=2t1x2+2x+3simplify

Answers:


28

您可能需要研究SymPy,它是一个Python库,带有您所需的simple命令

>>> from sympy.abc import t
>>> import sympy
>>> x = t*2**(1/2) - 1
>>> x**2 + 2*x + 3
2*t + (t - 1)**2 + 1
>>> sympy.simplify(x**2 + 2*x + 3)
t**2 + 2

2
我打算建议Sage,但它似乎还没有符号功能,尽管有人会认为它最终将包含符号功能,因为它旨在成为Maple和Mathematica的开源替代品。
Geoff Oxberry 2012年

1
Sage确实具有符号功能(我已经使用它来执行符号积分),但是除非您寻找它,否则如何执行此操作尚不清楚。如果要使用a作为符号,则必须事先声明它,如中所示var('a')。至少在3或4年前我最后一次使用鼠尾草时,这是真的。通常,mathematica假定您需要符号结果,而sage则假定您想要数字结果。
2012年

1
@hhh:除非我没有记错,否则您的代码片段与您要评估和简化的表达式不对应。
Geoff Oxberry 2012年

@GeoffOxberry:我试图解决该问题,以及原始问题中的LaTeX中的问题。
Jack Poulson

1
我的理解是Sage实际上包含了许多SymPy代码库。
MRocklin

9

Sage可以做到这一点(您将不得不向下滚动很远的页面才能到达简化部分)。

另外,请确保您已阅读Sage中有关符号数学的一般介绍。它的语义和语法与大多数人熟悉的Mathematica完全不同。

这是我链接到的文档中的一个示例:

sage: var('x,y,z,a,b,c,d,e,f')
(x, y, z, a, b, c, d, e, f)
sage: t = a^2 + b^2 + (x+y)^3
# substitute with keyword arguments (works only with symbols)
sage: t.subs(a=c)
(x + y)^3 + b^2 + c^2

对于您的情况,这应该起作用:

var(f,x,t)
f=x^2+2*x+3
f.subs(x=(sqrt(2)*t-1))
f.simplify()

然后,他们的文档搜索引擎需要改进。我输入了“简化”,并没有得到该网页在所有。好发现!
Geoff Oxberry 2012年

我刚刚在Google中输入“ sage simple”。

8

使用高质量的高级开源软件包,您已经获得了几个很好的答案。

我想指向http://www.mathics.net/(如果要下载,则为http://mathics.org/),它是使用Mathematica语法(您可能很熟悉)的开源CAS。如果您使用过WolramAlpha,则需要一点点信息)。它不如您获得的任何其他建议完整。但这可以完成您在问题中提到的(非常简单的)操作。

您所谈论的并不是真正的简化,而是替换扩展(与更复杂的简化不同,替换扩展即使在最基本的CAS中也很容易实现可用的操作):

在数学中,它看起来像这样:

eq = x^2 + 2x + 3

eq /. x -> Sqrt[2] t - 1

Expand[%]

如果您需要一个简化函数,它称为Simplify[],也可以代替Expand[]上面的示例。


8

作为AKID建议,wxMaxima是一个伟大的图形前端古老的口齿不清基于计算机代数系统称为千里马

使用您的示例,您将获得类似以下内容的信息:

(%i1)eq1: x=t*2**(1/2)-1;
(%o1)X=2Ť-1个
(%i2)eq2: x**2+2*x+3;
(%o2)X2+2X+3
(%i3)eq3: subst(eq1, eq2);
(%o3)2Ť-1个2+22Ť-1个+3
(%i4)ratsimp(eq3);
(%o4)2Ť2+2

或者您可以直接执行以下操作:

(%i5)ratsimp(subst(x=t*2**(1/2)-1, x**2+2*x+3));
(%o5)2Ť2+2

Maxima有多种不同的简化方法,但这ratsimp是一个很好的第一步。





By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.