Matlab(1)使用ode45求解常微分方程

Matlab(1)使用ode45求解常微分方程在工程和计算中常常需要求解微分方程 但微分方程的解析解通常很难得到 所以一种退而求其次的方法就是求其数值解 这里是使用 Matlab 中的 ode45 求解常微分方程数值解的简单说明 具体可使用 helpode45 命令查看它的帮助文档 ode45 求非刚性微分方程的解 中阶方法 使用语法为 T Y solver odefun tspan y0 下面举例说明 functiondy odefun

在工程和计算中常常需要求解微分方程,但微分方程的解析解通常很难得到,所以一种退而求其次的方法就是求其数值解。这里是使用Matlab中的ode45求解常微分方程数值解的简单说明。具体可使用”help ode45″命令查看它的帮助文档。

ode45求非刚性微分方程的解,中阶方法。使用语法为 [T,Y] = solver(odefun,tspan,y0)。

下面举例说明:

假如我们要求解如下方程组,它描述的是无外力作用下的刚体运动。

Matlab(1)使用ode45求解常微分方程

首先创建一个函数文件,文件名为odefun.m,代码如下:

% odefun.m function dy = odefun(t,y) dy = zeros(3,1); % a column vector dy(1) = y(2) * y(3); dy(2) = -y(1) * y(3); dy(3) = -0.51 * y(1) * y(2); end

然后创建命令文件,文件名为testode45.m,代码如下:

% testode45.m %----------------------------------------------------- % 清空所有变量 clear % 清空屏幕 clc % 时间跨度取0-12,可以空格分隔,也可以用逗号分隔 tspan = [0,12]; % 初始值 y0 = [0,1,1]; % 调用语句 [T,Y] = ode45( @odefun, tspan, y0 ); % 绘图 plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.') legend('x','y','z')

最后在命令行窗口使用命令testode45,就可以得到所求方程的图像

testode45

图像为

Matlab(1)使用ode45求解常微分方程

参考文献:

【1】Matlab中ode45的参考页

作者:贾思特

日期:2018-7-8


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229438.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午4:42
下一篇 2026年3月16日 下午4:43


相关推荐

  • 如何修改host文件[通俗易懂]

    如何修改host文件[通俗易懂]一.host是什么:是一个没有扩展名的系统文件,可以用记事本等工具打开二.为何要修改host:1).就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。**2).加快域名解析** 对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,提高域名解析速度。由于有了

    2022年10月12日
    3
  • HTML5实战与剖析之触摸事件(touchstart、touchmove和touchend)[通俗易懂]

    HTML5实战与剖析之触摸事件(touchstart、touchmove和touchend)[通俗易懂]HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件:touchstart、touchmove和touchend。

    2022年6月19日
    64
  • 测试负责人如何管理(如何成为优秀的团队负责人)

    前言:今天是2021年11月17日,我入职新公司工作的第20天,工作也确实比较忙,准确的来说在公司大家都忙,我基本上都是早上7点半起床,晚上12点到家,睡午觉的时间忙中偷闲更新下博客!作为测试负责人如何规范测试团队?一、我的提问二、你会发现存在的问题1、流程不规范2、缺乏沟通3、没有共享文档4、没有输出三、如何做好流程规范1、测试进度及计划面板2、技术评审3、提测规范4、测试用例评审四、如何做好流程规范1、测试进度及计划面板一、我的提问当你来到一个项目不规范的技术团队,你会怎么处理呢?二、你会发现存

    2022年4月10日
    52
  • Error inflating Edittext错误

    Error inflating Edittext错误今天遇到个很奇葩的问题 原来好好的一个 fragment 只要切换到这个 fragment 就崩溃报错 Errorinflati 很纳闷控件不是自定义的 别的手机也都正常的 以前这个华为手机也是正常的 怎么突然就不行了呢 琢磨了许久还是不行 网上的建议无非是 clean 一下 看看资源文件有没有出错什么的 然后我把所有逻辑代码和别的控件都删除了还是报错 最后尝试着把 Edittext 写完整 a

    2026年3月18日
    2
  • 即梦里动作模仿为什么总是生成失败

    即梦里动作模仿为什么总是生成失败

    2026年3月13日
    2
  • 2022最新前端经典面试试题[通俗易懂]

    1,阐述清楚浮动的几种方式(常见问题)(1)父级div定义height原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题。优点:简单、代码少、容易掌握缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题(2)父级div定义overflow:hidden原理:必须定义width或zoom:1,同时不能定义heigh…

    2022年4月14日
    76

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号