matlab求解微分代数方程组,微分代数方程(DAE)的Matlab 解法.PDF
微分代数方程(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相关推荐
- matlab求解代数方程组,matlab求解代数方程组.doc
matlab求解代数方程组.doc 1第三讲Matlab求解代数方程组理论介绍:直接法+迭代法,简单介绍相关知识和应用条件及注意事项软件求解:各种求解程序讨论如下表示含有个未知数.由个方程构成的线性方 ...
- 2021-01-13 Matlab求解微分代数方程 (DAE)
Matlab求解微分代数方程 (DAE) 什么是微分代数方程? 微分代数方程是一类微分方程,其中一个或多个因变量导数未出现在方程中.方程中出现的未包含其导数的变量称为代数变量,代数变量的存在意味着不能 ...
- matlab解符号方程组,matlab 求解符号方程组
1特殊符号可爱组成的小狗图案 求解符号方程组: 特殊符号可爱组成的小狗图案,缺失:matlab求解符号方程组4057/9 ▄██████▄ █████████▄ ███ ▄████▄▄▄▄███ ██ ...
- MATLAB求解非线性方程组的五种方法
MATLAB求解非线性方程组的五种方法 求解线性方程分为两种方法–二分法和迭代法 常见的方法一共有5种 二分法 迭代法 牛顿法 割线法 拟牛顿法 Halley法 使用条件 二分法需要知道两个自变量,分 ...
- matlab二元方程区间求解,matlab求解二元方程组
陈星似 魔法师 matlab求解二元方程组 悬赏分:0 提问时间:2010-11-30 23:29回答数:1浏览量:241问题指向:全国 t1=(q1+q2+q3+q4-q5-q6-q7)/g1/c1 ...
- matlab求解黎卡提代数方程_LQR
三种方法求解: 方法一:迭代求解代码--保存文件名"mylqr". %% 利用MATLAB求解黎卡提代数方程 % 方法一:简单代数迭代法 % 令fai_0=0,则可以写出如下的迭代 ...
- MATLAB求解非线性方程组(牛顿拉夫逊方法)
文章目录 MATLAB求解非线性方程组(牛顿拉夫逊方法) Equation.m 函数 牛顿拉夫逊方法迭代求解 MATLAB求解非线性方程组(牛顿拉夫逊方法) Equation.m 函数 这个函数用来写 ...
- 利用matlab求解线性规划,数学建模讲座之三利用matlab求解线性规划问题(linprog函数)...
数学建模讲座之三利用matlab求解线性规划问题(linprog函数) 利用利用 Matlab求解线性规划问题求解线性规划问题河北科技河北科技 大学大学*第第 1页页利用 Matlab求解线性规划问题 ...
- matlab求解不等式方程组解集,matlab求不等式方程组的可行解
求高手用matlab解一个三元的方程组 我算的你这个解都是无穷大.具体过程如下:第一步:建立M文件函数myf.mfunctionf=myf(x)f(1)=600+x(1)*cos(10)+x(2)*s ...
最新文章
- 数据结构与算法-复杂的问题简单化
- BeginPaint和GetDC有什么区别?【转】
- xml转java代码_java 中xml转换为Bean实例解析(纯代码)
- idea设置提示重复代码下去掉波浪线
- 一个很好的开源图像处理软件--imageJ (2
- Java运算符和类型转换
- 涂上你的脸! 如何创建自定义Photoshop笔刷
- ZCU106 VCU Linux驱动转裸机驱动篇(一)
- java登录验证_java实现登录验证码
- 直播预告|年营业额百亿的企业都在如何做数字化转型
- win7怎么修改计算机皮肤,鼠标指针怎么换?小编教你win7系统更换鼠标指针皮肤的方法...
- 【整理】关于Android图形系统的一些事实真相
- Linux环境下配置虚拟ip,方法2:单网卡绑定多IP
- cesium分屏对比
- 《微观经济学》 第八章
- trim()方法的使用
- linux系添加路由,Linux添加路由的两种方法
- 【learning】微信跳一跳辅助c++详解 轻松上万 【下】
- python日记Ddy19——Pandas速查中文手册
- 安全测试 : 小米(xiaomi.com)网站短信接口安全测试,如何保护短信接口?
热门文章
- 刘兵《Entity and aspect extraction for opinion mining 》翻译笔记
- gyp: No Xcode or CLT version detected!问题解决
- CSS3中的animation属性实现无限循环的无缝滚动
- 怎么复制cmd显示的内容?怎么把外面的东西复制到cmd里面?
- 优秀的UI设计所具有的13个原则,天瑞地安小编总结
- 贴片电阻具有哪些特性?
- rsync 的 “file has vanished” 问题
- Cisco 静态路由设计计算机网络课设/实验(含.pkt文件)
- 各种压缩算法的压缩效率,时间、压缩比等比较
- 【产业互联网周报】三家量子计算初创企业宣布融资,华为公开量子密钥相关专利;钉钉高调押注低代码,腾讯云低码平台开启公测...