1

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

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

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

是否有允许动态构建此类方程并解析 x 的库?

谢谢,克里斯

4

3 回答 3

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) 分数。我故意没有简化乘法,以便清楚每个分量的来源。

于 2010-04-27T08:10:17.373 回答
1

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

于 2010-04-27T08:09:06.230 回答
0

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

自由贸易协定:

Java 代数系统 (JAS) 是一种面向对象、类型安全和多线程的计算机代数方法。JAS 提供了一个设计良好的软件库,该软件库使用泛型类型用于以 Java 编程语言实现的代数计算。该库可以用作任何其他 Java 软件包,也可以交互使用或通过 jython (Java Python) 前端进行解释。目前,JAS 的重点是可交换和可解多项式、Groebner 基和应用程序。通过使用 Java 作为实现语言,JAS 已为 64 位和多核 cpu 做好准备。

于 2010-04-27T08:05:13.133 回答