我有一个很大的问题。我需要用C ++函数或类来解决3个变量中3个方程的非线性系统。我想过使用Newton-Raphson方法来执行解决方案。不幸的是我没有找到能够为我做到这一点的源代码。会有人知道这样的节目吗?我差不多决定自己建造它。感谢
答案 0 :(得分:2)
3x3系统并不庞大;这实际上是一个非常小的问题。人们经常用数千(甚至更多)变量和约束来求解非线性方程组。
鉴于您的系统是3x3且可能令人讨厌,更合适的方法选择是线搜索方法。通过这种方式,您可以将全局收敛到局部最小残差;牛顿的方法很容易分开。
使用回溯线搜索的最陡下降是最简单的线搜索方法。您可以先尝试实现它。
答案 1 :(得分:1)
首先,请参阅相关问题What good libraries are there for solving a system of non-linear equations in C++?和https://stackoverflow.com/questions/4914967/could-you-explain-how-newton-raphson-for-a-set-of-equations-works-code-inside。另外,请尝试使用boost。
答案 2 :(得分:0)