文档详情

常微分方程数值解---实验报告.doc

发布:2017-08-16约小于1千字共4页下载文档
文本预览下载声明
琼州学院 实 验 报 告      课程名称:__________  ___开课学期:____ ______     院(部):__理工学院_________开课实验室:________ __ 学生姓名:__梁小叶_______ __专业班级:________  __  学 号:__________   常微分方程数值解---实验报告 一 实验目的: 1.掌握用MATLAB求微分方程初值问题数值解的方法; 2.通过实例学习微分方程模型解决简化的实际问题; 3.了解欧拉方法和龙格库塔方法的基本思想。 二 实验内容: 用欧拉方法和龙格库塔方法求下列微分方程初值问题的数值解,画出解的图形,对结果进行分析比较 三 问题分析: 怎样设计程序?流程图?变量说明?能否将某算法设计成具有形式参数的函数形式? 【程序如下】: function f=f(x,y) f=y+2*x; clc;clear; a=0;b=1; %求解区间 [x1,y_r]=ode45(f,[a b],1); %调用龙格库塔求解函数求解数值解; %% 以下利用Euler方法求解 y(1)=1;N=100;h=(b-a)/N; x=a:h:b; for i=1:N y(i+1)=y(i)+h*f(x(i),y(i)); end figure(1) plot(x1,y_r,r*,x,y,b+,x,3*exp(x)-2*x-2,k-);%数值解与真解图 title(数值解与真解图); legend(RK4,Euler,真解); xlabel(x);ylabel(y); figure(2) plot(x1,abs(y_r-(3*exp(x1)-2*x1-2)),k-);%龙格库塔方法的误差 title(龙格库塔方法的误差) xlabel(x);ylabel(Error); figure(3) plot(x,abs(y-(3*exp(x)-2*x-2)),r-)%Euler方法的误差 title(Euler方法的误差) xlabel(x);ylabel(Error); 【运行结果如下】: 5总结体会: 自己写了哦
显示全部
相似文档