已有天涯账号?
这里是所提的问题,您需要登录才能参与回答。
"天涯问答"是天涯社区旗下的问题分享平台。在这里您可以提问,回答感兴趣的问题,分享知识和经历,无论您在何时何地上线都可以访问,此平台完全免费,而且注册非常简单。
MATLAB求解方程
y=0...8 y=0,25,10,15,20,25,30 求X 如何用插值法求解
09-10-21 & 发布
pMatlab中微分span href=&&方程的问题 1. Matlab能够处理什么样的span href=&&微分方程? 2. 可以从什么地方获得更多的指导与附加信息? 常问问题 3. 对ODE求解器的语法存在有些什么变化? 4. 如何减小ODE的阶次? 5. 如何解决时变(依赖时间的)ODEs? 6. 如何采用定时间步长(?Fixed Time Step)? 7. 如何利用随机微分方程? span href=&&例子 8. 方程span href=&&系统 9. 带边界值问题(Boundary Value Problem,BVP):管道流(?Channel Flow) 刚度(?Stiffness) 10. 什么是Stiffness? 11. 暗示(间接?Implicit)与明示(直接?Explicit)方法 12. 实例 span href=&&设置 13. 如何在解微分方程的时候改变设置? 14. 哪些设置span href=&&参数可以更改? 15. 如何将options当作函数利用? 微分--数方程与他们的索引(?Index) 16. Matlab中如何解决微分-代数方程系统? 第1节 Matlab能够处理什么样的微分方程? Matlab提供了解决包括解微分方程在内的各种类型问题的函数: 1. 常规微分方程(ODEs)的初始值问题 初值问题是用MATLAB ODE求解器解决的最普遍的问题。初始值问题最典型的是对非刚性度(?nonstiff)问题应用ODE45,对刚性度(?stiff)问题采用ODE15S。(对于stiffness的解释,请参照“什么是Stiffness”一节。) 2. 微分-代数方程(DAEs)的初值问题 在那些守恒定律规定一些span href=&&变量之间满足常数关系领域经常遇到这类问题。Matlab 可以用ODE15S 或者 ODE23T解决索引(index)为1的DAEs。(对于索引的解释,请参阅“DAEs与他们的索引”一章。) 3. 边界值问题(BVPs) 这种通常要求微分方程在两边都具有特殊的条件组成。尽管他们通常不象IVPs那样经常遇到,但是他们也是工程应用中比较常见的问题。可以利用函数BVP4C来解决这类问题。 4. 时延微分方程(DDEs) 这类微分方程包含了独立变量的延迟。他们在生物与化学模型这类大量的应用中遇到,可以通过DDE23来解决这类问题。 5. 偏微分方程(PDEs) 采用PDEPE可以解决一维时空的抛物面与椭圆方程的初值、边界值的问题。而那些对更加多的一般的偏微分方程感兴趣的可以利用PDE工具箱。 更多的span href=&&matlab的综合应用技术的信息请参阅Solution8314。 更多的有关matlab采用的各种求解器的span href=&&算法的信息请查看下面的URLs: ● ODE 函数 ● BVP 函数 ● DDE 函数 ● PDE 函数 第2节 可以从什么地方获得更多的指导与附加信息? 可以从MATLAB Center、网站的新闻组、span href=&&文件交换点可以获得一系列span href=&&资料,可以进一步解释MATLAB解决各种方程(ODE,DAE,BVP,DDE)的求解器的算法和使用。你可以下载各种方程的文章与手册,他们通常带有大量的实例。 可以从 matlab自带的帮助文件的 Mathematics|Differential Equations下找到使用指导。 Cleve Moler的《Numerical Computing with MATLAB》的第七章详细讨论了OEDs的解法,并附带有大量的实例与简单的问题练习。 第3节 对ODE求解器的语法存在有些什么变化? 在MATLAB6.5(R13)中应用ODE求解器求解的首选语法是: [t,y]=odesolver(odefun,tspan,y0,options,parameter1,parameter2,…,parameterN); odesolver 是你采用的求解器,例如ODE45或者ODE15S。odefun是微分方程的span href=&&定义函数,所以odefun定义独立参数(典型的是时间t)的导数y‘ 以及y和其他的参数。在MATLAB6.5(R13)中,推荐使用函数句柄作为odefun。 例如,ode45(@xdot,tspan,y0),而不是用 ode45('xdot',tspan,y0)。 请看采用函数句柄的好处的文档: 采用函数句柄传递你定义MATLAB求解器计算的量、例如大规模span href=&&矩阵或者Jacobian模式的函数。 如果你喜好采用字符串儿传递你的函数,matlab求解器将回溯匹配。 在老的matlab版本里,通过传递标志来规定求解器的状态和恰当的计算。在MATALB6.0以及其后的版本中,这就没有必要了,可以从matlab自带的文档中发现这个差别。 如果里采用的matlab的ODE求解器的老的语法,你可以看看我们FTP站点上的各种求解器的老的实例: a rel=&nofollow& href=&& target=&_blank& 前面的站点包含了BVP,DAE与DDE这三个方向的采用老的语法的实例。你可以在下面的站点中找到应用ODE45与ODE23的实例: a rel=&nofollow& href=&& target=&_blank& 你可以在MATLAB Center的文件交换站点查看这些例子的更新版本。 第4节 如何减小ODE的阶次? 求解一阶ODE的代码是很直接的。然而,二阶或者三阶的ODE不能够直接应用求解。你必须先将高阶的ODE改写成一阶的ODEs系统,使得它可以采用MATLAB ODE求解器。 这是一个如何将二阶微分方程改写成两个一阶微分方程以便利用MATLAB的诸如ODE45等求解器求解的例子。下面的方程组包含了一个一阶与一个二阶微分方程: x'= - y*exp(-t/5)+y' * exp(-t/5)+1; (1) y''= -2*sin(t); (2) 第一步是引入一个新的变量,使得它等于具有二阶导数的自由变量的一阶导数: z=y' (3) 对上式两边求导如下: z' = y'' ; (4) 将(4)式带入(2)式得到如下方程: z'= -2*sin(t) (5) 联立(1),(3)与(5)得到三个一阶微分方程: x'= - y*exp(-t/5)+y' * exp(-t/5)+1; (1) z=y'; (3) z'= -2*sin(t) (5) 既然 z=y' ,用z代替等式(1)中的y' 。而且,因为MATLAB要求所有的导数项在左边,改写等式(3)。得到如下的方程组: x'= - y*exp(-t/5)+z* exp(-t/5)+1; (1a) y'= (6a) z'= -2*sin(t); (5a) 为了利用ODE45或者是MATLAB的其他的ODE求解器求解上面的方程组,需要建立一个包含这些微分方程的函数。这个函数需要两个输入:状态量与时间,返回状态的微分,建立命名为odetest.m的函数如下: function xprime=odetest(t, x) % 既然状态量以单个向量的形式输入,我们令: % x(1)=x; % x(2)=y; % x(3)=z; xprime(1)=-x(2)* exp(-t/5)+x(3)*exp(-t/5)+1; % x'= - y*exp(-t/5)+z* exp(-t/5)+1; xprime(2)=-x(3); % y'=z xprime(3)=-2×sin(t); % z'= -2*sin(t) xprime=xprime(:); % 这是为了确保返回的是个列向量 采用ODE23或者另外的MATLAB ODE求解器求解方程系统,定义起始和停止时间以及初识的状态向量。例如: t0 = 5 ; % 起始时间 tf = 20 ; % 停止时间 x0 = [1 –1 3] ; % 初识条件 [t , s] = ode23 ( @odetest, [t0 ,tf ], x0) ; x = s (: , 1 ); y = s (: , 2 ); z = s (: , 3 ); 求解span href=&&结果作图如下:/p
请登录后再发表评论!查看: 1557|回复: 7|关注: 0
DAE方程求解求助
<h1 style="color:# 麦片财富积分
新手, 积分 10, 距离下一级还需 40 积分
方程如图片所示类型,现有的matlab 求解器 能求解吗?
我用的ode15s&&ode23t,结果总提示:
This DAE appears to be of index greater than 1.
论坛优秀回答者
<h1 style="color:#46 麦片财富积分
关注者: 294
M=[1 0 0 0 0
& & 0 1 0 0 0
& & 0 0 1 0 0
& & 0 0 0 1 0
& & 0 0 0 0 0];
options=odeset('mass',M);
odefun=@(t,y)[y(2)*y(5)+y(4);
& & y(1);
& & y(4)^2-y(2)*y(5);
& & y(3);
& & y(2)+2*y(4)-3];
tspan=[0,1];
x0=[0,1,0,1,1]
[t,y]=ode15s(odefun,tspan,x0,options)复制代码
跟你报一样的错误,不知道怎么回事
用mathematica能算出结果:
<h1 style="color:# 麦片财富积分
跟你报一样的错误,不知道怎么回事
用mathematica能算出结果:
谢谢你,辛苦了~。估计这种类型的方程matlab没有现成的求解方法。
<h1 style="color:# 麦片财富积分
个人理解:用matlab求解器解DAE方程组时,需要先对方程组进行降阶和降次。对此matlab有专门的处理方法。具体过程详见help中的Solve DAE Systems Using MATLAB ODE Solvers(直接在help中输入DAE就可以找到)。因此,不能自己“随意”构造方程组。
论坛优秀回答者
<h1 style="color:#6 麦片财富积分
关注者: 11
个人之前看了一下关于DAE的简单问题,凑个热闹。
原方程是一个典型的index-2 DAE系统,即代数方程不含有非微分变量x_3,而我没记错的话Matlab自带的求解器好像只能计算index&2的DAE方程,不确定有没有别的工具箱可用。
而事实上index-1 DAE方程只需要对代数项进行一次微分就可以简单的降阶为ODE方程,所以也很容易计算。对于index&1的DAE方程解法好像还挺多的,例如用正交配置点法进行差分转化为方程组求解~
<h1 style="color:# 麦片财富积分
function dy=aabb(t,y)
dy=zeros(5,1);
y(1)=3-2*y(2);
dy(1)=y(4);
dy(2)=y(5);
dy(4)=y(1)*y(3)+y(2);
dy(5)=y(2)^2-y(1)*y(3);
[T,Y]=ode15s('aabb',[0 10],[1 1 1 0 0])
<h1 style="color:# 麦片财富积分
plot(Y),获得 x2=1=x3;x5=0;x1& &x3 自己看曲线。
<h1 style="color:# 麦片财富积分
[x1,x2,x3,x4,x5]=dsolve('x1+2*x2-3=0,Dx1=x4,Dx2=x5,Dx4=x1*x3+x2,Dx5=x2^2-x1*x3','x1(0)=1,x2(0)=1,x3(0)=1,x4(0)=0,x5(0)=0','t')
站长推荐 /2
Powered byModelica软件中微分代数方程指标约简算法分析
  Modelica建模软件会产生高指标的微分代数方程(DAE),因为现有数值求解器一般不能直接对高指标DAE进行求解,所以Modelica建模软件必须对高指标DAE进行指标约简。为提高Modelica建模软件性能,针对现有指标约简算法,展开了理论分析和实验比较,着重对负权二部图算法进行了详细分析,并给出了负权二部图算法的时间复杂度。理论分析和实验结果表明,负权二部图算法相对Pantelides算法有较好的性能,因此可以考虑在Modelica建模软件中使用负权二部图算法来提高性能。……
[关键词]:;;;;
[文献类型]:期刊
[文献出处]:《》
中国知网客户端
海量文章,一站下载
万千书刊,个性订阅扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
微分方程中,偏微分方程pde、微分代数方程dae和常微分方程ode之间有什么区别和联系呢?本身不是数学专业的,问的可能会比较业余,但真心希望懂的人能指点一二!PS:从手头查阅的资料,常微分方程一般是一个方程对应一个自变量,一个未知数;偏微分方程是一个方程对应多个自变量(因此采用偏导数)和一个未知量.不知理解是否有误?但从网上搜到关于微分代数方程(dae)的资料比较少,没有直观印象
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
你关于常微分方程和偏微分方程的理解是对的:通俗地讲,常微分方程和偏微分方程的解都是某一个、或某一系列函数,他们的区别是常微分方程的解是一元函数(只有一个自变量和一个因变量),而偏微分方程的解是多元函数(有两个或以上的自变量和一个因变量,故其导函数是偏导数).例如( y - 2xy)y'‘ + x²y'+y²-x³= 0是常微分方程 (其中y为x的函数). x²U‘’xx+U’‘yy+U’'xy+U'y-y³U+xy=0是偏微分方程(U是x,y的函数)微分代数方程就是几个微分方程和纯代数方程(没有导数)组成的一个方程组.例如:x²U‘’xx+U’‘yy+U’'xy+U'y-y³U+xy=0xU²+yU-xy²=0以上两个方程合起来称为微分代数方程,和微分方程一样,代数微分方程很少有解析解.
为您推荐:
其他类似问题
扫描下载二维码Differential Equation Solving with DSolve&Wolfram Language Documentation
OVERVIEWDifferential Equation Solving with DSolveOrdinary Differential Equations (ODEs)
First-Order ODEs
Linear Second-Order ODEs
Higher-Order ODEs
Systems of ODEs
Partial Differential Equations (PDEs)
First-Order PDEs
Differential-Algebraic Equations (DAEs)
Initial and Boundary Value Problems
Working with DSolve—A User’s Guide
Give Feedback
Please complete this field.
Name (optional)
Email address (optional)
Translate this page
Enable JavaScript to interact with content and submit forms on Wolfram websites.}