万物皆数——用matlab求解二阶微分方程
一、背景
毕达哥拉斯的“万物皆数”哲学观点表达了一个理念,即宇宙万物都可以通过数学语言来描述,数是万物的本原。
勾股定理就是毕达哥拉斯提出,因此在西方勾股定理也被叫做毕达哥拉斯定理。
工科类的专业,越到后面越感觉到数学的重要性,无论是控制,计算机还是机器人专业,都需要很好的数学功底。
最近在做DMP相关的内容时,需要求解二阶微分方程,无奈早已把学的还给老师,可惜当时高数白考九十多分。但很感谢当时的高数老师于朝霞教授,讲课讲的真好,所以重新翻看高等数学第六版同济大学编著的微分方程章节时,很快捡起来之前学到的内容。
现在有了matlab,不需要自己手算了,下面记录一下使用matlab求解二阶微分方程的过程。
Matlab版本:2023a
二、Matlab求解二阶常系数微分方程
1、问题描述
二阶常系数微分方程:
y ¨ + 10 y ˙ + 25 y = 250 (1) \begin{aligned} \ddot y+10\dot y+25y=250 \\ \end{aligned}\tag{1} y¨+10y˙+25y=250(1)
二阶微分方程如果没有初始条件,其通解会含有两个任意常数,所以不能完全反应某一客观实物的规律。
这里设置初始条件为:
y ( 0 ) = 15 , y ˙ ( 0 ) = 0 (2) \begin{aligned} y(0)=15, &&\dot y(0)=0 \\ \end{aligned}\tag{2} y(0)=15,y˙(0)=0(2)
2、matlab求解微分方程,并绘制解的曲线
clear; close all; clc;
% 定义符号变量
syms x y(x);% 定义二阶微分方程
eqn = diff(y, x, 2) + 10*diff(y, x) + 25*y == 250;% 设置初始条件
initial_condition1 = y(0) == 0; % 初始值 y(0) = 0
initial_condition2 = subs(diff(y), 0) == 0; % 初始导数值 y'(0) = 0% 求解微分方程
sol = dsolve(eqn, [initial_condition1, initial_condition2]);% 显示解
disp('解:');
disp(sol);% 将解转换为函数句柄
ySol = matlabFunction(sol);% 定义 x 范围
x = linspace(0, 5, 100); % 这里的范围可以根据需要调整% 计算对应的 y 值
y = ySol(x);% 绘制曲线图
figure;
a1 = subplot( 1, 1, 1 );
hold( a1, 'on' );
plot(a1, x, y, 'linewidth', 3, 'color', [0.0000, 0.4470, 0.7410] );
xlabel('x');
ylabel('y');
title('二阶微分方程的解曲线');
scatter( 0, ySol(0), 'filled', 'linewidth', 3, 'markerfacecolor', 'y', 'markeredgecolor', 'k' );
grid on;
3、matlab求解加速度函数,并绘制解的曲线
经过步骤2,其实我们得到的是位置和速度的关系,即解为:
y = − 10 e − 5 x − 50 x e − 5 x + 10 (2) \begin{aligned} y=-10e^{-5x}-50xe^{-5x}+10 \\ \end{aligned}\tag{2} y=−10e−5x−50xe−5x+10(2)
有时我们还需要观察加速度和时间的关系。
因此对公式(2)求二阶导,得到加速度:
y ¨ = 250 e − 5 x − 1250 x e − 5 x (2) \begin{aligned} \ddot y=250e^{-5x}-1250xe^{-5x} \\ \end{aligned}\tag{2} y¨=250e−5x−1250xe−5x(2)
matlab里求解加速度与时间的关系,及画出曲线图:
clear; close all; clc;
% 定义符号变量
syms x;% 定义函数
y = 10 - 50*x*exp(-5*x) - 10*exp(-5*x);% 计算二阶导数
second_derivative = diff(y, x, 2);
% 显示解
disp('二阶导:');
disp(second_derivative);
% 将二阶导数转换为函数句柄
second_derivative_func = matlabFunction(second_derivative);% 定义 x 范围
x_values = linspace(0, 5, 100); % 这里的范围可以根据需要调整% 计算对应的二阶导数值
y_second_derivative = second_derivative_func(x_values);% 绘制二阶导数曲线图
figure;
plot(x_values, y_second_derivative);
xlabel('x');
ylabel('y的二阶导数');
title('y=5*exp(-5*x) + 25*x*exp(-5*x) + 10 的二阶导数曲线');
grid on;
相关文章:

万物皆数——用matlab求解二阶微分方程
一、背景 毕达哥拉斯的“万物皆数”哲学观点表达了一个理念,即宇宙万物都可以通过数学语言来描述,数是万物的本原。 勾股定理就是毕达哥拉斯提出,因此在西方勾股定理也被叫做毕达哥拉斯定理。 工科类的专业,越到后面越感觉到数学…...

jmeter接口自动化部署jenkins教程
首先,保证本地安装并部署了jenkins,jmeter,xslproc 我搭建的自动化测试框架是jmeterjenkinsxslproc ---注意:原理是,jmeter自生成的报告jtl文件,通过xslproc工具,再结合jmeter自带的模板修改&…...

前端js实现将数组对象组装成自己需要的属性,或者去掉对象中不必要的属性
前言 提示:这里可以添加本文要记录的大概内容: 需求:前端js实现将数组对象组装成自己需要的属性,或者前端js实现去掉对象中不必要的属性 提示:以下是本篇文章正文内容,下面案例可供参考 一、示例数组对象…...

MeterSphere 任意文件读取漏洞(CVE-2023-25814)
MeterSphere 任意文件读取漏洞(CVE-2023-25814) 免责声明漏洞描述漏洞影响漏洞危害网络测绘Fofa: title"MeterSphere" 漏洞复现1. 构造poc2. 发送数据包3. 查看文件 免责声明 仅用于技术交流,目的是向相关安全人员展示漏洞利用方式,以便更好地…...
设计模式-01-单例设计模式
经典的设计模式有23种,但是常用的设计模式一般情况下不会到一半,我们就针对一些常用的设计模式进行一些详细的讲解和分析,方便大家更加容易理解和使用设计模式。 1-为什么要使用单例 单例设计模式(Singleton Design Pattern&…...

霍尔电流传感器如何进行可靠性测试?主要应用在哪些领域?
霍尔电流传感器广泛应用于航空航天、电源监测、飞行器状态监测、变速驱动设备、焊接设备供电电源、新能源汽车蓄电池管理系统等领域,在电流检测领域中有着重要地位和实用价值,在电驱系统中被称为新能源汽车的动力“心脏”。因此,霍尔电流传感…...
pandas按行按列遍历Dataframe的三种方式
遍历数据有以下三种方法: 简单对上面三种方法进行说明: iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[name]对元素进行访问。 itertuples(): 按行遍历,将DataFrame的每一行迭代为元…...
Api接口如何防止被刷?
现在越来越多的应用程序和服务都提供了API接口,使得开发人员可以方便地与这些应用程序和服务进行交互。但是,由于API接口是公开的,因此很容易被黑客利用,对系统造成损害。为了确保API接口的安全性,我们需要采取一些措施…...

Django——orm模块创建表关系
django orm中如何创建表关系 1. 表关系分析 表与表之间的关系: 一对多 多对多 一对一 没有关系 判断表关系的方法: 换位思考用4张表举例: 图书表 出版社表 作者表 作者详情表图书和出版社是一对多的关系 外键字段建在多的那一方图书和作者是多对多的关系 需要创建第三张表来…...
Django知识点
目录 一、三板斧的使用 二、全局配置文件 三、静态文件的设置 四、request对象的方法 五、pycharm链接数据库 六、Django链接数据库 七、orm介绍 一、三板斧的使用 三个方法: HttpResponse renderredirect def index(request):print(request)return HttpR…...

基于单片机设计的智能风扇(红外线无线控制开关调速定时)
一、项目介绍 在炎热的夏季,风扇成为人们室内生活中必不可少的电器产品。然而,传统的风扇控制方式存在一些不便之处,比如需要手动操作开关、无法远程控制和调速,以及缺乏定时功能等。为了解决这些问题,设计了一款基于…...
k8s报错pause 3.2 解决方案
报错 Failed to create pod sandbox: rpc error: code Unknown desc failed to get sandbox image "k8s.gcr.io/pause:3.2": failed to pull image "k8s.gcr.io/pause:3.2": failed to pull and unpack image "k8s.gcr.io/pause:3.2": failed…...
基于遗传算法的电器分类,基于GA的电器分类
目录 背影 遗传算法的原理及步骤 基本定义 编码方式 适应度函数 运算过程 代码 结果分析 展望 完整代码下载链接:基于遗传算法的电器识别,基于遗传算法的电器分类(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88506649 背影 电器…...

某XX自考小程序的AES加密分析
前言 主要是报了自考在这个小程序上面做题,就研究了一下这个接口本文仅供学习交流使用,请勿随意传播。如有侵犯你的权益及时联系我删除。 一、抓包分析打开小程序,打开devtools 工具,这里就不啰嗦,直接上过程。 点击…...
加密算法笔记
MD5: 目前相对容易破解,且容易发生碰撞; 不可逆(但是网络上有很多破解方法) SHA256: 不会碰撞; 可以加盐,也可以不加盐; 不可逆; HmacSHA256在线加密-HmacMD5加密-散列哈希HASH加密工具 相同点 1、都是密码散列函数,加密不可逆。 2、都可…...
Sa-Token拦截全部接口必须登录-然后自定义注解来匿名登录-作为权限框架支持,并且同时使用了注解和路由的拦截器模式,此部分的配置如下:
场景 在博主目前正在开发的项目中,就采用了Sa-Token作为权限框架支持,并且同时使用了注解和路由的拦截器模式,此部分的配置如下: Override public void addInterceptors(InterceptorRegistry registry) { List<String> n…...

公司企业端口映射
文章目录 前言如何进行内网映射打开路由器管理网址设置端口映射 前言 公司为了提供稳定的网络服务,需要拥有一个稳定的IPV4的网络地址,一般公司有点规模的,会去电信局里面拉一根专门的网线,获取稳定的全球IPV4地址。 一个IPV4地…...
gitlab安装和使用
gitlab安装和使用 1.下载必要的依赖 sudo yum install curl openssh-server openssh-clients postfix cronie #需要执行sudo service postfix start #配置邮箱的sudo chkconfig postfix on #配置邮箱的#这句是用来做防火墙的,避免用户通过ssh方式和http来访问。su…...

【论文阅读】DALL·E: Zero-Shot Text-to-Image Generation
OpenAI第一代文本生成图片模型 paper:https://arxiv.org/abs/2102.12092 DALLE有120亿参数,基于自回归transformer,在2.5亿 图片-文本对上训练的。实现了高质量可控的text to image,同时也有zero-shot的能力。 DALL-E没有使用扩…...
说一下 toRef、toRefs,以及他们的区别
toRef:创建一个新的Ref变量,转换Reactive对象的某个字段为Ref变量 toRefs:创建一个新的对象,它的每个字段都是Reactive对象各个字段的Ref变量 说一下toRef 先定义一个reactive对象 interface Member {id: numbername: string } c…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...