偏微分方程数值解法pdf_单摆-微分方程浅谈

article/2025/8/27 23:19:44

引子[1]

单摆,这个在中学物理都学过的东西,应该是非常熟悉了。

29db2e7e6a3bae6c1915f87260ac8a25.gif
图片来源-维基百科

小角度简单摆

若最高处(

)的绳子和最低处(速度最大值)的绳子的角度为
,则可使用下列公式算出它的振动周期。

公式证明

7cd9d85de85ee0c9139ca9354b7b0b88.png
摆球受力分析

绳与对称线夹角为

,绳长为
,绳距离对称线的水平距离为
。对于处在某一点的小球进行受力分析,小球受到的力只有重力和拉力。

,这个力指向平衡位置,称为回复力。

由于

很小,所以有近似
,所以有下列成立

,令

下面推导弹簧的周期公式(如果知道直接跳过)

71efe2883efeada8e8145ba0711616da.gif
弹簧简谐振动

设弹簧的弹性系数为

,弹簧距离平衡点的距离为
,对于简谐振动的弹簧,有

,将其与上式联立,有

,根据三角函数的周期公式,有

回到单摆的话题上来

刚刚推导的回复力

,代入公式弹簧的周期公式,得到

这是中学时候的单摆公式的推导,看得出,主要是由于条件

这个条件限制产生的
所导致的,下面来看看一般情况下的单摆,也就是任意条件的

一般情况下的单摆

b1b8f8a7bddb11ca83fd7dfae6d393c5.png

设与对称线的夹角为

,绳子的长度为
,球的角加速度为
,忽略空气阻力由受力分析,根据牛顿第二运动定理,有
。根据角加速度和(线)加速度之间的关系
[2],有下列微分方程成立

(右边取负号是因为回复力的方向)

27e2860c57b0419d0540b940c49f99cd.gif
图片来源-百度百科

如果

,根据Taylor展开式,
,,所以对于充分小的
,有
,使用Taylor展开来理解和使用极限来理解是一样的。

求解特殊情况,微分方程

,这是一个二阶常系数齐次微分方程,

1.猜测解法

移项

,从这个等式可以看出,函数
经过两次微分之后,除了除了系数及其前面的±号改变了,本身并没有发生其他改变,对于微分之后本身还不变的函数,很容易想到余弦函数,令
,其中
为常数。

,求二阶导,代入微分方程,
,即

周期为

,跟前面一致。

2.公式解法

微分方程

,形如
,存在通用解法。

特征方程为

,这是一对共轭复根:对复数
。根为
, 通解为
,即

,由于
,那么肯定有
,可以化为

根据上面的结果,也可轻松知道周期为

求解一般情况,微分方程

能量守恒视角看待问题

这个方程求解比较麻烦,下面换个思路,通过能量守恒的方式来看这个问题。该系统的自由度为

,使用广义坐标
来描述
[3]。设系统动能为
,系统势能为
,小球质量为
,绳长
,不计绳质量。取摆点最低处为零势能点。

从上式计算角速度

从这个式子里面可以看到,

都是常数,是因变量角速度
与自变量角度
的函数关系。下面来讨论一下这个式子,令

得到式子为

34ab6219d4c7691a557454c2213232d5.png
角度和角速度之间的关系,图标对应的是不同的e的值

上图研究了角度与角速度之间的关系,这样的图叫做相平面图。从上面图可以看出

由于能量不足,摆仅做平衡位置附近的周期运动。

是一种临界状态,相当于摆锤摆到最高位置的过程。

能量过大,而使摆角的绝对值随时间之增加而无限增加,对应于摆绕支点无穷次旋转的运动过程。

微分方程数值解法

  • 图1
  • 图2
  • 图3
  • 图4

a87f0f6213e509560c949ae80501659a.png
微分方程计算的相平面图

87565a9b2652d8982d20472f5e445511.png
求解的时域图

在求解上面的微分方程的时候,使用的方法是

公式 。具体求解过程可以参考MATLAB的帮助文档和参考书
[4]

带阻尼的单摆

下面来看看带阻尼的单摆是怎么使用的其实在求解上面的代码里面就已经加入空气阻力一项了,只不过将其值设为了0,下面来看看改变这个值会发生什么。一般来说,空气阻力公式为

这里设

为阻尼因子。

那么上面的微分方程变为

跟上面一样将,使用

求解。

时域图

0193f991876940842fadc54de5f7312f.png
时间T=50s,阻力系数μ=0.1

2c604ff8f35151a228ec8c358d28e3ca.png
时间T=50s,阻力系数μ=0.5

2fac3d16eab613ace1713d4146d190e5.png
时间T=50s,阻力系数μ=0.8

相平面图

7958bdca07cb2b98b16ef30154163807.png
时间T=500s,阻力系数μ=0.1

531c5b4f3ae337abcefba148b27d2a7b.png
时间T=50s,阻力系数μ=0.1

2db2f7b024c243e290641df0becb1934.png
时间T=50s,阻力系数μ=0.5

7e4eb5a0b3fff7da236fade6eda60c19.png
时间T=50s,阻力系数μ=0.8

从上面这些图来看,加入空气阻力之后确实是一种带阻尼的震动图像的样子。并且阻尼越大,能量耗散的也越快。


最后,其实要说的是,强烈推荐这个视频。其实前面所有讨论的东西都在下面的几张图里面了,可以回味回味。

7d8333fdad28d242118d0880fc792a58.png

2901db506406e3410563730d21739980.png

70b6239da7c186a7f00f412aa8baf1a1.png

代码

隐函数画图代码

for i=0:0.2:2
e = 1+i;
f = @(theta,theta_bar) theta_bar^2-cos(theta)-e+1;
fimplicit(f);legend(['e=',num2str(e)]);hold on;
end
xlabel('角度theta');ylabel('角速度omega');title('相平面图');
labels=num2cell(1:0.2:3);
labels = cellfun(@num2str,labels,'UniformOutput',false);
legend(labels);plotset;
print('推导函数相平面图','-dpng');

微分方程数值解代码

subplot_er(2,2,1)
[t,y] = ode45(@solve,[0,50],[pi/4,0]);
plot(y(:,1),y(:,2));
xlabel('theta');ylabel('omega');plotset;axis equal;
legend('theta_0=pi/4,omega_0=0');
subplot_er(2,2,2)
[t,y] = ode45(@solve,[0,50],[pi/2,0]);
plot(y(:,1),y(:,2));
xlabel('theta');ylabel('omega');plotset;axis equal;
legend('theta_0=pi/2,omega_0=0');
subplot_er(2,2,3)
[t,y] = ode45(@solve,[0,50],[pi,1]);
plot(y(:,1),y(:,2));
xlabel('theta');ylabel('omega');plotset;axis equal;
legend('theta_0=pi/2,omega_0=1');
subplot_er(2,2,4)
[t,y] = ode45(@solve,[0,50],[2*pi,2]);
plot(y(:,1),y(:,2));
xlabel('theta');ylabel('omega');plotset;axis equal;
legend('theta_0=2pi,omega_0=2');
suptitle('时间T=50s');
function dydt=solve(t,y)
g = 9.8;l=2*g;mu=0;
dydt = [y(2);-mu*y(2)-g/l*sin(y(1))];
end

求解的时域图

subplot_er(2,2,1)
[t,y] = ode45(@solve,[0,50],[pi/4,0]);
plot(t,y(:,1),'-o',t,y(:,2),'-o');
title('单摆数值解法');xlabel('Time t');ylabel('Solution y');
legend('theta=pi/4','omega=0');
subplot_er(2,2,2)
[t,y] = ode45(@solve,[0,50],[pi/2,0]);
plot(t,y(:,1),'-o',t,y(:,2),'-o');
title('单摆数值解法');xlabel('Time t');ylabel('Solution y');
legend('theta=pi/2','omega=0');
subplot_er(2,2,3)
[t,y] = ode45(@solve,[0,50],[pi/2,1]);
plot(t,y(:,1),'-o',t,y(:,2),'-o');
title('单摆数值解法');xlabel('Time t');ylabel('Solution y');
legend('theta=pi/2','omega=1');
subplot_er(2,2,4)
[t,y] = ode45(@solve,[0,50],[pi/2,2]);
plot(t,y(:,1),'-o',t,y(:,2),'-o');
title('单摆数值解法');xlabel('Time t');ylabel('Solution y');
legend('theta=pi/2','omega=2');
function dydt=solve(t,y)
g = 9.8;l=2*g;mu=0;
dydt = [y(2);-mu*y(2)-g/l*sin(y(1))];
end

参考

  1. ^单摆-维基百科 https://zh.wikipedia.org/wiki/%E6%93%BA
  2. ^理论力学-哈工大 https://book.douban.com/subject/3866935/
  3. ^力学-朗道 https://book.douban.com/subject/2059252/
  4. ^数值方法 https://book.douban.com/subject/4780614/

http://chatgpt.dhexx.cn/article/4OfyKCvS.shtml

相关文章

偏微分方程数值解法pdf_数值模拟偏微分方程的三种方法:FDM、FEM及FVM

偏微分方程数值模拟常用的方法主要有三种:有限差分方法(FDM)、有限元方法(FEM)、有限体积方法(FVM),本文将对这三种方法进行简单的介绍和比较。 一.有限差分方法 有限差分方法(Finite Difference Methods)是数值模拟偏微分方程最早采用的方法,至今仍被广泛运用。该方法包括区…

正圆锥体空间方程_数值模拟偏微分方程的三种方法:FDM、FEM及FVM

偏微分方程数值模拟常用的方法主要有三种:有限差分方法(FDM)、有限元方法(FEM)、有限体积方法(FVM),本文将对这三种方法进行简单的介绍和比较。 一.有限差分方法 有限差分方法(Finite Difference Methods)是数值模拟偏微分方程最早采用的方法,至今仍被广泛运用。该方法包括区…

抖音图标

抖音图标: 1.创建一张画布,再用圆角矩形工具创建一个圆角矩形 2.新建一个图层,用椭圆选框工具创建一个圆,再alt键从选区减去一个圆 3.再填充一个颜色,再剪切1/4圆接着粘贴拖拽至右上方 4.新建一个图层,用…

抖音图标——ps

抖音图标 1.用圆角矩形工具画个圆角(空格键可以移动),填充为黑色,把此图层转换为珊格式化 2.再新建一个图层,用椭圆选框工具画个换个环(用alt会出现,shift会出现加号) 3.Ctrlx剪…

抖音软件分析

前几天看了看关于短视频软件的火的一些话题,就去看了看关于抖音的,对于抖音是那几个方面,自己也去做了一些分析,首先是在两个方面去做的一个理解,一个是软件制作,一个是商业运营。 软件制作 在抖音的软件…

仿抖音视频自动播放html,vue 仿抖音视频播放切换

一、第一部分html页面的准备 {{item.title}} {{item.introduction}} 二、数据说明部分 data() {let u = navigator.userAgent; return {showSlide: 0, allLoaded: false, //数据是否全部加载完 page: 1, isLoading: true, option: {}, current: 0, videoList: [], isVideoShow:…

抖音账号官方认证

介绍 认证功能入口 【我】—【创作者服务中心】— 【官方认证】 抖音黄V是什么? 抖音黄V是抖音平台对个人能力与专业性的认可。换句话讲,黄V即能体现个人身份标签又可以获得官方在内容发布的“豁免权”。如未认证的用户去进行科普,轻则警…

仿抖音首页界面

目录 效果图 顶部相关代码 顶部效果图 内容相关代码 内容效果图 底部导航栏相关代码 底部导航栏效果图 完整代码 html css js ​flexible.js 要想做出抖音短视频的首页界面,我们要引用swiper插件、还需要用到iconfont图标(可自行到官网上下载…

抖音小程序Tiktok开发教程之 基础组件 04 icon 图标组件

什么是icon组件? icon是图标组件 icon组件运行效果 icon组件如何使用呢? 首先,在ttml界面中添加下面代码 <view class="container"><view class="body"><view class="page-section page-default"><view class="…

分享图片或链接到抖音

目录 前言 一、官方文档 二、开始配置 第一步&#xff1a;向抖音短视频申请你的 clientkey 及相关权限 第二步&#xff1a;集成到开发环境 1.根目录下build.gradle引入库 2.app moudel目录下build.gradle引入库 3.配置抖音的软件包可见性 使用一&#xff1a;Android-分…

仅用一个 HTML 标签,实现带动画的抖音 Logo

作者 | 零一 来源 | 前端印象 今天给大家表演 仅用一个HTML标签实现带动画的抖音LOGO&#xff0c;涉及了很多知识点&#xff0c;欢迎交流讨论 先上结果&#xff0c;最终实现效果如下&#xff1a; 成品图 还原度应该还可以吧&#xff1f; 抖音Logo结构 想要用CSS来画抖音的Logo&…

用python+pillow模块实现抖音晃眼睛的特效,图像处理之路(附源码)

前言 利用Python实现抖音晃眼睛的特效&#xff0c;让我们愉快地开始吧~ 开发工具 Python版本&#xff1a; 3.6.4 相关模块&#xff1a; pillow模块&#xff1b; numpy模块&#xff1b; argparse模块&#xff1b; 以及一些Python自带的模块。 环境搭建 安装Python并添加到…

仅用一个HTML标签,实现带动画的抖音LOGO

大家好&#xff0c;我是零一&#xff0c;今天给大家表演 仅用一个HTML标签实现带动画的抖音LOGO&#xff0c;涉及了很多知识点&#xff0c;欢迎交流讨论 先上结果&#xff0c;最终实现效果如下&#xff1a; 还原度应该还可以吧&#xff1f; 抖音Logo结构 想要用CSS来画抖音的…

uni-app项目引入图标

uni-app项目引入图标 普通图标引入 1、阿里巴巴矢量图官网创建图标项目 2、将搜索的图标添加进购物车&#xff0c;在购物车里面将图标添加进项目里面 3、下载该文件到本地&#xff0c;将该文件的css文件复制到项目里面 &#xff08;并设置大小&#xff09; 4、修改icon…

免费下载无水印抖音视频

今天&#xff0c;跟大家分享一个免费下载抖音视频的方法&#xff0c;可以去除抖音上的id水印。话不多说&#xff0c;直接上图。 1.复制手机端抖音链接。 点击这个分享图标 复制链接 发送到电脑&#xff0c;打开网页http://douyin.adsond.com/&#xff08;点此直接进入&…

抖音下载android,抖音完整版

《抖音完整版》这是一款可以发布完整版视频资源的软件&#xff0c;在软件中多种精彩丰富的视频内容&#xff0c;拥有各种最新的潮流以及特色的丰富内容&#xff0c;等你来看&#xff01;这里超多种丰富好玩的视频资源&#xff0c;特色的观看体验&#xff01;(以下来为大家介绍详…

CSS3解析抖音 LOGO制作

“抖音”,人气也是非常高,据说拥有7亿用户。 今天我们就来研究研究抖音的logo,蹭蹭热度。 效果预览: 主要用css3新增属性mix-blend-mode,”组成,然后有3种颜色,白色、红色、和天蓝色。 ok,我们先来完成一个“J”。根据以往的经验,我们把它拆分成3部分。 下面我们来…

抖音logo制作教程

1.新建1200*1200PX的画板 2.创建484*484px、216*216px、630*630px、362*362px四个圆形和134*520px的矩形,并按照一下规则进行排放 3.对这几个圆形和矩形进行合并图层操作 合并后效果如下 4.利用路径选择工具进行路径的选择并进行布尔运算 4.1选中中央的两个圆 4.2对中央的两个圆…

CDR绘制抖音APP图标

先看看效果图 感兴趣可加:741090028 第一步:首先建个方形画布,大小自己掌握。 第二步:画一个3cm3cm的正圆,然后原位复制一个选中修改尺寸1.5cm1.5cm,就会得到下图效果 第三步:再画一个2.5cm2.5cm的正圆,然后原位复制一个选中修改尺寸1cm1cm,就会得到下图效果。 为什…

【有利可图网】PS实战系列:制作抖音UI图标

今天给大家更新一个有趣的制作抖音图标的教程。 1、首先新建一个1024X768分辨率为72像素/英寸的温度&#xff0c;为了看得清楚一点&#xff0c;给背景填充一个浅蓝色#8d8dff&#xff0c;然后现在椭圆选框工具&#xff0c;属性栏上将样式改成固定大小&#xff0c;把宽度和高度都…