《微分方程的基础知识及解析解》由会员分享,可在线阅读,更多相关《微分方程的基础知识及解析解(8页珍藏版)》请在金锄头文库上搜索。
1、微分方程的根底知识与练习一微分方程根本概念:首先通过一个具体的问题来给出微分方程的根本概念。1一条曲线通过点1,2,且在该曲线上任一点Mx,y处的切线的斜率为2x,求这条曲线的方程。解 设曲线方程为.由导数的几何意义可知函数满足 1同时还满足以下条件:时, 2把1式两端积分,得 即 3其中C是任意常数。把条件2代入3式,得, 由此解出C并代入3式,得到所求曲线方程: 42列车在水平直线路上以20的速度行驶;当制动时列车获得加速度.问开场制动后多少时间列车才能停住,以与列车在这段时间里行驶了多少路程?解 设列车开场制动后t秒时行驶了s米。根据题意,反映制动阶段列车运动规律的函数满足: 5此外,还
2、满足条件:时, 6(5)式两端积分一次得: 7再积分一次得 8其中都是任意常数。把条件“时和“时分别代入式和式,得把的值代入7与8式得 9 10在9式中令,得到列车从开场制动到完全停止所需的时间:。再把代入10式,得到列车在制动阶段行驶的路程上述两个例子中的关系式1和5,6都含有未知函数的导数,它们都是微分方程。1微分方程的概念一般地,凡含有未知函数、未知函数的导数与自变量的方程,叫做微分方程。未知函数是一元函数的方程叫做常微分方程;未知函数是多元函数的方程,叫做偏微分方程。我们只研究常微分方程。微分方程中所出现的未知函数的最高阶导数的阶数,叫做微分方程的阶。例如,方程1是一阶微分方程;方程5
3、是二阶微分方程方程。又如,方程是四阶微分方程。一般地,阶微分方程的形式是 11其中F是个变量的函数。这里必须指出,在方程11中,是必须出现的,而等变量那么可以不出现。例如阶微分方程中,除外,其他变量都没有出现。由前面的例子我们看到,在研究某些实际问题时,首先要建立微分方程,然后找出满足微分方程的函数,就是说,找出这样的函数 ,把这函数代入微分方程能使该方程成为恒等式。这个函数就叫做该微分方程的解。例如,函数3和4都是微分方程1的解;函数8和10都是微分方程5的解。如果微分方程的解中含有任意常数,且任意常数的个数与微分方程的阶数一样,这样的解叫做微分方程的通解。例如,函数3是方程1的解,它含有一
4、个任意常数,而方程1是一阶的,所以函数3是方程1的通解。又如,函数8是方程的解,它含有两个任意常数,而方程5是二阶的,所以函数8是方程5的通解。由于通解中含有任意常数,所以它还不能完全确定地反映某一客观事物的规律性,必须确定这些常数的值。为此,要根据问题的实际情况提出确定这些常数的条件。例如,例1中的条件2,例2中的条件6,便是这样的条件。设微分方程中的未知函数为,如果微分方程是一阶的,通常用来确定任意常数的条件是时,或写成 其中,都是给定的值;如果微分方程是二阶的,通常用来确定任意常数的条件是:时,或写成 ,其中,和都是给定的值。上述条件叫做初始条件。确定了通解中的任意常数以后,就得到了微分
5、方程的特解。例如4式是方程1满足条件2的特解;10式是方程5满足条件6的特解。求微分方程满足初始条件的特解这样一个问题,叫做一阶微分方程的初值问题,记作 13二阶微分方程的初值问题是3、 例题例1 验证:函数 14是微分方程 15的解。解 求出所给函数14的导数把与的表达式代入方程15得+函数14与其导数代入方程15后成为一个恒等式,因此函数14是微分方程15的解。用程序来实现: syms k t C1 C2; x=C1*cos(k*t)+C2*sin(k*t); diff(x,t,2)+k2*xans =k2*(C1*cos(k*t) + C2*sin(k*t) - C1*k2*cos(k*
6、t) - C2*k2*sin(k*t) simple(ans)二微分方程的解一、几个会用到的函数:1、solve函数:Matlab中solve函数主要是用来求解线性方程组的解析解或者准确解。solve函数的语法定义主要有以下四种:solve(eq)solve(eq, var)solve(eq1,eq2, , eqn)g = solve(eq1, eq2, , eqn, var1, var2, , varn)eq代表字符串形式的方程,var代表的是变量。例1:解方程程序是:syms a b c x;solve(a*x2+b*x+c) 也可写成solve(a*x2+b*x+c=0) 当没有指定变量
7、的时候,matlab默认求解的是关于x的解,求解的结果为:ans = -(b + (b2 - 4*a*c)(1/2)/(2*a) -(b - (b2 - 4*a*c)(1/2)/(2*a)d当指定变量为b的时候:solve(a*x2+b*x+c,b)求解的结果为:ans =-(a*x2 + c)/xs = -(a*x2 + c)/x例2:对于方程组的情况S=solve(x+y=1,x-11*y=5);S.xS.y S=S.x,S.y(这里或者写成x=S.xy=S.y)如果解得是一个方程组,而且采用了形如a,b=solve(a+b=1, 2a-b=4ab) 的格式,那么,在MATLAB R201
8、4a中没问题,可以保证输出的a,b就等于相应的解,但是在R2012b等早先版本中不能保证输出的顺序就是你声明变量时的顺序。所以最好采用g=solve(a+b=1, 2a-b=4ab)这种单输出格式,这样输出的是一个结构体,g.a和g.b就是对应的解。S = 4/3, -1/3一、 微分方程的解析解格式:dsolve(方程1, 方程2,方程n, 初始条件, 自变量)记号: 在表达微分方程时,用字母D表示求微分,D2y、D3y等表示求高阶微分.任何D后所跟的字母为因变量,自变量可以指定或由系统规那么选定为确省,默认自变量是t例如,微分方程 应表达为:D2y=0.例1:求解微分方程,并加以验证求解本
9、问题的Matlab 程序为:syms x y %line1y=dsolve(Dy+2*x*y=x*exp(-x2),x) %line2diff(y,x)+2*x*y-x*exp(-x2) %line3simplify(diff(y,x)+2*x*y-x*exp(-x2) %line4说明:(1) 行line1是用命令定义x,y为符号变量这里可以不写,但为确保正确性,建议写上;(2) 行line2是用命令求出的微分方程的解:1/2*exp(-x2)*x2+exp(-x2)*C1(3) 行line3使用所求得的解这里是将解代入原微分方程,结果应该为0,但这里给出:-x3*exp(-x2)-2*x*
10、exp(-x2)*C1+2*x*(1/2*exp(-x2)*x2+exp(-x2)*C1)(4) 行line4 用 simplify() simple()函数对上式进展化简,结果为 0, 说明确实是微分方程的解例2:先求微分方程的通解,再求在初始条件下的特解,并画出特解函数的图形求解本问题的 Matlab 程序为:syms x yy=dsolve(x*Dy+y-exp(x)=0, x)结果y =(exp(x)+C1)/x求特解两个方法1.y=dsolve(x*Dy+y-exp(x)=0,y(1)=2*exp(1), x)结果y =(exp(x)+exp(1)/x2.C1= solve(2*ex
11、p(1)=exp(1)+C1,C1)结果C1 =exp(1)y =(exp(x)+exp(-x2)结果(exp(x)+exp(1)/xezplot(y)例3:求微分方程组在初始条件下的特解,并画出解函数的图形求解本问题的 Matlab 程序为:syms x y ta=dsolve(Dx+5*x+y=exp(t),Dy-x-3*y=0,x(0)=1,y(0)=0,t); x=a.xy=a.ysimple(x);simple(y);ezplot(x,y,0,1.3);axis auto %坐标刻度选默认值例4先求微分方程的通解,再求微分方程的特解.程序是:dsolve(D2y+4*Dy+29*y=0,y(0)=0,Dy(0)=15,x)ans =(3*sin(5*x)/exp(2*x)例5 求微分方程组的通解.程序是:A=dsolve(Dx=2*x-3*y+3*z,Dy=4*x-5*y+3*z,Dz=4*x-4*y+2*z,t); x=A.xy=A.yz=A.z /