《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 5102|回复: 10
收起左侧

[样章] 第六章 常微分方程 part1

[复制链接]
发表于 2011-4-3 22:57:15 | 显示全部楼层 |阅读模式
第六章 常微分方程 part1


6.1 常微分方程分类及其表示形式

微分方程常用来描述物理变量随时间变化的规律,在数学、物理以及工程中有广泛的应用.微分方程分为常微分方程(ODE)和偏微分方程(PDE),常微分方程是单变量微分方程,只对一个自变量求导,偏微分方程是对多个自变量求导的方程.本章只考虑常微分方程.常微分方程通常分为初值问题(IVP),边值问题(BVP)和延迟微分方程(DDE).本章主要考虑初值问题,略讲后两个问题.微分方程的求解最自然的想法就是通过积分来求解,目前主要可以借助符号计算和数值计算两类方法来求解.在MATLAB 2007之前的版本中,微分方程的符号求解是借助Maple 内核来实现的,在之后的版本中借助于MuPad 来实现,两者在语法上稍有差别.数值求解则是借助MATLAB ODE suite来实现.

6.1.1 MATLAB关于ODE的函数帮助简介
6.1.2 MATLAB ODE suite中关于ODE的分类
6.2 一阶二阶以及高阶常微分方程,初值问题,边值问题
6.2.1 一阶常微分方程
6.2.2 二阶常微分方程

使用MATLAB的符号求解功能,的通解为式所示,求解代码如下:

  1. dsolve('D2x + x=0')
复制代码
                                                                                                                                                  

假设初始位移为1,初始速度为0,式的定解为式所示,代码如下:

  1. dsolve('D2x + x=0','x(0)=1','Dx(0)=0')
复制代码



                                                                                                                                                                              
6.2.3 高阶常微分方程
6.2.4 边值问题
6.2.5 延迟微分方程

6.3 解的存在性、唯一性和适定性


6.3.1 初值问题的存在性与唯一性
6.3.2 MATLAB中常微分方程的通用形式及其向量表示
6.3.3 刚性常微分方程




图 6-1 刚性方程求解示意图


6.4 常微分方程的时域频域表示以及状态方程表示


6.4.1 时域与频域表示形式

  1. use(transform);

  2. laplace((diff(x(t),t $ 2)+2*diff( x(t) , t)+5*x(t)),t,s);

  3. ……

  4. simplify(expand(%));

  5. 3/5 - (3*sin(2*t))/(10*exp(t)) - (3*cos(2*t))/(5*exp(t))
复制代码



然后调用ss函数获得的状态空间表示为下面的a,b,c,d所示

  1. ss(ans)

  2. a =

  3.          x1    x2    x3

  4.    x1    -2  -2.5     0

  5.    x2     2     0     0

  6.    x3     0     1     0

  7. b =

  8.        u1

  9.    x1   1

  10.    x2   0

  11.    x3   0

  12. c =

  13.         x1   x2   x3

  14.    y1    0    0  1.5

  15. d =

  16.        u1

  17.    y1   0
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
发表于 2012-4-10 11:03:01 | 显示全部楼层
use(transform) 报错啊,显示 transform 是一个未定义的函数或变量  这是什么原因?
发表于 2012-5-14 23:23:18 | 显示全部楼层
这正是我想要的
发表于 2012-5-14 23:25:52 | 显示全部楼层
很好的资料,真的不错
发表于 2012-5-20 13:42:23 | 显示全部楼层
很好的资料,谢谢
发表于 2012-5-20 13:43:44 | 显示全部楼层
 楼主| 发表于 2012-6-19 12:55:52 | 显示全部楼层
Woo_Dang 发表于 2012-4-10 11:03
use(transform) 报错啊,显示 transform 是一个未定义的函数或变量  这是什么原因?

应该是版本不同,早期版本是maple的内核.
后来的版本用的mupad,语法不同
发表于 2012-12-3 11:33:04 | 显示全部楼层
发表于 2017-5-22 21:40:12 来自手机 | 显示全部楼层
好资源,值得收藏。
回复 支持 反对

使用道具 举报

发表于 2017-6-10 08:07:13 来自手机 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 蜀ICP备19014457号 

GMT+8, 2019-12-8 04:08 , Processed in 0.074438 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表