解决1未知的数学方程(方程是动态建立的)

时间:2010-04-27 07:59:05

标签: equation math

我必须建立如下的动态方程式:

x + x / 3 +(x / 3)/ 4 +(x / 3/4)/ 2 = 50

现在我想评估这个等式并获得x。等式是动态构建的。 x是分类中的叶节点,其他3个节点是超级概念。除数表示子节点的子节点数。

是否有一个库允许动态构建这样的方程并解析x?

谢谢,克里斯

3 个答案:

答案 0 :(得分:1)

你的方程总是这种形式(x中的线性)? 如果是这样,在构建方程时,只需将x设置为1并评估lhs。 这将给你lhs = 1 + 1/3 +(1/3)/ 4 +(1/3/4)/ 2 = 1.4583 .. 然后计算x = rhs / lhs = 50 / 1.4583

答案 1 :(得分:1)

它可能会帮助你做一些代数。

请注意:

x= 3*x/3 = (x*4*3*2)/(4*3*2)
x+x/3 = 3x/3 + x/3 = 4x/3

在您的特定情况下:

x + x/3 + (x/3)/4 + (x/3/4)/2 = (x*4*3*2)/(4*3*2) + (x*4*2)/(4*3*2) + (x*2)/(4*3*2) + (x)/(4*3*2) 
= (4*3*2x + 4*2x + 2*x + x)/(4*3*2)

也许如果你能找到一种方法将左手边重写为像这样的单个大部分,解决方案将变得更加容易。 另外,将x

分解出来
(4*3*2x + 4*2x + 2*x + x)/(4*3*2) = x*(4*3*2 + 4*2 + 2 + 1)/(4*3*2)

然后解决x

50= x*(a/b)
50*(b/a) = x

由于你有一些生成多项式的代码,你应该能够很容易地生成这个大的(a / b)分数。我故意没有简化乘法,因此很清楚每个组件的来源。

答案 2 :(得分:0)

如果您打算使用Java,可以尝试使用JAS。它声称能够求解多项式方程。

FTA:

  

Java代数系统   (JAS)是面向对象的,类型安全的   和多线程方法   计算机代数。 JAS提供了一个井   设计软件库使用   代数的泛型类型   在Java中实现的计算   编程语言。图书馆可以   用作任何其他Java软件   包装或它可以使用   交互式或通过解释   一个jython(Java Python)前端。该   JAS的焦点目前正在进行中   可交换和可解多项式,   Groebner基地和应用程序。通过   使用Java作为实现   语言JAS是64位和多核   cpu ready。