常微分方程数值解的若干Matlab函数文件nullnull8.7 常微分方程数值解的若干Matlab函数文件8.7.1 Euler 方法的 Matlab 函数文件null8.7.2 经典Runge-Kutta 法的 Matlab 函数文件function [x,y] =rk4(f,tspan,y0,n)
% 解初值问题:y’ =f(x,y),y(a)=y0。
% 使用 n 步 4 阶 R-K 法。
a=tspan(1);b=tspan(2);h=(b-a)/n;
k1=h*feval (f,a,y0...
nullnull8.7 常微分方程数值解的若干Matlab函数文件8.7.1 Euler 方法的 Matlab 函数文件null8.7.2 经典Runge-Kutta 法的 Matlab 函数文件function [x,y] =rk4(f,tspan,y0,n)
% 解初值问题:y’ =f(x,y),y(a)=y0。
% 使用 n 步 4 阶 R-K 法。
a=tspan(1);b=tspan(2);h=(b-a)/n;
k1=h*feval (f,a,y0);
k2=h*feval (f,a+h/2,y0+k1/2);
k3=h*feval (f,a+h/2,y0+k2/2);
k4=h*feval (f,a+h,y0+k3);
y(1)=y0+k1/6+k2/3+k3/3+k4/6;
nullfor i=1:n-1
k1=h*feval(f,x(i),y(i));
k2=h*feval(f,x(i)+h/2,y(i)+k1/2);
k3=h*feval(f,x(i)+h/2,y(i)+k2/2);
k4=h*feval(f,x(i)+h/2,y(i)+k3/2);
y(i+1)=y(i)+k1/6+k2/3+k3/3+k4/6 ;
end
x=[a x];
y=[y0 y];
nullfunction [x,y] =ad3 (f,tspan,y0,n)
a=tspan(1);b=tspan(2);
h=(b-a)/n;hh=h/12;
x=(a+h:h:b);
%使用中点方法提供开始值。
z0=feval (f,a,y0);
k1=h*z0;k2=h*feval (f,a+h/2,y0+k1/2) ;
y(1)=y0+k2;
z(1)=feval (f,x(1)+h/2,y(1)+k1/2); 8.7.3 三阶 Adams方法的 Matlab 函数文件nullk1=h*z(1);k2=h*feval (f,x(1)+h/2,y(1)+k1/2) ;
y(2)=y(1)+k2 ;
% 继续使用三阶 Adams 方法。
z(2)=feval (f,x(2),y(2));
y(3)=y(2)+hh*(23*z(2)-16*z(1)+5*feval (f,a,y0)) ;
for i=3:n-1
z(i) =feval (f,x(2),y(2)) ;
y(i+1)=y(i)+hh(23*z(i)-16*z(i-1)+5z(i-2)) :
end
x=[a x] ;
y=[y0 y];
本文档为【常微分方程数值解的若干Matlab函数文件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。