数学建模实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学建模课程实验报告
专题实验7
班级数财系1班学号2011040123 丛文实验题目常微分方程数值解
实验目的1.掌握用MATLAB求微分方程初值问题数值解的方法;2.通过实例学习微分方程模型解决简化的实际问题;3.了解欧拉方法和龙格库塔方法的基本思想。
实验容(包括分析过程、方法、和代码,结果) 1. 用欧拉方法和龙格库塔方法求下列微分方程初值问题的数值解,画出解的图形,对结果进行分析比较
解;M文件
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');
4. 单摆运动是一个我们熟悉的物理模型,可以看作工程技术中一些振动问题的简化,图8中一根长l的(无弹性的)细线,一端固定,另一端悬挂一质量为m的小球,在重力作用下小球处于竖直的平衡位置,使小球偏离平衡位置一根小的角度0θ,然后让它无初速度的放开,小球就会沿圆弧摆动,在不考虑空气阻力的情况下建立θ关于时间t的微分方程,设l=25cm,在0θ等于︒
10和︒
30两种情况
下求方程的数值解,并与近似解
t
l
g
t cos
)(
θ
θ=
比较。
解;实验原理与数学模型:
二. 当ο
θ30=时,
ts=0:0.05:2;
a0=0.5236;
x0=[a0,0];
[t,x]=ode23(danbai,ts,x0);
y=a0*cos(sqrt(40).*t);
[t,x(:,1),y]
subplot(1,2,2),plot (t,x(:,1),'-k*'),title('摆角30度数值解')
2.0000 0.5036 0.5218
从数据可以看出,角度为10o时精确(数值)解与近似解相差不大,而初始角度为30o时,随着时间的增加差别很大