MATLAB求解微分方程

以下只是例题介绍,编程方式情参照例题,因为markdown用的不好,现在我都不知道怎样输入数学公式。所以私底下还得记笔记。今天偶然读了一篇文章种,文章中说,如今的大学者越发少见。其中一个原因是现金我们重理轻文。的确如此啊,理学学科应用的太广泛,但是我还是学的是皮毛,虽然很懊恼。但是还得耐着性子一步步的慢慢来。大神不是一日练成的哦!

例1:一阶微分方程

y=dsolve('Dy=1+y^2','y(0)=1','x')
y =tan(pi/4 + x)

例2:常系数的二阶微分方程

dsolve('D2y-2Dy-3y=0','y(0)=1,Dy(0)=0','x')
ans =
(3exp(-x))/4 + exp(3x)/4

例3:非常系数的二阶微分方程

dsolve('D2x-(1-x^2)*x+x=0','x(0)=3,Dx(0)=0')
ans =
[ empty sym ]

无解咋办,欲知详解请看下文哦!

例4:非线性微分方程

x=dsolve('(Dx)2+x2=1','x(0)=0')

x =

cosh((pii)/2 + ti)
cosh((pii)/2 - ti)

例5:微分方程组

[x,y]=dsolve('Dx=3x+4y','Dy=-4x+3y','x(0)=0,y(0)=1')
x =
sin(4t)exp(3t)
y =
cos(4
t)exp(3t)

没有解析解可以采用数值解的方法

[x,y]=ode23('weif',[0,1],1)
plot(x,y,'r');
hold on
ezplot('x+exp(-x)',[0,1])
x =
0
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000
y =
1.0000
1.0048
1.0187
1.0408
1.0703
1.1065
1.1488
1.1966
1.2493
1.3066
1.3679

van der pol方程(就是例3,数值法求解)

[t,y]=ode23('vdpol',[0,20],[3,0]);
y1=y(:,1);
y2=y(:,2);
plot(t,y1,'b',t,y2,'r--')
legend('y1','y2')

MATLAB求解微分方程_第1张图片
van der pol

看看你能不能提出问题呢?所以我不吧我的疑惑写出来。嘿嘿

你可能感兴趣的:(MATLAB求解微分方程)