C++ Newton-Raphson algo?
我有一个大问题。我需要用 C 函数或类求解 3 个变量中的 3 个方程的非线性系统。我考虑过使用 Newton-Raphson 方法来执行解决方案。不幸的是,我没有找到可以为我做到这一点的源代码。会有人知道这样的程序吗?我几乎决定自己建造它。谢谢
3×3 系统并不庞大;这实际上是一个非常小的问题。人们通常会求解具有数千个(甚至更多)变量和约束的非线性方程组。
鉴于您的系统是 3×3 并且可能很糟糕,更合适的方法选择是线搜索方法。通过这种方式,您可以将全局收敛到残差的局部最小值;牛顿法很容易发散。
带回溯线搜索的最速下降法是最简单的线搜索方法。您可以先尝试实现它。
- 你好,谢谢你的回答。我做了一个 NELDER-HELD 算法,找到一个函数的最小值或最大值,它非常准确,我可以用它来解决我的问题吗?
- @TommasoFerrari:我从不推荐使用 Nelder-Mead。不过,它可能适用于您的问题;如果你已经把它写下来了,试试看。
首先,查看相关问题 有哪些好的库可以在 C 中求解非线性方程组?和 https://stackoverflow.com/questions/4914967/could-you-explain-how-newton-raphson-for-a-set-of-equations-works-code-inside。另外,尝试使用 boost.
- 嗨@user1929959 Boost 有解决非线性系统的算法吗?我在哪里可以找到详细的文件?谢谢
考虑一下这个舒适的 C 库
来源:https://www.codenong.com/16874139/