关于算法:C Newton-Raphson 算法?

 2022-02-13 

C++ Newton-Raphson algo?

我有一个大问题。我需要用 C 函数或类求解 3 个变量中的 3 个方程的非线性系统。我考虑过使用 Newton-Raphson 方法来执行解决方案。不幸的是,我没有找到可以为我做到这一点的源代码。会有人知道这样的程序吗?我几乎决定自己建造它。谢谢


3x3 系统并不庞大;这实际上是一个非常小的问题。人们通常会求解具有数千个(甚至更多)变量和约束的非线性方程组。

鉴于您的系统是 3x3 并且可能很糟糕,更合适的方法选择是线搜索方法。通过这种方式,您可以将全局收敛到残差的局部最小值;牛顿法很容易发散。

带回溯线搜索的最速下降法是最简单的线搜索方法。您可以先尝试实现它。


首先,查看相关问题 有哪些好的库可以在 C 中求解非线性方程组?和 https://stackoverflow.com/questions/4914967/could-you-explain-how-newton-raphson-for-a-set-of-equations-works-code-inside。另外,尝试使用 boost.


考虑一下这个舒适的 C 库