matlab在科学计算中的应用623080.pptVIP

  • 2
  • 0
  • 约1.5万字
  • 约 98页
  • 2017-09-06 发布于重庆
  • 举报
第六章 微分方程问题的解法 微分方程的解析解方法 常微分方程问题的数值解法 微分方程问题算法概述 四阶定步长 Runge-Kutta算法及 MATLAB 实现 一阶微分方程组的数值解 微分方程转换 特殊微分方程的数值解 边值问题的计算机求解 偏微分方程的解 6.1 微分方程的解析解方法 格式: y=dsolve(f1, f2, …, fm) 格式:指明自变量 y=dsolve(f1, f2, …, fm ,’x’) fi即可以描述微分方程,又可描述初始条件或边界条件。如: 描述微分方程时 描述条件时 例: syms t; u=exp(-5*t)*cos(2*t+1)+5; uu=5*diff(u,t,2)+4*diff(u,t)+2*u uu = 87*exp(-5*t)*cos(2*t+1)+92*exp(-5*t)*sin(2*t+1)+10 syms t y; 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=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)=3, Dy(0)=2, D2y(0)=0, D3y(0)=0) 分别处理系数,如: [n,d]=rat(double(vpa(-445/26*cos(1)-51/13*sin(1)-69/2)))] ans = -8704 185 % rat()最接近有理数的分数 判断误差: vpa(-445/26*cos(sym(1))-51/13*sin(1)-69/2+8704/185) ans = .114731975864790922564144636e-4 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,y]=dsolve(D2x+2*Dx=x+2*y-exp(-t), … Dy=4*x+3*y+4*exp(-t)) 例: 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 故只有部分非线性微分方程有解析解。 6.2 微分方程问题的数值解法 6.2.1 微分方程问题算法概述 function [outx,outy]=MyEuler(fun,x0,xt,y0,PointNum) % fun 表示f(x,y); x0,xt:自变量的初值和终值; y0:函数在x0处的值,其可以为向量形式;

文档评论(0)

1亿VIP精品文档

相关文档