下载此文档

用matlab求解微分方程.ppt


文档分类:高等教育 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
解 输入命令: y=dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x')
结 果 为 : y =3e-2xsin(5x)
第一页
解 输入命令 :
[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) % 将x化简
y=simple(y)
z=simple(z)
结 果 为:x = (c1-c2+c3+c2e -3t-c3e-3t)e2t
y = -c1e-4t+c2e-4t+c2e-3t-c3e-3t+c1-c2+c3)e2t
z = (-c1e-4t+c2e-4t+c1-c2+c3)e2t
第二页
2. 用Matlab求常微分方程的数值解
[t,x]=solver(’f’,ts,x0,options)
ode45 ode23 ode113ode15sode23s
由待解方程写成的m-文件名
ts=[t0,tf],t0、tf为自变量的初值和终值
函数的初值
ode23:组合的2/3阶龙格-库塔-芬尔格算法
ode45:运用组合的4/5阶龙格-库塔-芬尔格算法
自变量值
函数值
用于设定误差限(缺省时设定相对误差10-3, 绝对误差10-6),
命令为:options=odeset(’reltol’,rt,’abstol’,at),
rt,at:分别为设定的相对误差和绝对误差.
第三页
1、在解n个未知函数的方程组时,x0和x均为n维向量,m-文件中的待解方程组应以x的分量形式写成.
2、使用Matlab软件求数值解时,高阶微分方程必须等价地变换成一阶微分方程组.
注意:
第四页
解: 令 y1=x,y2=y1’
1、建立m-:
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),'-')
3、结果如图
第五页
解 1、建立m-:
function dy=rigid(t,y)
dy=zeros(3,1);
dy(1)=y(2)*y(3);
dy(2)=-y(1)*y(3);
dy(3)=-*y(1)*y(2);
2、取t0=0,tf=12,输入命令:
[T,Y]=ode45('rigid',[0 12],[0 1 1]);
plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+')
3、结果如图
图中,y1的图形为实线,y2的图形为“*”线,y3的图形为“+”线.
第六页
导弹追踪问题
设位于坐标原点的甲舰向位于x轴上点A(1, 0)处的乙舰发射导弹,(是常数)沿平行于y轴的直线行驶,导弹的速度是5v0,,导弹将它击中?
解法一(解析法)
第七页
由(1),(2)消去t整理得模型:
第八页
解法二(数值解)
-
function dy=eq1(x,y)
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=1/5*sqrt(1+y(1)^2)/(1-x);
2. 取x0=0,xf=,:
x0=0,xf=
[x,y]=ode15s('eq1',[x0 xf],[0 0]);
plot(x,y(:,1),’b.')
hold on
y=0::2;
plot(1,y,’b*')
结论: 导弹大致在(1,)处击中乙舰
令y1=y,y2=y1’,将方程(3)化为一阶微分方程组。
第九页
解法三(建立参数方程求数值解)
设时刻t乙舰的坐标为(X(t),Y(t)),导

用matlab求解微分方程 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人977562398
  • 文件大小586 KB
  • 时间2021-11-28
最近更新