matlab中desolve、solve函数的应用

1.desolve函数

desolve函数用于求解微分方程或微分方程组,话不多说,直接上例子:

1.1 求dy/dt=5的微分方程

y1=dsolve('Dy==5')

1.2 求dy/dx=x的微分方程,x为自变量

y2=dsolve('Dy==x','x')

1.3 求d2y/dt2=1+dy/dt的微分方程

y3=dsolve('D2y==1+Dy')

1.4 求d2y/dt2=1+dy/dt的微分方程,初始条件y(0)=1,dy(0)/dt=0

y4=dsolve('D2y==1+Dy','y(0)==1','Dy(0)==0')

1.5 dx/dt=y+x,dy/dt=2*x的微分方程组的解,x=y5,y=y6

[y5,y6]=dsolve('Dx==y+x','Dy==2*x')

1.6 dx/dt=y+x,dy/dt=2*x的微分方程组的解,初始条件x(0)=0,y(0)=1,x=y5,y=y6

[y7,y8]=dsolve('Dx==y+x','Dy==2*x','x(0)==0','y(0)==1')

1.7 求dy/dx=-2y+2x^2+2*x,初始条件y(0)==1,x为自变量

y9=dsolve('Dy==-2*y+2*x^2+2*x','y(0)==1','x')

注意:dsolve函数用单引号将方程引起来,方程里不能用.*或者.^ 的符号。

2.solve函数

solve函数用于求解一般的方程(非微分方程),话不多说,直接上例子:

2.1 求sin(x)=1/2方程的根

x1=solve(sin(x)==1/2)

2.2 求x^3-1==0方程的根

x2=solve(x.^3-1==0)

2.3 求ax+b=0的解

syms f x a b 
f=a*x+b;
x3=solve(f,x) %x3=-b/a

2.4 求二元一次方程组x+y=1和2x-y=1的解

syms x y 
s=solve(x+y-1,2*x-y-1,x,y);%s是一个结构体
s.x % x=2/3
s.y % y=1/3

2.5 求解二阶微分方程(方程如下)

matlab中desolve、solve函数的应用_第1张图片

syms r 
l=solve(r^2+4*r-3,r) 
syms t c1 c2 
u=c1*exp(l(1)*t)+c2*exp(l(2)*t)
c=solve(subs(u,t,sym(0))-1,subs(diff(u,t),t,sym(0)),c1,c2)
u=subs(u,{c1,c2},{c.c1,c.c2}) 
tt=linspace(0,5,21); 
plot(tt,subs(u,t,tt)) 

结果:
matlab中desolve、solve函数的应用_第2张图片

注意:solve函数不用单引号将方程引起来,方程里可以用.*或者.^ 的符号,也可以不用。

你可能感兴趣的:(MATLAB,matlab)