当前位置: 首页 > news >正文

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

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]

相关文章:

  • 【数据库】并发控制
  • shell脚本打包成可以在麒麟桌面操作系统上使用的deb包
  • leetcode:479. 最大回文数乘积(python3解法,数学相关算法题)
  • 第十九章 正则表达式
  • 【Web应用】若依框架:基础篇12 项目结构
  • Linux 的主要时钟类型
  • 运行python文件规范日志
  • 开发体育平台,怎么接入最合适的数据接口
  • Display Driver Uninstaller(DDU卸载显卡驱动工具)官网下载
  • element上传文件多选 实现文件排序
  • GROMACS 软件包介绍与使用指南
  • LangChain-LangGraph框架 应用实例
  • Catch That Cow POJ - 3278
  • java代码性能优化
  • 什么是Docker容器?
  • 初探Linux内核:解锁Linux操作系统的基本核心的奥秘(二)
  • JavaSE:面向对象进阶之接口(Interface)
  • 基于频分复用导频的MMSE信道估计方法设计与仿真
  • kuboard自带ETCD存储满了处理方案
  • 编程技能:格式化打印01,vsprintf 函数族简介
  • 个人可以做几个网站吗/企业营销策划书范文
  • 建设局网站打不开是什么原因/互联网营销方案策划
  • 想做电商运营怎么入手/衡阳seo优化
  • 网站开发语言排行/引流推广网站
  • 网页 网站及与之相关的概念/如何推广品牌知名度
  • 成都网站建设公司汇总/百度快照怎么做