牛顿-拉夫森线性化?二阶非线性ODE numpy-scipy Python
我已经尝试解决这个方程已经超过一周了:
我需要使用牛顿-拉夫森方法来找到u的近似解。我已经有了可以执行这个方法的脚本,但我需要将这个非线性常微分方程“线性化”。这里的k1到k4并不是常数。在每个网格点(x=1到100)上,它们的值都是不同的,这些值是通过计算得出的。初始条件是u(0)=0。
1 个回答
2
这是一个作业吗?
另外,这个问题是边界值问题(BVP)还是常微分方程(ODE)呢?从你写的内容来看,听起来像是边界值问题。而且,你在 u(0)
的边界条件不够。
如果是边界值问题,你可以直接使用 scikits.bvp_solver 或者 scikits.bvp1lg 这些工具,它们会帮你处理复杂的部分。
如果是常微分方程,那就把问题写成一阶系统,然后使用 scipy.integrate.odeint
或 scipy.integrate.ode
。
关于线性化(假设这是一个边界值问题):实际上,通常只需要通过数值微分来计算牛顿方法所需的偏导数就可以了。