1
我试图使用牛顿拉夫逊迭代实现后向欧拉方案。我明白每次迭代都会进行初步猜测,计算残差并解决变化。在我的情况下,更改是德尔瓦。之后,我知道将值添加到w^m并在接下来的m次迭代中获得w的更新值。我知道在迭代继续时检查解决方案的收敛性。我遇到的问题是如何将时间步长dt实现为t = 0:Tmax/dt,其中Tmax是10.我对时间步进是如何进来感到困惑。我一直在试图找出一个尽管如此,任何帮助将不胜感激。谢谢!实现牛顿 - 拉夫逊迭代法
while Rw(m)>10^-6 % Convergence condition
drdw(m)=(1-2*dt+2*t(n+1)^2*w(m)*dt);
Dw(m)=Rw(m)\drdw(m); %Inverse
w(m+1)=w(m)+Dw(m); %Newton method
Rw(m+1)=(-(w(m)-v(1)-2*w(m)*dt+t(n+1)^2*w(m)^2*dt)); %New Residual value
if Rw(m+1)>10^-6 %Check on the level of convergence
m=m+1;
else
Rw=1; % I was thinking I should make the Residual 1 for the next time step.
break
end
我应该提到,我试图通过首先线性化它来解决二阶ODE。这就是为什么我在等式中有R,W和m的原因。 v,t,n来自原始设置。 – ykmizu 2011-02-25 01:36:28