ZKX's LAB

前进和后退欧拉法解微分方程组问题

2020-07-26知识8

欧拉前进法(matlab),接下来我将给大家详细讲解欧拉前进法解决一阶常微分方程,每次只需要输入常微分方程和初始值即可得到数值解。matlab 欧拉方法和中点法问题 欧拉法比较简单,但中点法相对麻烦,因其属于多步法,启动需要初始两个时刻的值,其中y1、z1可以用后退欧拉法来求。我编写的代码如下:用四阶龙格库塔方法求解,可以视为真值dY=(t,Y)[Y(2);((1-Y(1)^2)*Y(2)-Y(1))];[t,Y]=ode45(dY,[0 10],[1 1]);plot(t,Y(:,1))hold all;欧拉法,步长0.25h=0.25;T=(0:h:10)';y=T*0;z=y;y(1)=1;z(1)=1;for k=2:length(y)dz=(1-y(k-1)^2)*z(k-1)-y(k-1);dy=z(k-1);y(k)=y(k-1)+h*dy;z(k)=z(k-1)+h*dz;endY1=y;plot(T,Y1,'.-');欧拉法,步长0.125h=0.125;T=(0:h:10)';y=T*0;z=y;y(1)=1;z(1)=1;for k=1:length(y)-1dz=(1-y(k)^2)*z(k)-y(k);dy=z(k);y(k+1)=y(k)+h*dy;z(k+1)=z(k)+h*dz;endY2=y;plot(T,Y2,'.-');中点法,步长0.25h=0.25;T=(0:h:10)';y=T*0;z=y;y(1)=1;z(1)=1;中点法属于多步法,启动需要初始两个时刻的值,其中y1、z1用后退欧拉法来求[y1,z1]=solve('z1=z0+0.25*((1-y1^2)*z1-y1)','y1=y0+0.25*z1','y1','z1');y0=y(1);z0=z(1);方程存在多组解,需要找出实数解y1=subs(y1);z1=subs(z1);inx=find(abs(imag(y1)));y(2)=y1(inx);z(2)=z1(inx);for k=2:length(y)-1dz=(1-y(k)^2)*z(k)-y(k);dy=z(k);y(k+1)=y(k-。流体力学中拉格朗日法和欧拉法有什么不同 朗格朗日法研究对象是质点,欧拉法研究的是空间点。打个比方,你考察某个城市的公共交通情况,一种方法是观察每个人乘坐公交车的情况,这就是拉格朗日发;还有一种方法就是考察每个公共汽车站的人流情况,这就是欧拉法。什么是欧拉方法(Euler's method)? ?www.zhihu.com 简单来说,隐式欧拉这里 是已知的,这里的 才是未知量,F是函数。我们需要求得当F=0时,y究竟应该是多少,也就是根是多少。怎么办呢?先猜一个数,然后。欧拉方法是什么 欧拉方法是常微分方程的数值解法的一种,其基本思想是迭代。其中分为前进的EULER法、后退的EULER法、改进的EULER法。所谓迭代,就是逐次替代,最后求出所要求的解,并达到一定的精度。误差可以很容易地计算出来。来源于网络

#截断误差#欧拉法#常微分方程#z1

随机阅读

qrcode
访问手机版