朋友问题: 有微分方程如下:
md2ydt2+dydtexp(t)−y2=5m \frac{d^2y}{dt^2} + \frac{dy}{dt} exp(t) - y^2 = 5mdt2d2y​+dtdy​exp(t)−y2=5
其中,y(t=0)=1y(t=0)=1y(t=0)=1,dy/dt(t=0)=−10dy/dt (t=0) = -10dy/dt(t=0)=−10。
请在区间[0,5][0, 5][0,5]内绘制两个子图,分别为dy/dtdy/dtdy/dt与yyy,每个子图涵盖m=1m=1m=1与m=2m=2m=2两种情况。

所以本题的核心问题在于:用数值计算的方法求解该方程,得到各点,绘制点图。

使用 matlab 自带的 ode45 ,方程组用句柄表示。

ode45 参见教程:如何使用ODE45

首先把题目方程转换,转换为 ode45 能理解的方式。

先声明变量:
y1=yy2=y′\begin{aligned} y_1 & = y \\ y_2 & = y' \\ \end{aligned}y1​y2​​=y=y′​

于是整理方程:

y1′=y2y2′=1m(5−y1′ey1+y12)\begin{aligned} y_1' & = y_2 \\ y_2' & = \frac{1}{m} (5 - y_1' e^{y_1} + y_1^2) \end{aligned}y1′​y2′​​=y2​=m1​(5−y1′​ey1​+y12​)​

于是我们知道,ode45中要有2个变量,且将其右边的式子分别表示出来,即:

dy = @(t, y)[y(2); (5 - y(2)*exp(y(1)) + y(1)^2)/m];

其中:

  • y(2)代表 y1′=y2y_1' = y_2y1′​=y2​;
  • (5 - y(1)*exp(y(2)) + y(2)^2)/m代表 y2′=1m(5−y1′ey1+y12)y_2' = \frac{1}{m} (5 - y_1' e^{y_1} + y_1^2)y2′​=m1​(5−y1′​ey1​+y12​)。

接着,规定初值:y(t=0)=1y(t=0)=1y(t=0)=1,dy/dt(t=0)=−10dy/dt (t=0) = -10dy/dt(t=0)=−10。

y10 = 1;
y20 = -10;

规定自变量 ttt 范围:

tspan = [0, 5];

输入 ode45 则为:

[t, y] = ode45(dy, tspan, [y10, y20]);

整个题目的代码为:

% 表示该方程组
m = 1;
dy = @(t, y)[y(2); (5 - y(2)*exp(y(1)) + y(1)^2)/m];
y10 = 1;
y20 = -10;
tspan = [0, 5];% m = 1
[t_m_1, y_m_1] = ode45(dy, tspan, [y10, y20]);
% m = 2
m = 2;
dy = @(t, y)[y(2); (5 - y(2)*exp(y(1)) + y(1)^2)/m];
[t_m_2, y_m_2] = ode45(dy, tspan, [y10, y20]);% plot
subplot(1, 2, 1);
plot(t_m_1, y_m_1(:, 2));
hold on
plot(t_m_2, y_m_2(:, 2));
title('dy/dt')
legend('m=1','m=2')subplot(1, 2, 2);
plot(t_m_1, y_m_1(:, 1));
hold on
plot(t_m_2, y_m_2(:, 1));
title('y')
legend('m=1','m=2')

顺便学了 ode45 ,不错。

【matlab】ode45求解二阶微分方程,绘制曲线图 | 使用函数句柄的方法相关推荐

  1. matlab解方程x 2-x-2=0,matlab用三种方法求解二阶微分方程x''+0.2x'=0.4x=0.2u(t),u(t)是单位阶跃函数,初始状态为0...

    问题描述: matlab用三种方法求解二阶微分方程x''+0.2x'=0.4x=0.2u(t),u(t)是单位阶跃函数,初始状态为0 1个回答 分类: 数学 2014-11-28 问题解答: 我来补答 ...

  2. matlab ode45 二阶微分,matlab关于ode45解二阶微分方程的困惑

    matlab关于ode45解二阶微分方程的困惑 matlab关于ode45解二阶微分方程的困惑 一个二阶微分方程: y''+y'+y=sin(t) 初始条件为y(0)=5,y'(0)=6. 过程: 先 ...

  3. matlab 数值计算课 二阶微分方程-龙格库塔方法 ODE45

    详见mathworks 龙格库塔方法 写成矩阵(状态方程)的形式更简洁一点(其实这两种方法结果是一样的,如果C是[1,0,0]的话,就很明显了) 例如:求系统在0-5s内的单位阶跃相应,已知传递函数: ...

  4. matlab偏分赋值错误,MATLAB ode45求解高阶微分方程组,出现“无法执行赋值,因为左侧和右侧的元素数目不同”问题...

    本帖最后由 @@@@@BEI 于 2021-1-11 10:38 编辑 下面是程序的主要部分,方程本来有间隙函数.时变刚度.变外力等等,为了运行程序,参数暂时全部取常数,再试运行程序.就是微分方程总是 ...

  5. matlab ode45求解齿轮动力学,ode45求解多自由度动力学方程实例.doc

    ode45求解多自由度动力学方程实例 Ode45函数调用形式如下:[T,Y]=ode45(odefun,tspan,y0)相关参数介绍如下:参数名称参数说明odefun用于存放待求解的方程的m文件名, ...

  6. 用四阶龙格库塔法(RK4)求解二阶微分方程

    import math import matplotlib.pyplot as plt# 龙格-库塔法的定义 def runge_kutta(y, h, f):k1 = h * f(t, x1, x2 ...

  7. matlab ode45求解齿轮动力学,[转载]Matlab中解常微分方程的ode45 【转载】

    ode是专门用于解微分方程的功能函数,他有ode23,ode45,ode23s等等,采用的是Runge-Kutta算法.ode45表示采用四阶,五阶runge-kutta单步算法,截断误差为(Δx)^ ...

  8. 齐次弦振动方程的matlab解法,ode45求解振动微分方程

    function dy=order22(t,y);%用积分形式定义函数: dy=zeros(16,1); mc=854.97;mp=745.26;ms=332.69;m1=2135.1;m2=94.2 ...

  9. matlab ode45求解微分方程

    1.内容简介 略 418-可以交流.咨询.答疑 2.内容说明 略 3.仿真分析 function dy = odefun(t,y) lameda = 0.2; alpha = 0.35; beta = ...

最新文章

  1. 前端优化系列之一:dns预获取 dns-prefetch 提升页面载入速度
  2. Linux驱动技术(三) _DMA编程
  3. 内存管理vma_(十三)Linux内存管理之vma/malloc/mmap
  4. GOOD MEETINGS CREATE SHARED UNDERSTANDING, NOT BRDS!
  5. cocos2d-lua 搓牌效果_4款热门面霜评测,欧莱雅效果一般,艾珂薇性价比高,菲洛嘉最贵...
  6. golang基于UDP完成
  7. vc6.0 matlab混合编程,matlab2010 + vc6.0混合编程实例(调用dll)
  8. 如何做一名优秀的电子工程师[zz]
  9. ssm整合之web.xml配置
  10. 群晖218 当文件服务器,群晖218 家庭云服务器
  11. DataTable数据导出到Excel
  12. 软文营销有什么效果,主要作用是什么?
  13. Android studio gradle编译失败问题汇总
  14. SQL Server全程
  15. 怎么样防止服务器被入侵
  16. python答题搜索_python实现百万答题自动百度搜索答案
  17. Citrix联机插件配置管理器:找不到满足所有锁定要求的值
  18. Python笔记:利用pygame模块实现三原色颜色滚动条效果
  19. 英国哪些大学本科可以用ib English hl 成绩代替雅思成绩?
  20. 0930-值得纪念的一天,永远不要心存侥幸

热门文章

  1. 使用Oracle VM VirtualBox创建的虚拟机与本地电脑(物理机)搭建局域网
  2. 使用严格模式的坏处_再见面试官:单例模式有几种写法?
  3. 多线程解决同步问题浅析
  4. OK6410-A编译u-boot时遇到的问题及解决
  5. 困扰的问题终于解决了-docker时区不正确的问题修改记
  6. Spring Boot前后端分离项目Session问题解决
  7. 如何获取Java用户输入?
  8. Python的__init__和self是做什么的?
  9. 如何在Python中获取文件创建和修改日期/时间?
  10. win11下载时卡住0%不动怎么办 Windows11下载卡在0%的解决方法