MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程.docxVIP

  • 49
  • 0
  • 约5.25千字
  • 约 8页
  • 2020-07-21 发布于天津
  • 举报

MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程.docx

姓名:樊元君 学号:2012200902 日期:2012.11.06 一、实验目的 掌握MATLA语言、C/C++语言编写计算程序的方法、掌握改进欧拉法与四阶 龙格-库塔求解一阶常微分方程的初值问题。掌握使用 MATLA程序求解常微分方 程问题的方法。 二、实验内容 1、 分别写出改进欧拉法与四阶龙格-库塔求解的算法,编写程序上机调试出结果, 要求所编程序适用于任何一阶常微分方程的数值解问题,即能解决这一类问题, 而不是某一个冋题。 实验中以下列数据验证程序的正确性。 Jvf = -X)2 求?- “,步长 h=0.25。 2、 实验注意事项 = -xyj2 = 2 (°H)的精确解为丁—?通过调整步长,观察结果 的精度的变化 、程序流程图: ?改进欧拉格式流程图: 开始 谴入数掘岁长X初值 点CsO, yO) K歡值解 范fll (X、Y) xl=xO+h; yp-yO^h*(~xO*(yO) 2); yc=yO+h*(-xl*(yp)*2; yl=(yp+yc)/2a y=2/(l+x0-2);%ii里是y的原曲数表达 式*输出方便检验有效数字寫 输出 xl, ylBy i=i + l;xO=xl; yO=ylr i=i + l;xO=xl; yO=yl i-n? = 结束 ?四阶龙格库塔流程图: 开始 初值jfc (iO, yO); 裁值齋菟围(I*Y) xl-xO+hj kl-f(xO,yO); k2=f(^O+h/2,yO +h/2*kl); k3=f (jtO+h/2, yO+h/2*k2); k4=f (il, yO+h*k3); yl=y0+fi/6*(kl+2*k2+2*k3+k4). 廿 tt-Ji il Py !,y 析的肆 西截1t确AO i=n? i=i+l; xO-xl:yO^yl 四、源程序: ?改进后欧拉格式程序源代码: fun cti on [] = GJOL(h,xO,yO,X,Y) format long h=i nput( h=); x0=i nput( x0=); y0=i nput( y0=); disp(输入的范围是:’); X=i nput( X= );Y=i nput( Y=); n=rou nd((Y-X)/h); i=1;x1=0;yp=0;yc=0; for i=1:1: n x1=x0+h; yp=yO+h*(-xO*(yOF2);yc=y0+h*(-x1*(ypf2); yp=yO+h*(-xO*(yOF2); yc=y0+h*(-x1*(ypf2); %yc=y0+h*(yp-2*x1/yp);% y1=(yp+yc)/2; x0=x1;y0=y1; fprintf(end结果 =%.3f,%.8f,%.8f\n,x1,y1,y);y=2/(1+x0A fprintf( end 结果 =%.3f,%.8f,%.8f\n ,x1,y1,y); ? 四阶龙格库塔程序源代码: function [] = LGKT(h,x0,y0,X,Y) format long h=input( h= ); TOC \o 1-5 \h \z x0=input( x0= ); y0=input( y0= ); disp( 输入的范围是: ); X=input( X= );Y=input( Y= ); n=round((Y-X)/h); i=1;x1=0;k1=0;k2=0;k3=0;k4=0; for i=1:1:n x1=x0+h; k1=-x0*y0A2; %k1=y0-2*x0/y0;% k2=(-(x0+h/2)*(y0+h/2*k1)A2); %k2=(y0+h/2*k1)-2*(x0+h/2)/(y0+h/2*k1);% k3=(-(x0+h/2)*(y0+h/2*k2)A2); %k3=(y0+h/2*k2)-2*(x0+h/2)/(y0+h/2*k2);% k4=(-(x1)*(y0+h*k3)A2); %k4=(y0+h*k3)-2*(x1)/(y0+h*k3);% y1=y0+h/6*(k1+2*k2+2*k3+k4); %y1=y0+h/6*(k1+2*k2+2*k3+k4);% x0=x1;y0=y1; y=2/(1+x0A2); %y=sqrt(1+2*x0);% fprintf( 结果=%.3f,%.7f,%.7f\n ,x1,y1,y); end end 五、运行结果: 改进欧拉格式结果: ? GJOL h=0.25 yO=2 輸入的范圉是: x=o ¥=5 结杲二0. 250』1 1.結果=Q, 50Oj 1 L结杲二0. 750. 1 1. 28

文档评论(0)

1亿VIP精品文档

相关文档