exp求微分方程的解.docVIP

  • 46
  • 0
  • 约4.7千字
  • 约 9页
  • 2017-10-10 发布于江苏
  • 举报
exp求微分方程的解

实验四 求微分方程的解 一、问题背景与实验目的 实际应用问题通过数学建模所归纳而得到的方程,绝大多数都是微分方程,真正能得到代数方程的机会很少.另一方面,能够求解的微分方程也是十分有限的,特别是高阶方程和偏微分方程(组).这就要求我们必须研究微分方程(组)的解法,既要研究微分方程(组)的解析解法(精确解),更要研究微分方程(组)的数值解法(近似解). 对微分方程(组)的解析解法(精确解),Matlab 有专门的函数可以用,本实验将作一定的介绍. 本实验将主要研究微分方程(组)的数值解法(近似解),重点介绍 Euler 折线法. 二、相关函数(命令)及简介 1.dsolve(equ1,equ2,…):Matlab 求微分方程的解析解.equ1、equ2、…为方程(或条件).写方程(或条件)时用 Dy 表示y 关于自变量的一阶导数,用用 D2y 表示 y 关于自变量的二阶导数,依此类推. 2.simplify(s):对表达式 s 使用 maple 的化简规则进行化简. 例如: syms x simplify(sin(x)^2 + cos(x)^2) ans=1 3.[r,how]=simple(s):由于 Matlab 提供了多种化简规则,simple 命令就是对表达式 s 用各种规则进行化简,然后用 r 返回最简形式,how 返回形成这种形式所用的规则. 例如: syms x [r,how]=simple(cos(x)^2-sin(x)^2) r = cos(2*x) how = combine 4.[T,Y] = solver(odefun,tspan,y0) 求微分方程的数值解. 说明: (1) 其中的 solver为命令 ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb 之一. (2) odefun 是显式常微分方程: (3) 在积分区间 tspan=上,从到,用初始条件求解. (4) 要获得问题在其他指定时间点上的解,则令 tspan= (要求是单调的). (5) 因为没有一种算法可以有效地解决所有的 ODE 问题,为此,Matlab 提供了多种求解器 Solver,对于不同的ODE 问题,采用不同的Solver. 求解器 Solver ODE类型 特点 说明 ode45 非刚性 单步算法;4、5阶Runge-Kutta方程;累计截断误差达 大部分场合的首选算法 ode23 非刚性 单步算法;2、3阶Runge-Kutta方程;累计截断误差达 使用于精度较低的情形 ode113 非刚性 多步法;Adams算法;高低精度均可到 计算时间比 ode45 短 ode23t 适度刚性 采用梯形算法 适度刚性情形 ode15s 刚性 多步法;Gears反向数值微分;精度中等 若 ode45 失效时,可尝试使用 ode23s 刚性 单步法;2阶 Rosebrock 算法;低精度 当精度较低时,计算时间比 ode15s 短 ode23tb 刚性 梯形算法;低精度 当精度较低时,计算时间比 ode15s 短 (6) 要特别的是:ode23、ode45 是极其常用的用来求解非刚性的标准形式的一阶常微分方程(组)的初值问题的解的 Matlab 的常用程序,其中: ode23 采用龙格-库塔2 阶算法,用3 阶公式作误差估计来调节步长,具有低等的精度. ode45 则采用龙格-库塔4 阶算法,用5 阶公式作误差估计来调节步长,具有中等的精度. 5.ezplot(x,y,[tmin,tmax]):符号函数的作图命令.x,y 为关于参数t 的符号函数,[tmin,tmax] 为 t 的取值范围. 6.inline():建立一个内联函数.格式:inline(expr, var1, var2,…) ,注意括号里的表达式要加引号. 例:Q = dblquad(inline(y*sin(x)), pi, 2*pi, 0, pi) 三、实验内容 1. 几个可以直接用 Matlab 求微分方程精确解的例子: 例1:求解微分方程,并加以验证. 求解本问题的Matlab 程序为: syms x y %line1 y=dsolve(Dy+2*x*y=x*exp(-x^2),x) %line2 diff(y,x)+2*x*y-x*exp(-x^2) %line3 simplify(diff(y,x)+2*x*y-x*exp(-x^2)) %line4 说明: (1) 行line1是用命令定义x,y为符号变量.这里可以不写,但为确保正确性,建议写上; (2) 行lin

文档评论(0)

1亿VIP精品文档

相关文档