寻找一组方程的解

时间:2012-05-08 23:16:57

标签: computer-science graph-theory breadth-first-search solver equations

假设我在一些变量之间有一些已知关系,例如a = b + c和一个起始解决方案,例如a=2, b=1, c=1。我正在编写一些代码,以便在给定更新的情况下,例如a=3,我更新bc的值,以便仍然满足关系,例如设置b=2(显然有很多可能性,我只需要一个)。

在实践中,有许多关系,它们不是线性的。代码通过用户为每个变量提供功能,作为其他变量的函数,例如a(b,c)b(a,c)c(a,b)。然后我构建了一个依赖图,当一个值发生变化时,我会执行类似于广度优先搜索的更新其他值。这似乎有效,但我不禁想到我正在重新发明轮子,这是一个非常着名的计算机科学/图论问题。也许甚至有一个包裹?

任何人都可以提供一些链接或了解我正在解决的问题究竟是什么?

1 个答案:

答案 0 :(得分:0)

这看起来像找到一个接近给定起点的多维函数的根(例如F(a,b,c)=b+c-a)(例如b=1, c=1。)

Wiki页面描述了一个变量函数的根查找方法,并且链接到更高维度的方法。这些方法与多维优化问题有关。

有很多实现:SciPyGNU,Mathematica,Matlab,......