MATLAB程序中ode都有哪些?比如odeo

2020-11-24 10:44:24 字数 5412 阅读 6825

1楼:

这张图来自于matlab 技术论坛,这是一个非常有价值的**,里面高手云集,希望你可以进去看看,里面有非常详细的关于ode的介绍

http://****matlabsky.***/thread-528-1-1.html

你好,你在{matlab 程序中 ode 都有哪些? 比如ode15、ode23 ode45,各有什么优缺点?适用范围有哪些?}

2楼:山水阿锐

您好,以下这张图来自于matlab 技术论坛,这是一个非常有价值的**,里面高手云集,希望你可以进去看看,里面有非常详细的关于ode的介绍:

http://****matlabsky.***/thread-528-1-1.html

3楼:

之前给你的论坛里面已经有写啦。刚性方程是指一个微分方程,其数值分析的解只有在时间间隔很小时才会稳定,只要时间间隔略大,其解就会不稳定

http://****matlabsky.***/thread-528-1-1.html

matlab ode45和ode23有什么区别

4楼:

引用一下matlab论坛里大神的回答:

总得来说:二者算法相似,只不过ode45比ode23精度要高一点,其它没什么差别。

具体ode是matlab专门用于解微分方程的功能函数;solver有变步长(variable-step)和定步长(fixed-step)两种类型,不同类型有着不同的求解器。ode45求解器属于变步长的一种,采用runge-kutta算法;和他采用相同算法的变步长求解器还有ode23。ode45表示采用四阶,五阶runge-kutta单步算法,截断误差为(δx)3。

解决的是nonstiff(非刚性)的常微分方程.是解决数值解问题的首选方法,若长时间没结果,应该就是刚性的,换用ode23来解。

5楼:匿名用户

ode23是 bogacki 和 shampine 的显式 runge-kutta (2,3) 对的实现。在容

差较宽松且刚度适中的情况下,它可能比ode45更加有效。ode23是单步求解器,是求解非刚性微分方程的低阶方法。(在数学中,刚性方程是指一个微分方程,其数值分析的解只有在时间间隔很小时才会稳定,只要时间间隔略大,其解就会不稳定。

目前很难去精确地去定义哪些微分方程是刚性方程,但是大体的想法是:这个方程的解包含有快速变化的部分。)

参考其中ode23和ode45的对比网页链接

matlab ode45 与ode15s 有什么区别 应该怎么选择?

6楼:匿名用户

以下是我个人的一些理解,供参考:

matlab提供了7个常微分方程求解器(solver),分别是ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb,其中前3个适用于求解非刚性(nonstiff)问题,后4个适用于刚性问题。所谓刚性问题,简单点说,就是系统包含多个相互作用但变化速度相差十分悬殊的子过程。

ode45基于显式4-5阶龙格库塔公式,其算法属于单步法;ode15s是一个变阶求解器,用的是多步法。

对于很多问题,这些求解器都是可以使用的,尽管可能存在一些效率和精度方面的差异。

但是,这些求解器并不是可以互相取代的,它们分别适用于不同的精度要求和问题的类型。也就是说,没有任何一个求解器在任何情况下都优于或劣于其它求解器。否则,matlab也没必要提供这么多求解器。

要彻底搞清楚这些求解器的差别和适用范围是有一定难度的,需要对其背后的算法有一定了解才行。matlab在函数参考里对算法做了简要的说明,并给出了多个参考文献,如果有兴趣,可以进一步查阅。

如果对于问题的性质比较清楚,也知道什么算法可能比较有效,可以直接选择适当的求解器。在没有对于问题是否刚性的先验知识的条件下,根据matlab的建议,ode45是大多数情况下应该尝试的首选,如果ode45求解失败或效率很低,次选就是ode15s。

7楼:地表最帅

matlab提供了7个常微分方程求解器(solver),分别是ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb,其中前3个适用于求解非刚性(nonstiff)问题,后4个适用于刚性问题。所谓刚性问题,简单点说,就是系统包含多个相互作用但变化速度相差十分悬殊的子过程。

这些求解器并不是可以互相取代的,它们分别适用于不同的精度要求和问题的类型。也就是说,没有任何一个求解器在任何情况下都优于或劣于其它求解器。否则,matlab也没必要提供这么多求解器。

要彻底搞清楚这些求解器的差别和适用范围是有一定难度的,需要对其背后的算法有一定了解才行。matlab在函数参考里对算法做了简要的说明,并给出了多个参考文献,如果有兴趣,可以进一步查阅。

如果对于问题的性质比较清楚,也知道什么算法可能比较有效,可以直接选择适当的求解器。在没有对于问题是否刚性的先验知识的条件下,根据matlab的建议,ode45是大多数情况下应该尝试的首选,如果ode45求解失败或效率很低,次选就是ode15s。

matlab中ode23是什么意思?

8楼:唯我最逍遥

算微分方程的

有ode23、ode45等等好多种

都是 龙格-库塔 方法但是ode45个精确一些用法例如

[t,y] = ode23(@f,[0 2*pi],2)第一参数是迭代函数

第二个参数是t的取值范围

第三个参数是y的初值

9楼:匿名用户

ode23 解非刚性微分方程,低精度,使用runge-kutta法的二三阶算法。

ode45 解非刚性微分方程,中等精度,使用runge-kutta法的四五阶算法。

ode113 解非刚性微分方程,变精度变阶次adams-bashforth-moulton pece算法。

ode23t 解中等刚性微分方程,使用自由内插法的梯形法则。

ode15s 解刚性微分方程,使用可变阶次的数值微分(ndfs)算法。

ode23s 解刚性微分方程,低阶方法,使用修正的rosenbrock公式。

ode23tb 解刚性微分方程,低阶方法,使用tr-bdf2方法,即runger-kutta公式的第一级采用梯形法则,第二级采用gear法。

10楼:八卦星人小林

解非刚性微分方程,低精度,使用runge-kutta法的二三阶算法。

matlab是美国mathworks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括matlab和simulink两大部分。

matlab是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和**等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如c、fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

matlab和mathematica、maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用matlab来解算问题要比用c,fortran等语言完成相同的事情简捷得多,并且matlab也吸收了像maple等软件的优点,使matlab成为一个强大的数学软件。在新的版本中也加入了对c,fortran,c++,java的支持。

11楼:饮水蒹葭

一种定步长的微分方程解法

12楼:百度用户

微分方程解法器的一种,使用runge-kutta算法

matlab中ode45,4和5分别代表什么?

13楼:匿名用户

matlab中求微分方

程数值解的函数有五个:ode45,ode23,ode113,ode15s,ode23s。

ode是matlab专门用于解微分方程的功能函数,他有ode23,ode45,ode23s等等,采用的是runge-kutta算法。ode45表示采用四阶,五阶runge-kutta单步算法,截断误差为(δx)3。解决的是nonstiff(非刚性)的常微分方程.

是解决数值解问题的首选方法,若长时间没结果,应该就是刚性的,换用ode23来解.

matlab/simulink中,什么叫oder45和ode23bt算法?

14楼:匿名用户

ode45是基于

四点法和五点法的解微分方程数值解的方法,ode23等也一样,都是基于已知点“**”下一个点的函数值的方法,不同的算法“**”的方法不一样。比较著名的“**”方法有欧拉法,改进的欧拉法,龙格库塔法,多点法等。在matlab一般使用中这些方法的差别不大,可以不予理会,会用一个即可,推荐ode4。

15楼:matlab课设**

ode45,典型的解微分方程的算法。matlab自带的。专门解微分方程的。ode32bt也类似,只是各自针对的微分方程类型略有不同。还有ode15s ,ode23s等等

matlab ode45用法

16楼:大野瘦子

用法:[t,y] = ode45(odefun,tspan,y0)1、odefun 是函数

句柄,可以是函数文件名,匿名函数句柄或内联函数名。

2、tspan是区间 [t0 tf] 或者一系列散点[t0,t1,...,tf]。

3、y0是初始值向量。

4、t返回列向量的时间点。

5、y返回对应t的求解列向量。

算例程序:

function testode45

tspan=[3.9 4.0]; %求解区间y0=[8 2]; %初值

[t,x]=ode45(@odefun,tspan,y0);

plot(t,x(:,1),'-o',t,x(:,2),'-*')legend('y1','y2')

title('y'' ''=-t*y + e^t*y'' +3sin2t')

xlabel('t')

ylabel('y')

function y=odefun(t,x)y=zeros(2,1); % 列向量

y(1)=x(2);

y(2)=-t*x(1)+exp(t)*x(2)+3*sin(2*t); %常微分方程公式

endend