设置y(0)=1/2,y(x)=1,y"(2x)=0,y'(2x)=1/5: y-dsolve(ld4y10*D3y+35 D2y+50*Dy+24*y= 87*exp(-5*1)*COS(2*t+1)+92*eXp(-5*1)*sin(2*t+1)+ 10]y(0)=12,Dy(pi)=1,D2y(2*pi)=0,Dy(2*pi)=15) 如果用推导的方法求Ci的值,每个系数的解析解至少要写出10 数行,故可采用有理式近似的方式表示 >>vpa(y10)%有理近似值 ans 196361839*eXp(-5*t)+.416666667 4785447354*sin(t)*cos(t*exp(-5*t)-.4519262218e 1*cos(2.*t)*exp(-5.*t2.392723677*cos(t)^2*exp( 5*t)+2259631109sin(2.*t)*exp(-5.*t473690.0893*eXp( 3.*t)+3131963786*eXp(-2.*t)-219.1293619eXp 1.*t)+442590.9059eXp(-4.*t)
>> y=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(0)=1/2','Dy(pi)=1','D2y(2*pi)=0','Dy(2*pi)=1/5'); 如果用推导的方法求Ci的值,每个系数的解析解至少要写出10 数行,故可采用有理式近似 的方式表示. >> vpa(y,10) %有理近似值 ans = 1.196361839*exp(-5.*t)+.4166666667- .4785447354*sin(t)*cos(t)*exp(-5.*t)-.4519262218e- 1*cos(2.*t)*exp(-5.*t)-2.392723677*cos(t)^2*exp(- 5.*t)+.2259631109*sin(2.*t)*exp(-5.*t)-473690.0893*exp(- 3.*t)+31319.63786*exp(-2.*t)-219.1293619*exp(- 1.*t)+442590.9059*exp(-4.*t)
例:求x()=x()(1-x2(m)的解析解 s> syms tX X-dsolve(DX- [1/(1+exp(-2*t)*C1)^(1/2) [-1/(1+exp(-2*t)*C1)(12) 改变原微分方程:x()=x((1-x2(m)+1 syms tx; x-dsolve(Dx=x*(1-x2)+1) Warning: Explicit solution could not be found; implicit solution returned > In D: MATLAB6p5 toolbox symbolicldsolve m at line 292 Int(1a^3+1),a=3.xy)+Cl=0 故只有部分非线性微分方程有解析解
• 例: >> syms t x >> x=dsolve('Dx=x*(1-x^2)') x = [ 1/(1+exp(-2*t)*C1)^(1/2)] [ -1/(1+exp(-2*t)*C1)^(1/2)] >> syms t x; x=dsolve('Dx=x*(1-x^2)+1') Warning: Explicit solution could not be found; implicit solution returned. > In D:\MATLAB6p5\toolbox\symbolic\dsolve.m at line 292 x = t-Int(1/(a-a^3+1),a=``..x)+C1=0 故只有部分非线性微分方程有解析解
7.2微分方程问题的数值解法 7.2.1微分方程问题算法概述 (t)=f(t,m() 其中x(1)=[x1(,x2(),…,xn()为状态向量 f()=[f1(,1(),…,()可以是任意非线性函数
7.2 微分方程问题的数值解法 7.2.1 微分方程问题算法概述
微分方程求解的误差与步长问题: (t)=f(t,(t) Euer算法 0时刻系统状态向量的值为(t0) 微分方程左侧的导数近似为: (ae(to +h)-a(to))/(to +h-to (0+h时刻微分方程的近似解为 e(to +h)= c(to)+hf(to, a(to)
微分方程求解的误差与步长问题:
在t+h时刻系统状态向量的值为 a(to +h)=a(to +h)+ ro= o +hf(t, co)+ Ro 简记x1=(0+h 在tk时刻系统的状态向量为k 在tk+h时刻 Euler算法的数值解为: Ck+1=k +hf(t, k