我目前正在尝试编写一个代码来解决非线性方程组。我正在使用gsl库的功能,更具体地说是multiroot_fdf_solver。 我的问题是它目前不想收敛。更具体地说,我有以下行为:
- 如果我的初始条件接近结果,则gsl_multiroot_fdf_solver_iterate根本不更新参数。我尝试在不同的步骤上显示结果,并且我有所有参数dx = NaN(我认为这相当奇怪),gsl_multiroot_fdf_solver_iterate的状态是“成功”,gsl_multiroot_test_residual的状态是“迭代尚未收敛” “
- 只有在我的初始条件与预期结果相差很远时才会更新参数。在这种情况下,它显然不会收敛到正确的值。
我已经多次检查过我的函数和雅可比行列式的表达式,看起来很好。
我必须准确地说我的雅各比(以及我的系统)是非常复杂的表达式,具有许多三角函数。
你知道它可能是什么吗?是否有可能如果雅可比行列式的表达过于复杂,那么计算它是否有麻烦? 提前感谢您的回答,我真的很沮丧。