数学建模实验
The Standardization Office was revised on the afternoon of December 13, 2020
数学建模课程实验报告
专题实验7
班级数财系1班学号23 姓名李丛文实验题
目
常微分方程数值解
实验目的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 )(0θθ=比较。
解;实验原理与数学模型:
在小球摆动过程中的任一位置θ,小球所受重力沿运动轨迹方向的分力为-mgsin θ(负号表示力的方向与θ的正方向相反),利用牛顿第二定律即得微分方程
)1(sin θθmg ml -=''
描述单摆运动规律的微分方程(1)是2阶微分方程,无解析解,但可用Matlab 或其它软件编程求其数值解,但都需要先将它化成方程组的形式。
二. 当οθ30=时,
ts=0::2;
从数据可以看出,角度为10o时精确(数值)解与近似解相差不大,而初始角度为30o时,随着时间的增加差别很大