我必须建立如下的动态方程式:
x + x / 3 +(x / 3)/ 4 +(x / 3/4)/ 2 = 50
现在我想评估这个等式并获得x。等式是动态构建的。 x是分类中的叶节点,其他3个节点是超级概念。除数表示子节点的子节点数。
是否有一个库允许动态构建这样的方程并解析x?
谢谢,克里斯
答案 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。