在Mathematica中使用WhenEvent求解微分方程

article/2025/7/28 0:34:48

WhenEvent[event,action]指定当事件event触发时,方程在 NDSolve 及相关函数中执行的操作action。

模拟一个每次弹起后保持95%速度的弹跳球

NDSolve[{y''[t] == -9.81, y[0] == 5, y'[0] == 0, WhenEvent[y[t] == 0, y'[t] -> -0.95 y'[t]]}, y, {t, 0, 10}]; Plot[y[t] /. %, {t, 0, 10}]

模拟沿阶梯弹跳下落的球

c = .75;
sol = NDSolve[{y''[t] == -9.8, y[0] == 13.5, y'[0] == 5, a[0] == 13, WhenEvent[y[t] - a[t] == 0, y'[t] -> -c y'[t]], WhenEvent[Mod[t, 1], a[t] -> a[t] - 1]}, {y, a}, {t, 0, 8}, DiscreteVariables -> {a}];
Plot[Evaluate[{y[t], a[t]} /. sol], {t, 0, 8}, Filling -> {2 -> 0}]

绘制球体的动能、势能及总能量曲线图

kin[v_] := .5 v^2;
pot[y_] := 9.8 y;
energy[y_, v_] := kin[v] + pot[y];
Plot[Evaluate[{kin[y'[t]], pot[y[t]], energy[y[t], y'[t]]} /. sol], {t, 0, 8}]

在方形盒子中,建立球体碰撞侧壁时改变方向的运动模型

sol = NDSolve[{x'[t] == a[t], y'[t] == b[t], x[0] == 0, y[0] == 0, a[0] == 1, b[0] == Rationalize[Sqrt[2], .01], WhenEvent[x[t]^2 == 1, a[t] -> -a[t]], WhenEvent[y[t]^2 == 1, b[t] -> -b[t]]}, {x, y}, {t, 0, 100}, DiscreteVariables -> {a, b}];ParametricPlot[{x[t], y[t]} /. sol, {t, 0, 100}, Frame -> True, FrameTicks -> None, PlotRange -> 1, Axes -> False]

当初速度向量为无理数时,系统不再存在周期性解

sol = NDSolve[{x'[t] == a[t], y'[t] == b[t], x[0] == 0, y[0] == 0, a[0] == 1, b[0] == Sqrt[2], WhenEvent[x[t]^2 == 1, a[t] -> -a[t]],WhenEvent[y[t]^2 == 1, b[t] -> -b[t]]}, {x, y}, {t, 0, 100}, DiscreteVariables -> {a, b}];
ParametricPlot[{x[t], y[t]} /. sol, {t, 0, 100}, Frame -> True, FrameTicks -> None, PlotRange -> 1, Axes -> False]


http://www.hkcw.cn/article/sOaFccXgep.shtml

相关文章

Nature:多模态大模型LLMs如何驱动多组学与生命科学研究新范式?

高通量组学技术的快速进步引发了生物数据的爆炸式增长,远超当前对分子层面规律的解析能力。在自然语言处理领域,大语言模型(LLMs)通过整合海量数据构建统一模型,已显现突破数据困境的潜力。 Nature的这篇文章中&#x…

ubuntu20.04安装教程(图文详解)

Ubuntu 24.04 LTS,代号 Noble Numbat,于 2024 年 4 月 25 日发布,现在可以从 Ubuntu 官方网站及其镜像下载。此版本将在 2029 年 4 月之前接收为期五年的官方安全和维护更新。 关于 Ubuntu 24.04 LTS 的一些关键点: 发布日期&am…

Linux中Shell脚本的常用命令

一、设置主机名称 1、通过修改系统文件来修改主机名称 [rootsakura1 桌面]# vim /etc/hostname sakura /etc/hostname:Linux 系统中存储主机名的配置文件。修改完文件后,在当前的shell中是不生效的,需要关闭当前shell后重新开启才能看到效…

Redisson学习专栏(二):核心功能深入学习(分布式锁,分布式集合,原子操作与计数器,事件与监听)

本文是“Redisson学习专栏”第二篇,聚焦其核心分布式功能实现原理与最佳实践 文章目录 前言:分布式系统核心能力实践一、分布式锁:高并发下的守卫者1.1 可重入锁 (Reentrant Lock)1.2 公平锁 (Fair Lock)1.3 联锁 (MultiLock)1.4 红锁 (RedLo…

学习路之PHP--easyswoole_panel安装使用

学习路之PHP--easyswoole_panel安装使用 一、新建文件夹二、安装三、改配置地址四、访问 IP:Port 自动进入index.html页面 一、新建文件夹 /www/wwwroot/easyswoole_panel 及配置ftp 解压easyswoole_panel源码 https://github.com/easyswoole-panel/easyswoole_panel 二、安…

基于分布式状态机的集装箱智能道口软件架构方法

集装箱码头对进出场道口的通过能力始终是要求最高的,衡量道口的直接指标为道口通行效率,道口通行效率直接体现了集装箱码头的作业效率以及对外服务水平,进而直接影响到码头的综合能力。所以,码头普遍使用智能道口实现24小时无人值…

2014药柜设计问题

1 题目描述 D题 储药柜的设计 储药柜的结构类似于书橱,通常由若干个横向隔板和竖向隔板将储药柜分割成若干个储药槽(如图1所示)。为保证药品分拣的准确率,防止发药错误,一个储药槽内只能摆放同一种药品。药品在储药槽中的排列方式如图2所示。…

c# 获取电脑 分辨率 及 DPI 设置

using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices;/// <summary> /// 这个可以 /// </summary> class Program {static void Main(){//设置DPI感知try{SetProcessDpiAwareness(…

2025年渗透测试面试题总结-匿名[校招]红队攻防工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 匿名[校招]红队攻防工程师 1. 00截断的原理 2. Java回显通用思路及JDK差异 3. Redis利用姿势及环境差异 …

高级数据结构与算法期末考试速成记录

高级数据结构与算法期末考试速成记录 0.分治中的一些知识点 Master公式&#xff08;又称主定理&#xff0c;Master Theorem&#xff09;是一种用于快速求解分治递归算法时间复杂度 的数学工具&#xff0c;适用于递归式形如以下形式的算法&#xff1a; T ( n ) a T ( n b ) …

Telerik生态整合:Kendo UI for Angular组件在WinForms应用中的深度嵌入(一)

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库&#xff0c;加快开发速度。Telerik DevCraft提供完整的工具箱&#xff0c;用于构建现代和面向未来的业务应用程序&#xff0c;目前提供UI for ASP.NET MVC、Kendo…

深入浅出程序设计竞赛(洛谷基础篇) 第十四章 搜索

文章目录 前言例14-1 四阶数独前置知识&#xff1a; 例14-2八皇后例14-3 kkksc03考前临时抱佛脚例14-4 马的遍历前置知识 例14-5 奇怪的电梯例14-6 Meteor Shower S习题14-1.1 选数例14-1 四阶数独前置知识&#xff1a; 例14-2八皇后例14-3 kkksc03考前临时抱佛脚例14-4 马的遍…

图书管理系统的设计与实现

湖南软件职业技术大学 本科毕业设计(论文) 设计(论文)题目 图书管理系统的设计与实现 学生姓名 学生学号 所在学院 专业班级 毕业设计(论文)真实性承诺及声明 学生对毕业设计(论文)真实性承诺 本人郑重声明:所提交的毕业设计(论文)作品是本人在指导教师的指导下,独…

【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤

在Java开发的世界里&#xff0c;选择一个强大的集成开发环境&#xff08;IDE&#xff09;是迈向高效编程的第一步。而IntelliJ IDEA无疑是Java开发者中最受欢迎的选择之一。它以其强大的功能、智能的代码辅助和简洁的用户界面&#xff0c;帮助无数开发者快速构建和部署Java项目…

医疗IT系统绝缘监测及故障定位,绝缘监测技术在医院关键区域的应用

医院作为重要的公共设施&#xff0c;其供配电系统的可靠性和安全性直接关系到患者的生命安全。为确保医院电力系统的稳定&#xff0c;GB/T 16895.24《建筑物电气装置》对医疗场所按用电的安全等级进行了细致的分类&#xff0c;并针对不同的类别推荐相应的电力系统配置。其中&am…

进程间通信及管道(理论)

目录 进程间通信介绍 进程间通信目的 进程间通信发展 进程间通信分类 管道 什么是管道 匿名管道 实例代码 用fork来共享管道原理 管道读写规则 管道特点 命名管道 创建一个命名管道 匿名管道与命名管道的区别 命名管道的打开规则 进程间通信介绍 进程间通信目的 数据传输&#…

如何安全地清洁 Windows10/11PC上的SSD驱动器

“我在 Windows 10 电脑上安装了新的 SSD&#xff0c;我要删除旧的 SSD 驱动器。但我不知道如何清洁电脑上的 SSD 驱动器。我想清除其中的所有内容。” 那么&#xff0c;您想知道如何在 Windows 10/11 PC 上清洁 SSD 驱动器吗&#xff1f;也许您只是想释放宝贵的空间并提高性能…

换ip是换网络的意思吗?怎么换ip地址

在数字化时代&#xff0c;IP地址作为我们在网络世界的"身份证"&#xff0c;其重要性不言而喻。许多人常将"换IP"与"换网络"混为一谈&#xff0c;实际上两者虽有联系却存在本质区别。本文将澄清这一概念误区&#xff0c;并详细介绍多种更换IP地址…

智能化能源管理系统在“双碳”背景下的新价值

安科瑞刘鸿鹏 摘要 2022年已并网的储能项目中,用户侧并网占比为8.36%,其中工商业储能规模为占比为98.6%。随着各省市的峰 谷价差拉大,部分省市可实现两充两放,工商业储能会更 加具有经济性,加上限电政策的影响,工商业储能将在 2023-2025年逐渐发展成主要的增长点&#xff…

带sdf 的post sim 小结

1.SDF文件主要内容 Delays&#xff08;module&#xff0c;device&#xff0c;interconnect&#xff0c;port&#xff09; Timing checks&#xff08;setup&#xff0c;hold&#xff0c;setuphold&#xff0c;recovery&#xff0c;removal&#xff0c;recrem&#xff09; Timing…