以下只是例题介绍,编程方式情参照例题,因为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(4t)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')
看看你能不能提出问题呢?所以我不吧我的疑惑写出来。嘿嘿