Matlab求解微分方程——常微分方程的求解微分方程是数学中一个很重要的概念,在很多学科领域内有着重要的应用,特别是在数学建模中,大部分模型都可以表示为一组微分方程的形式。大体上,微分方程分为两类,未知函数是一元函数的,叫常微分方程;未知函数是多元函数的叫做偏微分方程。这一部分我们介绍常微分方程的求解。一、求解常微分方程的解析解在微分方程中,绝大部分微分方程是无法求出解析解的。通常,可以通过解析解的方法求解的微分方程主要是线性微分方程和低阶特殊微分方程。Matlab求解微分方程的解析解主要用到的函数是dsolve()函数。该函数的调用格式如下:y=dsolve(‘eq1,eq2,…’)y=dsove(‘eq1,eq2,…’,’x’)y=dsolve(‘eq1,eq2,…’,’cond1,cond2,…’,’x’)‘eq1,eq2,…’为微分方程或微分方程组;’cond1,cond2,…’是初始条件或边界条件;’x’是独立变量,默认的独立变量是’t’。dsolve函数求解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解。Example1:-5t假设输入信号为u(t)=ecos(2t+1)+5,试求出下面微分方程的通解。(4)(3)(2)'(2)'y(t)+10y(t)+35y(t)+50y(t)+24y(t)=5u(t)+4u(t)+2u(t)给出的方程是一个常微分方程,没有初始条件,求通解,可以用下面的程序来求解:symstyy=dsolve(['D4y+10*D3y+35*D2y+50*Dy+24*y=',...'87*exp(-5*t)*cos(2*t+1)+92*exp(-5*t)*sin(2*t+1)+10'])运行结果简化后为:y=C2*exp(-3*t)-(547*exp(-5*t)*sin(2*t+1))/520-(343*exp(-5*t)*cos(2*t+1))/520+C4*exp(-2*t)+C5*exp(-t)+C3*exp(-4*t)+5/12Example2:常微分方程组的求解试求解下面微分方程满足x(0)=1,x(π)=2,y(0)=0条件下的解析解。ïìx(2)(t)+5x'(t)+4x(t)+3y(t)=e-6tsin(4t)í''-6tîï2y(t)+y(t)+4x(t)+6x(t)=ecos(4t)给出的是常系数线性微分方程组,有初始条件,可以用下面的程序来进行求解:symst[x,y]=dsolve('D2x+5*Dx+4*x+3*y=exp(-6*t)*sin(4*t)',...'2*Dy+y+4*Dx+6*x=exp(-6*t)*cos(4*t)','x(0)=1','x(pi)=2','y(0)=0')vpa(x,10)vpa(y,10)由于解析解规模比较大,我们取10位有效数字简化系数后得到结果为:x=*exp(t)-/(exp(*t)^(1/4)*exp(t)^(13/4))+(*exp(*t)^(1/4))/exp(t)^(13/4)+*exp(-*t)*cos(*t)-*exp(-*t)*sin(*t)y=/(exp(*t)^(1/4)*exp(t)^(13/4))-*exp(t)+(*exp(*t)^(1/4))/exp(t)^(13/4)-*exp(-*t)*cos(*t)+*exp(-*t)*sin(*t)Example3:特殊非线性微分方程的求解11试求出微分方程y(2)(x)-(2-)y'(x)+(1-)y(x)=x2e-5x的xx解析解通解。这是一个特殊的非线性微分方程,需要指出的是,大部分非线性微分方程是无法求出解析解的,能够求出解析解的只是很少的一部分。求解该微分方程可以用下面的程序:symsxy=dsolve('D2y-(2-1/x)*Dy+(1-1/x)*y=x^2*exp(-5*x)','x')求解结果经过适当的化简后显示如下:y=(exp(-5*x)*(30*x-6*Ei(-6*x)*exp(6*x)+36*x^2+1296*C5*exp(6*x)+1296*C6*exp(6*x)*log(x)+11))/1296二、求解常微分方程的数值解作为一名工科学生,我们的关注点往往不是在某种解析式上,我们更偏重于某个“数”,也就是微分方程的数值解。同
matlab求解常微分方程 来自淘豆网m.daumloan.com转载请标明出处.