2019.4.20.数学建模第六章学习笔记 (微分方程和差分方程)

1.用matlab解微分方程

1.1微分方程的解析解

用dsolve函数,形式如dsolve(‘方程1’, ‘方程2’,…‘方程n’, ‘初始条件’, ‘自变量’)
例1.

dsolve('Du=1+u^2','t')
结果为 ans = tan(t-C1)

在这里插入图片描述

y = dsolve('D2y +4*Dy+29y = 0' ,'y(0) = 0', 'Dy (0)=15','x')
结果为
ans = 3*exp(-2*x)*sin(5*x)

2019.4.20.数学建模第六章学习笔记 (微分方程和差分方程)_第1张图片

[x,y,z]=dsolve('Dx=2*x-3*y+3*z','Dy=4*x-5*y+3*z','Dz = 4 * x -4*y + 2*z','t')
x = simple(x)
y = simple(y)
z = simple(z)

1.2 微分方程的数值解

在生产和科研中所处理的微分方程往往很复杂且大多得不出一般解。而在实际上对初值问题,一般是要求得到解在若干个点上满足规定精确度的近似值,或者得到一个满足精确度要求的便于计算的表达式。
2019.4.20.数学建模第六章学习笔记 (微分方程和差分方程)_第2张图片

用matlab求解

[t,x]=solver(’f’,ts,x0,options)

t 表示自变量,x表示函数值,solver 表示ode系列 f是待解方程写成的M文件名,ts =[t0,tf] t0和tf表示自变量的初值和终值,x0为函数的初值,option用来设定误差限制。
注意:
1、在解n个未知函数的方程组时,x0和x均为n维向量,m-文件中的待解方程组应以x的分量形式写成.
2、使用Matlab软件求数值解时,高阶微分方程必须等价地变换成一阶微分方程组.

2019.4.20.数学建模第六章学习笔记 (微分方程和差分方程)_第3张图片
2019.4.20.数学建模第六章学习笔记 (微分方程和差分方程)_第4张图片

function dy=vdp1000(t,y)
    dy=zeros(2,1);
    dy(1)=y(2);
    dy(2)=1000*(1-y(1)^2)*y(2)-y(1);

2、取t0=0,tf=3000,输入命令:
     [T,Y]=ode15s('vdp1000',[0 3000],[2 0]); 
     plot(T,Y(:,1),'-')

1.3 综合应用 : 导弹问题

设位于坐标原点的甲舰向位于x轴上点A(1, 0)处的乙舰发射导弹,导弹头始终对准乙舰.如果乙舰以最大的速度v0(是常数)沿平行于y轴的直线行驶,导弹的速度是5v0,求导弹运行的曲线方程.又乙舰行驶多远时,导弹将它击中?
解法一:解析法

你可能感兴趣的:(2019.4.20.数学建模第六章学习笔记 (微分方程和差分方程))