实用 MATLAB教学资料-25-26常微分方程.pptVIP

  • 0
  • 0
  • 约5.2千字
  • 约 55页
  • 2017-06-04 发布于浙江
  • 举报
[x,y]=ode45(odefun, tspan, y0, options) 1、一阶常微分方程 ode45 [x,y]=ode45(odefun, tspan, y0, options) (1)odefun:定义微分方程 函数式m文件 匿名函数 (2) tspan: 给出求解区间或节点, 可以指定区间[a,b] 可以指定节点[x0,x1,…] 等距节点[a : h : b] 注意:h是输出步长,不是计算步长 [x,y]=ode45(odefun, tspan, y0, options) (3)y0: 初值 (4)options options = odeset(name1,value1,...) [x,y]=ode45(odefun, tspan, y0, options) 误差控制 输出控制 步长控制 …… (4)options 误差控制 name value description RelTol default, 1e-3 相对误差 AbsTol default, 1e-6 绝对误差 options = odeset(name1,value1,...) [x,y]=ode45(odefun, tspan, y0, options) 例 options = odeset(RelTol,1e-5) [x,y]=ode45(odefun, tspan, y0, options) 或Sol= ode45(odefun, tspan,y0,options) (5) x: 自变量序列 (6) y: 因变量序列 (7) Sol:解的结构数组,包括 Sol.x, Sol.y, Sol.solver 例1 解常微分方程在[0, 1]上的解,输出步长h=0.1 [x,y]=ode45(odefun,tspan, y0, options) 2、一阶常微分方程组 ODE [x,y]=ode45(odefun, tspan, y0, options) (1)odefun:定义微分方程组 函数式m文件或匿名函数 odefun返回的必须是列向量 2、一阶常微分方程组 例 函数式m文件定义微分方程 function dydx=odefun(x,y) dydx(1)=y(2); dydx(2)=1+2*x+4*x^2*y(1); dydx=[dydx(1); dydx(2) ]; [x,y]=ode45(@odefun, tspan, y0, options) 例 匿名函数定义微分方程 odefun=@(x,y)[y(2); 1+x^2*y(1)]; [x,y]=ode45(odefun, tspan, y0, options) (2)y0: 初值,列向量 [ y1(a); y2(a); y3(a); .... ] [x,y]=ode45(odefun, tspan, y0, options) 例2 求常微分方程组在[0, 1]上的解 [x,y]=ode45(odefun,tspan, y0, options) 例2 求常微分方程组在[0, 1]上的解,输出步长0.1 [x,y]=ode113(odefun,tspan, y0, options) save 使用文件保存数据 格式:save(filename, va1, …, format) 功能:采用format规定的格式存储变量va1, … 的值到名为filename的文件中 save(filename, va1,…, format) (1)filename :文件名 在程序运行时,自动在当前文件夹创建,并写入数据。 仅当该文件关闭时,数据才能写入其中。 save(filename, va1,…, format) filename:文件名 文件类型 后缀 word *.doc excel *.xls txt *.txt mat *.mat (存储为matlab的变量格式) save(filename, va1,…, format) format: 存储格式 如果是excel文件,最好使用-tabs格式 -ascii 8位数 -ascii, -tabs 8位数,定位输出 -ascii, -double 16位数 -ascii, -double, -tabs 16位数,定位输出 -mat 存储为matlab中的格式,配合.mat文件使用。 load 功能:将文件中的数据导入工作空间

文档评论(0)

1亿VIP精品文档

相关文档