我编写了一个代码,通过牛顿法(雅可比N + 1 * N + 1)求解高维(i = 0,N)的二阶非线性方程组,具有2个边界条件。
我想问你,如果我可以在这个N维问题中实现二分法。不幸的是,牛顿收敛对我的问题的某些区域不起作用。
根据此来源:http://ursa.as.arizona.edu/~rad/phys305/root_finding/node4.html
” 改进的根发现方案是结合二分法和Newton-Raphson方法。二分法保证根(或奇点),并用于限制线性假设较差时Newton-Raphson方法估计的位置变化。然而,Newton-Raphson步骤采用接近线性的方式来加速收敛。
换句话说,如果我们知道我们的两个边界点之间有一个根,我们首先考虑Newton-Raphson步骤。如果这可以预测下一个超出我们括号范围的点,那么我们会通过选择范围的中点作为下一个点来进行二分步骤。然后,我们在下一个点评估函数,并根据评估的符号,用新点替换其中一个边界点。这使得根部保持在括号内,同时让我们受益于Newton-Raphson的速度。 “
...在N维问题中可以用Python做到这一点吗?
FORDAN的Rtsafe模块在ndimensional可能做到这一点,并且Matlab可能有一个类似的模块......