微分代数方程(DAE)的Matlab 解法

微分代数方程(DAE)的Matlab解法

所谓微分代数方程,是指在微分方程中,某些变量满足某些代数方程的约束。假

设微分方程的更一般形式可以写成

前面所介绍的ODEs数值解法主要针对能够转换为一阶常微分方程组的类型,故

DAE就无法使用前面介绍的常微分方程解法直接求解,必须借助DAE的特殊解法。

其实对于我们使用Matlab求解DAE时,却没有太大的改变只需增加一个Mass

参数即可。描述f(t,x)的方法和普通微分方程完全一致。

注意:ode15i没法设置Mass属性,换句话说除了ode15i外其他ode计算器都

可以求解DAEs问题

1.当M(t,y)非奇异的时候,我们可以将微分方程等效的转换为

y'=inv(M)*f(t,y),此时就是一个普通的ODE(当然我们可以将它当成DAEs处

理),对任意一个给定的初值条件都有唯一的解

2.当m(t,y)奇异时,我们叫它为DAEs(微分代数方程),DAEs问题只有在同时提

供状态变量初值y0和状态变量一阶导数初值py0,且满足M(t0,y0)*yp0=f(t0,y0)

时才有唯一解,假如不满足上面的方程,DAEs解算器会将提供的y0和py0作为

猜测初始值,并重新计算与提供初值最近的封闭初值

3.质量矩阵可是一个常数矩阵(稀疏矩阵),也可以是一个自定义函数的输出。但

是ode23s只能求解Mass是常数的DAEs

4.对于Mass奇异的DAEs问题,特别是设置MassSingular为yes时,只能ode15s

和ode23t解算器

5.对于DAE我们还有几个参数需要介绍

a.Mass:质量矩阵,不说了,这个是DAE的关键,后面看例子就明白了

b.MStateDependence:质量矩阵M(t,y)是否是y的函数,可以选择

none|{weak}|strong,none表示M与y无关,weak和strong都表示与y相关

c.MvPattern:注意这个必须是稀疏矩阵,S(i,j)=1表示M(t,y)的第i行中任意

元素都与第j个状态变量yi有关,否则为0

d.MassSingular:设置Mass矩阵是否奇异,当设置为yes时,只能使用ode15s

和ode23t

e.InitialSlope:状态变量的一阶导数初值yp0,和y0具有相同的size,当使

用ode15s和ode23t时,该属性默认为0

下面我们以实例说明,看下面的例子,求解该方程的数值解

【解】

真是万幸,选取状态变量和求状态变量的一阶导数等,微分方程转换工作,题目

已经帮我们完成。

可是细心的网友会发现,最后一个方程不是微分方程而是一个代数方程(这就是

为什叫DAE的原因),其实我们可以将它视为对三个状态变量的约束。

(1)用矩阵形式表示出该DAEs

(2)编写Matlab代码

复制内容到剪贴板

代码:

odefun=@(t,x)[-0.2*x(1)+x(2)*x(3)+0.3*x(1)*x(2);

2*x(1)*x(2)-5*x(2)*x(3)-2*x(2)*x(2);

x(1)+x(2)+x(3)-1];%微分方程组

M=[1 0 0;0 1 0;0 0 0];%质量矩阵

options=odeset('mass',M);%对以DAE问题,mass属性必须设置

x0=[0.8;0.1;0.1];%初值

[t,x]=ode15s(odefun,[0 20],x0,options);%这里好像不能使用ode45

figure('numbertitle','off','name','DAE demo—by Matlabsky')

plot(t,x)

legend('x1(t)','x2(t)','x3(t)')

在介绍隐式ODEs时,我们说了ode15i也可以求解DAEs,原理就是将约束看成

一个隐式,好,下面我们看看,验证下所说的:

复制内容到剪贴板

代码:

odefun=@(t,x,dx)[dx(1)+0.2*x(1)-x(2)*x(3)-0.3*x(1)*x(2);

dx(2)-2*x(1)*x(2)+5*x(2)*x(3)+2*x(2)^2;

x(1)+x(2)+x(3)-1];

%状态变量初值,题目中给出

x0=[0.8;0.1;0.1];

%该初值全部给定,按理说应该全部为1,但是记住方程中有一个约束,故其实

只有两个独立初值

x0_fix=[1;0;1];%随意一个改为0都可以,比如[0;1;1]或者[1;1;0]

%状态变量一阶微分初值,题

matlab求解微分代数方程组,微分代数方程(DAE)的Matlab 解法.PDF相关推荐

  1. matlab求解代数方程组,matlab求解代数方程组.doc

    matlab求解代数方程组.doc 1第三讲Matlab求解代数方程组理论介绍:直接法+迭代法,简单介绍相关知识和应用条件及注意事项软件求解:各种求解程序讨论如下表示含有个未知数.由个方程构成的线性方 ...

  2. 2021-01-13 Matlab求解微分代数方程 (DAE)

    Matlab求解微分代数方程 (DAE) 什么是微分代数方程? 微分代数方程是一类微分方程,其中一个或多个因变量导数未出现在方程中.方程中出现的未包含其导数的变量称为代数变量,代数变量的存在意味着不能 ...

  3. matlab解符号方程组,matlab 求解符号方程组

    1特殊符号可爱组成的小狗图案 求解符号方程组: 特殊符号可爱组成的小狗图案,缺失:matlab求解符号方程组4057/9 ▄██████▄ █████████▄ ███ ▄████▄▄▄▄███ ██ ...

  4. MATLAB求解非线性方程组的五种方法

    MATLAB求解非线性方程组的五种方法 求解线性方程分为两种方法–二分法和迭代法 常见的方法一共有5种 二分法 迭代法 牛顿法 割线法 拟牛顿法 Halley法 使用条件 二分法需要知道两个自变量,分 ...

  5. matlab二元方程区间求解,matlab求解二元方程组

    陈星似 魔法师 matlab求解二元方程组 悬赏分:0 提问时间:2010-11-30 23:29回答数:1浏览量:241问题指向:全国 t1=(q1+q2+q3+q4-q5-q6-q7)/g1/c1 ...

  6. matlab求解黎卡提代数方程_LQR

    三种方法求解: 方法一:迭代求解代码--保存文件名"mylqr". %% 利用MATLAB求解黎卡提代数方程 % 方法一:简单代数迭代法 % 令fai_0=0,则可以写出如下的迭代 ...

  7. MATLAB求解非线性方程组(牛顿拉夫逊方法)

    文章目录 MATLAB求解非线性方程组(牛顿拉夫逊方法) Equation.m 函数 牛顿拉夫逊方法迭代求解 MATLAB求解非线性方程组(牛顿拉夫逊方法) Equation.m 函数 这个函数用来写 ...

  8. 利用matlab求解线性规划,数学建模讲座之三利用matlab求解线性规划问题(linprog函数)...

    数学建模讲座之三利用matlab求解线性规划问题(linprog函数) 利用利用 Matlab求解线性规划问题求解线性规划问题河北科技河北科技 大学大学*第第 1页页利用 Matlab求解线性规划问题 ...

  9. matlab求解不等式方程组解集,matlab求不等式方程组的可行解

    求高手用matlab解一个三元的方程组 我算的你这个解都是无穷大.具体过程如下:第一步:建立M文件函数myf.mfunctionf=myf(x)f(1)=600+x(1)*cos(10)+x(2)*s ...

最新文章

  1. 数据结构与算法-复杂的问题简单化
  2. BeginPaint和GetDC有什么区别?【转】
  3. xml转java代码_java 中xml转换为Bean实例解析(纯代码)
  4. idea设置提示重复代码下去掉波浪线
  5. 一个很好的开源图像处理软件--imageJ (2
  6. Java运算符和类型转换
  7. 涂上你的脸! 如何创建自定义Photoshop笔刷
  8. ZCU106 VCU Linux驱动转裸机驱动篇(一)
  9. java登录验证_java实现登录验证码
  10. 直播预告|年营业额百亿的企业都在如何做数字化转型
  11. win7怎么修改计算机皮肤,鼠标指针怎么换?小编教你win7系统更换鼠标指针皮肤的方法...
  12. 【整理】关于Android图形系统的一些事实真相
  13. Linux环境下配置虚拟ip,方法2:单网卡绑定多IP
  14. cesium分屏对比
  15. 《微观经济学》 第八章
  16. trim()方法的使用
  17. linux系添加路由,Linux添加路由的两种方法
  18. 【learning】微信跳一跳辅助c++详解 轻松上万 【下】
  19. python日记Ddy19——Pandas速查中文手册
  20. 安全测试 : 小米(xiaomi.com)网站短信接口安全测试,如何保护短信接口?

热门文章

  1. 刘兵《Entity and aspect extraction for opinion mining 》翻译笔记
  2. gyp: No Xcode or CLT version detected!问题解决
  3. CSS3中的animation属性实现无限循环的无缝滚动
  4. 怎么复制cmd显示的内容?怎么把外面的东西复制到cmd里面?
  5. 优秀的UI设计所具有的13个原则,天瑞地安小编总结
  6. 贴片电阻具有哪些特性?
  7. rsync 的 “file has vanished” 问题
  8. Cisco 静态路由设计计算机网络课设/实验(含.pkt文件)
  9. 各种压缩算法的压缩效率,时间、压缩比等比较
  10. 【产业互联网周报】三家量子计算初创企业宣布融资,华为公开量子密钥相关专利;钉钉高调押注低代码,腾讯云低码平台开启公测...