求微分方程的解
一、实验目的及意义
1. 归纳和学习求解常微分方程(组)的基本原理和方法;
2. 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析; 3. 熟悉MATLAB软件关于微分方程求解的各种命令。
二、实验内容
1. 2. 3. 4.
微分方程及方程组的解析求解法;
微分方程及方程组的数值求解法——欧拉、欧拉改进算法;
直接使用MATLAB命令对微分方程(组)进行求解(包括解析解、数值解); 利用图形对解的特征作定性分析。
三、实验步骤
1. 2. 3. 4. 5.
开启软件平台——MATLAB,开启MATLAB编辑窗口; 根据微分方程求解步骤编写M文件 保存文件并运行;
观察运行结果(数值或图形);
根据观察到的结果和体会写出实验报告。
四、实验要求与任务
根据实验内容和步骤,完成以下实验,要求写出实验报告 1. 求微分方程(x21)y'2xysinx0的通解. 2. 求微分方程y''2y'5yexsinx的通解. 3. 求微分方程组
dxxy0dt dyxy0dt在初始条件x|t01,y|t00下的特解,并画出解函数yf(x)的图形. 4. 分别用 ode23、ode45 求上述第 3 题中的微分方程初值问题的数值解(近似解),求解区间为t[0,2].利用画图来比较两种求解器之间的差异. 5. 用 Euler 折线法求解微分方程初值问题
wilyes11收集 博客(与学习无关):http://blog.sina.com.cn/u/1810231802
212x,y'y3 yy(0)1的数值解(步长h取0.1),求解范围为区间[0,2]. 6. 用四阶 Runge-Kutta 法求解微分方程初值问题
y'yexcosx, y(0)1的数值解(步长h取0.1),求解范围为区间[0,3]. 五. 程序代码及运行结果(经调试后正确的源程序) 1. 求微分方程(x21)y'2xysinx0的通解.
程序代码:
syms x y
fprintf('通解为')
y=dsolve('(x^2-1)*Dy+2*x*y-sin(x)=0','x')
运行结果: 通解为 y =
(-cos(x)+C1)/(x^2-1)
2. 求微分方程y''2y'5yexsinx的通解.
程序代码: syms x y
fprintf('通解为')
y=dsolve('D2y-2*Dy+5*y=exp(x)*sin(x)','x')
运行结果: 通解为 y =
-1/4*exp(x)*cos(2*x)*sin(x)+1/12*exp(x)*cos(2*x)*sin(3*x)-1/12*exp(x)*sin(2*x)*cos(3*x)+1/4*exp(x)*sin(2*x)*cos(x)+C1*exp(x)*cos(2*x)+C2*exp(x)*sin(2*x)
3. 求微分方程组
wilyes11收集 博客(与学习无关):http://blog.sina.com.cn/u/1810231802
dxxy0dt dyxy0dt在初始条件x|t01,y|t00下的特解,并画出解函数yf(x)的图形. 程序代码:
syms x y t
[x,y]=dsolve('Dx+x+y=0','Dy+x-y=0','x(0)=1','y(0)=0','t') ezplot(x,y,[0,2]);
运行结果: x =
1/2*exp(2^(1/2)*t)+1/4*2^(1/2)*exp(-2^(1/2)*t)-1/4*2^(1/2)*exp(2^(1/2)*t)+1/2*exp(-2^(1/2)*t)
y =
1/4*2^(1/2)*exp(-2^(1/2)*t)-1/4*2^(1/2)*exp(2^(1/2)*t)
x = 1/2 exp(21/2 t)+...+1/2 exp(-21/2 t), y = 1/4 21/2 exp(-21/2 t)-1/4 21/2 exp(21/2 t)0-0.5-1-1.5-2-2.5-3-3.5-4-4.5-5-5.5y-2-101x2345 4. 分别用 ode23、ode45 求上述第 3 题中的微分方程初值问题的数值解(近似
解),求解区间为t[0,2].利用画图来比较两种求解器之间的差异.
wilyes11收集 博客(与学习无关):http://blog.sina.com.cn/u/1810231802
程序代码:
M函数文件verderpol.m:
function xprime=verderpol(t,x) xprime=[-x(1)-x(2); x(2)-x(1)]; 在程序中调用此函数: clear; y0=[1;0];
[t,x]=ode45('verderpol',[0,2],y0); plot(x(:,1),x(:,2),'r-'); hold on clear; y0=[1;0];
[t,x]=ode23('verderpol',[0,2],y0); plot(x(:,1),x(:,2),'b-'); 运行结果:
0-1-2-3-4-5-60.60.811.21.41.61.822.22.42.6 5. 用 Euler 折线法求解微分方程初值问题
212x,y'y3 yy(0)1的数值解(步长h取0.1),求解范围为区间[0,2]. 程序代码: clear
wilyes11收集 博客(与学习无关):http://blog.sina.com.cn/u/1810231802
f=sym('y-(12*x^2)/y^3'); a=0; b=2; h=0.1;
n=(b-a)/h+1; x=0; y=1; szj=[x,y]; for i=1:n-1
y=y+h*subs(f,{'x','y'},{x,y}); x=x+h;
szj=[szj;x,y]; end szj
plot(szj(:,1),szj(:,2),'or-')
运行结果: szj =
0 1.0000 0.1000 1.1000 0.2000 1.2010 0.3000 1.2934 0.4000 1.3728 0.5000 1.4359 0.6000 1.4781 0.7000 1.4921 0.8000 1.44 0.9000 1.3662 1.0000 1.1217 1.1000 0.3836 1.2000 -25.3054 1.3000 -27.8358 1.4000 -30.6193 1.5000 -33.6812 1.6000 -37.0492 1.7000 -40.7541 1.8000 -44.8294 1.9000 -49.3123 2.0000 -54.2435
wilyes11收集 博客(与学习无关):http://blog.sina.com.cn/u/1810231802
100-10-20-30-40-50-6000.511.522.5 6. 用四阶 Runge-Kutta 法求解微分方程初值问题
y'yexcosx, y(0)1的数值解(步长h取0.1),求解范围为区间[0,3]. 程序代码: clear;
f=sym('y-exp(x)*cos(x)'); a=0; b=3; h=0.1; n=(b-a)/h+1; x=0; y=1; szj=[x,y]; for i=1:n-1
l1=subs(f,{'x','y'},{x,y});
l2=subs(f,{'x','y'},{x+h/2,y+l1*h/2}); l3=subs(f,{'x','y'},{x+h/2,y+l2*h/2}); l4=subs(f,{'x','y'},{x+h,y+l3*h}); y=y+h*(l1+2*l2+2*l3+l4)/6; x=x+h;
szj=[szj;x,y]; end
wilyes11收集 博客(与学习无关):http://blog.sina.com.cn/u/1810231802
szj
plot(szj(:,1),szj(:,2), 'dg-')
运行结果: szj =
0 1.0000 0.1000 0.9948 0.2000 0.9787 0.3000 0.9509 0.4000 0.9109 0.5000 0.8583 0.6000 0.7933 0.7000 0.7165 0.8000 0.6290 0.9000 0.5329 1.0000 0.4309 1.1000 0.3268 1.2000 0.2256 1.3000 0.1337 1.4000 0.0590 1.5000 0.0112 1.6000 0.0021 1.7000 0.0456 1.8000 0.1582 1.9000 0.3590 2.0000 0.6702 2.1000 1.1171 2.2000 1.7283 2.3000 2.53 2.4000 3.5774 2.5000 4.16 2.6000 6.5231 2.7000 8.5204 2.8000 10.9359 2.9000 13.8260 3.0000 17.2510
wilyes11收集 博客(与学习无关):http://blog.sina.com.cn/u/1810231802
181614121082000.511.522.533.5 六.实验总结
本次实验的目的是归纳和学习求解常微分方程(组)的基本原理和方法;掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析;熟悉MATLAB软件关于微分方程求解的各种命令。实验中,我们了解和熟悉了微分方程及方程组的解析求解法;微分方程及方程组的数值求解法——欧拉、欧拉改进算法;直接使用MATLAB命令对微分方程(组)进行求解(包括解析解、数值解)以及利用图形对解的特征作定性分析。经过多次MATLAB实验,对MATLAB的语法也越来越熟悉,对相关的数学思想也有了更多了解。
学生签名:
年 月 日
七.教师评语及成绩
教师签名:
年 月 日
wilyes11收集 博客(与学习无关):http://blog.sina.com.cn/u/1810231802