您所在位置:网站首页 > 海量文档

&nbsp>&nbsp计算机&nbsp>&nbspmatlab

Matlab解微分方程(ODE+PDE).pdf33页

本文档一共被下载:次,您可全文免费在线阅读后下载本文档。

下载提示

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

2.该文档所得收入(下载+内容+预览三)归上传者、原创者。

3.登录后可充值,立即自动返金币,充值渠道很便利

常微分方程:

1 ODE 解算器简介(ode**)

2 微分方程转换

3 刚性/非刚性问题(Stiff/Nonstiff)

4 隐式微分方程(IDE)

5 微分代数方程(DAE)

6 延迟微分方程(DDE)

7 边值问题(BVP) 偏微分方程(PDEs)Matlab 解法

偏微分方程:

1 一般偏微分方程组(PDEs)的命令行求解

2 特殊偏微分方程(PDEs)的PDEtool 求解

3 陆君安《偏微分方程的 MATLAB 解法

先来认识下常微分方程(ODE)初值问题解算器(solver)

[T,Y,TE,YE,IE] = odesolver(odefun,tspan,y0,options)

sxint = deval(sol,xint)

Matlab 中提供了以下解算器:

输入参数:

odefun :微分方程的 Matlab 语言描述函数,必须是函数句柄或者字符串,必须写成 Matlab

规范格式(也就是一阶显示微分方程组) ,这个具体在后面讲解

tspan=[t0 tf]或者[t0,t1,…tf]:微分变量的范围,两者都是根据t0 和 tf 的值自动选择步长,只

是前者返回所有计算点的微分值,而后者只返回指定的点的微分值,一定要注意对于后者

tspan 必须严格单调,还有就是两者数据存储时使用的内存不同( 明显前者多) ,其它没有任何

本质的区别

y0=[y(0),y’(0),y’’(0)…] :微分方程初值,依次输入所有状态变量的初值,什么是状态变量在

后面有介绍

options :微分优化参数,是一个结构体,使用odeset 可以设置具体参数,详细内容查看帮助

输出参数:

T :时间列向量,也就是ode**计算微分方程的值的点

Y :二维数组,第 i 列表示第 i 个状态变量的值, 行数与 T 一致

在求解 ODE 时,我们还会用到 deval()函数,deval 的作用就是通过结构体 solution 计算 t

对应 x 值,和 polyval 之类的很相似!

参数格式如下:

sol:就是上次调用ode**函数得道的结构体解

xint :需要计算的点,可以是标量或者向量,但是必须在tspan 范围内

该函数的好处就是如果我想知道 t=t0 时的 y 值,不需要重新使用 ode 计算,而直接使用上

次计算的得道 solution 就可以

[教程] 微分方程转换为一阶显示微分方程组方法

好,上面我们把 Matlab 中的常微分方程(ODE)的解算器讲解的差不多了,下面我们就具体

开始介绍如何使用上面的知识吧!

现实总是残酷的,要得到就必须先付出,不可能所有的 ODE 一拿来就可以直接使用,因此,

在使用 ODE 解算器之前,我们需要做的第一步,也是最重要的一步,借助状态变量将微分

方程组化成 Matlab 可接受的标准形式 (一阶显示常微分方程) !

如果 ODEs 由一个或多个高阶微分方程给出,则我们应先将其变换成一阶显式常微分方程组 !

下面我们以两个高阶微分方程构成的 ODEs 为例介绍如何将之变换成一个一阶显式常微分方

程组。

step1.将微分方程的最高阶变量移到等式的左边,其他移到右边,并按阶次从低到高

排列,假如说两个高阶微分方程最后能够显式的表达成如下所示:

我们说过现实总是残酷的,有时方程偏偏是隐式的,没法写成上面的样子,不用担心 Matlab

早就为我们想到了,这个留在后面的隐式微分方程数值求解中再详细讲解!

step2.为每一阶微分式选择状态变量,最高阶除外

从上面的变换,我们注意到,ODEs 中所有因变量的最高阶次之和就是需要的状态变量的个

(m) (n)

数,最高阶的微分式(比如上面的x 和 y )不需要给它一个状态变量

step3.根据上面选用的状态变量,写出所有状态变量的一阶微分的表达式

注意到,最高阶次的微分式的表达式直接就是 step1 中的微分方程

好,到此为止,一阶显式常微分方程组,变化顺利结束,接下来就是Matlab 编程了。请

记住上面的变化很重要,Matla 中所有微分方程的求解都需要上面的变换。

下面通过一个实例演示 ODEs 的转换和求解

【解】真是万幸,该 ODEs 已经帮我们完成了 step1,我们只需要完成 step2 和 step3

(1)选择一组状态变量

(2)写出所有状态变量的一阶微分表达式

(4)有了数学模型描述,则可以立即写出相应的 Matlab 代码了 (这里我们优先选择 ode45)

1. x0=[1.

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名:

验证码:

匿名?

发表评论

matlab 怎么解ode方程,Matlab解微分方程(ODE+PDE).pdf相关推荐

  1. matlab解坐标方程,matlab程序(解泊松方程)

    求解泊松方程的 function Finite_element_tri(Imax) % 用有限元法求解三角形形区域上的Possion方程 Jmax=2*Imax; % 其中Imax Jmax分别表示x ...

  2. matlab平面抛射方程,MATLAB 数学实验 第七章 微分方程与计算机模拟 PPT注记

    第七章 微分方程与计算机模拟 PPT 注记 (2009-5-24) 只有三个内容,有一定难度和深度.三个内容是: 常微分方程初值问题求数据解和蝴蝶效应(洛仑兹模型)的动态仿真.追击曲线动态仿真.有阻力 ...

  3. python解复杂方程_Python 解方程的三种方法

    # 首发于我的博客 The North. 新年第一篇,搞起. 这回写一个好久之前想做,一直搁着没做的东西-- Python 解方程(其实是放假回家,趁着家里电脑重装 LOL 的时间过来写一篇). 咱这 ...

  4. matlab riccati 方程,matlab解riccati方程

    Riccati 方程求解 ? ? 前三个问题将介绍解析解与数值解,后一 个属于非... 矩阵的化零空间或基础解系计算,支持符号运算 求解连续 Lyapunov 方程.Sylvester 方程的数值解 ...

  5. matlab解方程x 2-x-2=0,matlab用三种方法求解二阶微分方程x''+0.2x'=0.4x=0.2u(t),u(t)是单位阶跃函数,初始状态为0...

    问题描述: matlab用三种方法求解二阶微分方程x''+0.2x'=0.4x=0.2u(t),u(t)是单位阶跃函数,初始状态为0 1个回答 分类: 数学 2014-11-28 问题解答: 我来补答 ...

  6. 如何用matlab解异或方程,Matlab-6:解非线性方程组newton迭代法

    函数文件: function x=newton_Iterative_method(f,n,Initial) x0=Initial; tol=1e-11; x1=x0-Jacobian(f,n,x0)\ ...

  7. matlab将求解sin隐式解,Matlab隐式符号方程求解和赋值

    近日处理了一个隐式方程的求解,由于方程含有较多的未知数,而且这些参数均是跟实验相关的一些参数,所以,必须得到需要求解的解与 这些参数之间的一个表达式.之前是考虑用的Maple推导求解了该隐私方程,求解 ...

  8. matlab用方程的解赋值,Matlab隐式符号方程求解和赋值

    近日处理了一个隐式方程的求解,由于方程含有较多的未知数,而且这些参数均是跟实验相关的一些参数,所以,必须得到需要求解的解与 这些参数之间的一个表达式.之前是考虑用的Maple推导求解了该隐私方程,求解 ...

  9. MATLAB解隐函数方程时符号表达式转化为数值的方法-用vpa函数

    今天在解决一个小问题时,遇到解隐函数方程,中间涉及一个解的传递问题,才好好研究了一下 syms这个语句的一些语法规则,最终用vpa这个函数解决了符号表达式到double数值的转化. syms是符号函数 ...

  10. matlab solve 解的范围,matlab怎么解方程,如何规定解的范围?

    方法/步骤: 一.解一元方程 1.先举一例,解方程"x^2+100*x+99=0". 在Matlab "Command Window"中输入如下命令:x=sol ...

最新文章

  1. oracle批量更新数据从另一表_常用SQL系列之(五):多表和禁止插入、批量与特殊更新等...
  2. TimeQuest之delay_fall clock_fall傻傻分不清楚
  3. Linux apt-get install无法定位问题
  4. [译]在CUDA C/C++中如何衡量代码性能
  5. php SqlServer 中文汉字乱码
  6. python 需要多久能够学精通_python入门到精通需要学多久-史上最详细python学习路线-从入门到精通,只需5个月时间...
  7. ES6 系列之 Babel 是如何编译 Class 的(上)
  8. Spotify模式并非“敏捷涅磐”
  9. linux系统io查看计算,Linux下查看进程IO工具iopp
  10. 网龙面试后多久有回应_回应面试问题
  11. 正大天晴与阿里云合作,AI制药提高化合物筛选准确率20% 新药研发困难重重?正大天晴与阿里云合作用AI寻找解决办法...
  12. python中用于绘制各种图形的区域称作_Python--matplotlib绘图可视化知识点整理(示例代码)...
  13. java 中linux命令参数说明,java中linux命令参数说明
  14. Eclipse设置Android Logcat输出字体大小
  15. ArgularJS和mdui的对话框冲突的解决方案
  16. 10个办法让设计小白迅速get海报设计要点!
  17. 开源应用中心 | KodExplorer高效流畅云端存储协同办公新体验
  18. udhcpc遇到问题
  19. VS编译间接引用的DLL不一定输出
  20. 简单工厂模式在Logback源码以及JDK源码中的应用

热门文章

  1. 《Elasticsearch 源码解析与优化实战》第18章:写入速度优化
  2. 如何查询SCI检索号?
  3. 中文论文检索证明怎么开_作者如何拿到论文检索证明
  4. 安卓12使用VNET免ROOT抓包微信小程序
  5. 【76.57%】【codeforces 721A】One-dimensional Japanese Crossword
  6. POJ 3388 Japanese Puzzle(二分法)
  7. 创新抗生素获FDA优先审评资格 治疗社区获得性肺炎
  8. 苹果文件管理器服务器,8最佳免费iPhone文件管理器,用于管理iOS设备上的文件...
  9. 撞线百亿后,良品铺子峥嵘毕现?
  10. C#中的get和set用法