【问题标题】:Equation Solvers for linear mathematical equations线性数学方程的方程求解器
【发布时间】:2008-10-07 20:45:16
【问题描述】:

我需要在我的应用程序中求解一些数学方程。以下是此类等式的典型示例:

a + b * c - d / e = a

附加规则:

  • b % 10 = 0
  • b >= 0
  • b
  • 每个数字都必须是整数
  • ...

我想获得 a、b、c、d 和 e 的可能解集。

是否有任何库,无论是开源的还是商业的,我可以用它们来求解这样的方程?如果是,他们提供什么样的结果?

【问题讨论】:

  • 这看起来不像家庭作业,Bill K。大多数家庭作业不需要外部库。请在重新标记之前三思。

标签: c++ equation algebra solver


【解决方案1】:

求解linear systems一般可以使用线性规划求解。我建议先看看Boost uBLAS - 它有一个简单的三角形求解器。然后,您可以查看针对更多特定领域方法的库,也许是QSopt

【讨论】:

    【解决方案2】:

    您正在冒险进入数值分析的世界,这里是龙。看似微小的规范差异可能会对正确的方法产生巨大的影响。

    如果没有对问题领域进行相当准确的描述,我会犹豫提出具体建议。这听起来很肤浅,就像您正在解决受约束的线性问题,这些问题很简单,有很多方法可以解决,但“...”可能是个问题。

    一般求解器等的一个很好的资源是GAMS。那里的许多软件可能对您的要求有点重。

    【讨论】:

      【解决方案3】:

      你想要一个计算机代数系统。

      请参阅https://stackoverflow.com/questions/160911/symbolic-math-lib,其答案大多与 c++ 和 c 相关。

      【讨论】:

        【解决方案4】:

        我知道这不是你真正的问题,但你可以将给定的等式简化为:

        d = b * c * e with e != 0

        【讨论】:

        • 这不适用于 d=0、b=1、c=1。我想出的最好的是 b * c = d / e
        【解决方案5】:

        很确定Numerical Recipes 会有所收获

        【讨论】:

          【解决方案6】:

          您正在寻找一个计算机代数系统,这不是一件小事。

          其中有很多可用,但请在 Wikipedia 上尝试以下列表:

          http://en.wikipedia.org/wiki/Comparison_of_computer_algebra_systems

          -亚当

          【讨论】:

            【解决方案7】:

            这看起来像线性规划。 this 列表有帮助吗?

            【讨论】:

            • 这看起来几乎不像线性规划。
            【解决方案8】:

            除了其他帖子。您的约束集让人想起 整数规划问题,因此您可能也想检查一下这种情况。也许您的问题可以(重新)表述为一个问题。

            您必须知道,但是整数规划问题往往是更难的计算问题之一,因此您最终可能会使用许多时钟周期来破解它。

            【讨论】:

              【解决方案9】:

              只看“附加规则”部分,它确实看起来像线性规划,在这种情况下,LINDO 或实现单纯形算法的类似程序应该没问题。

              但是,如果第一个方程确实典型,则表明您的方程不是线性代数问题 - 线性方程中不应出现相互相乘或相除的 2 个变量!

              所以我会说你肯定需要计算机代数系统或使用遗传算法解决问题。

              由于您的限制类似于线性编程中的限制,但您并不完全在那里,如果您只想解决您的特定问题,我会说选择Wikipedia's article on genetic algorithms 末尾提到的任何库并开发一个应用程序来给你结果。如果您想要更通用的方法,那么您必须在您的计算机上模拟代数运算,别无他法。

              【讨论】:

                【解决方案10】:

                TI-89 计算器有一个“求解器”应用程序。 它旨在解决您示例中的问题。 我知道它不是图书馆。但是那里有几个 TI-89 仿真器。

                【讨论】:

                  猜你喜欢
                  • 2010-09-05
                  • 1970-01-01
                  • 1970-01-01
                  • 2019-10-02
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多