您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 微分方程数值解第一次报告——matlab改进欧拉法与四阶龙格-库塔求解
微分方程数值解第一次报告徐松松41345053计1304一:实验目的掌握MATLAB语言、C/C++语言编写计算程序的方法、掌握改进欧拉法与四阶龙格-库塔求解一阶常微分方程的初值问题。掌握使用MATLAB程序求解常微分方程问题的方法。二:实验内容分别写出改进欧拉法与四阶龙格-库塔求解的算法,编写程序上机调试出结果,要求所编程序适用于任何一阶常微分方程的数值解问题,即能解决这一类问题,而不是某一个问题。实验中以下列数据验证程序的正确性。{𝑦′=−𝑥𝑦2𝑦(0)=2(0=x=5),步长h=0.25。三:源程序改进后欧拉格法程序源代码:function[]=GJOL(h,x0,y0,X,Y)formatlongh=input('h=');x0=input('x0=');y0=input('y0=');disp('输入的范围是');X=input('X=');Y=input('Y=');n=round((Y-X)/h);i=1;x1=0;yp=0;yc=0;fori=1:1:nx1=x0+h;yp=y0+h*(-x0*(y0)^2);%yp=y0+h*(y0-2*x0/y0);%yc=y0+h*(-x1*(yp)^2);%yc=y0+h*(yp-2*x1/yp);%y1=(yp+yc)/2;x0=x1;y0=y1;y=2/(1+x0^2);%y=sqrt(1+2*x0);%fprintf('½á¹û=%.3f,%.8f,%.8f\n',x1,y1,y);endend四阶龙格库塔法源程序:function[]=LGKT(h,x0,y0,X,Y)formatlongh=input('h=');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;fori=1:1:nx1=x0+h;k1=-x0*y0^2;%k1=y0-2*x0/y0;%k2=(-(x0+h/2)*(y0+h/2*k1)^2);%k2=(y0+h/2*k1)-2*(x0+h/2)/(y0+h/2*k1);%k3=(-(x0+h/2)*(y0+h/2*k2)^2);%k3=(y0+h/2*k2)-2*(x0+h/2)/(y0+h/2*k2);%k4=(-(x1)*(y0+h*k3)^2);%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+x0^2);%y=sqrt(1+2*x0);%fprintf('½á¹û=%.3f,%.7f,%.7f\n',x1,y1,y);endend四:运行结果改进欧拉法:四阶龙格库塔法:
本文标题:微分方程数值解第一次报告——matlab改进欧拉法与四阶龙格-库塔求解
链接地址:https://www.777doc.com/doc-1730582 .html