🥦Python和C++数学物理计算分形热力学静电学和波动方程

关键词

Python | C++ | 数学 | 物理 | 公式 | 方程 | 常微分方程 | 有限差分 | 函数 | 球面 | 蒙特卡罗 | 粒子衰减 | 积分 | 算法 | 高斯求积 | 随机分布 | 矩阵 | 拟合 | 抛物线 | 求解器 | 束缚态 | 空气阻力 | 摩擦 | 傅里叶 | 滤波 | 小波 | 离散 | 弦 | 振动膜 | 量子包 | 电磁

🏈page指点迷津 | Brief

🎯要点

  1. 🎯数学逻辑和代码计算或可视化:🖊向下递归确定球面贝塞尔函数 | 🖊蒙特卡罗法模拟随机游走和放射性粒子衰减 | 🖊梯形规则积分算法 | 🖊高斯求积算法 | 🖊冯诺依曼拒绝(方法)生成加权随机分布 | 🖊牛顿-拉夫森搜索逐步搜索弦上两个质量矩阵问题解 | 🖊二分算法求解 | 🖊牛顿-拉夫森方法 | 🖊横截面的样条拟合 | 🖊最小二乘法拟合数据和抛物线 | 🖊四阶龙格库塔法常微分方程求解器 | 🖊亚当斯-巴什福斯-莫尔顿方法常微分方程求解器 | 🖊Numerov 算法求解束缚态能量的一维时间无关薛定谔方程 | 🖊龙格库塔算法求解束缚态能量的一维时间无关薛定谔方程 | 🖊求解空气阻力的抛射运动以及分析无摩擦情况 | 🖊离散傅里叶计算复数和实数 | 🖊快速傅里叶滤波和绘图 | 🖊莫莱小波计算连续小波变换 | 🖊金字塔算法计算离散小波变换。

  2. 🎯连续非线性动态计算和可视化:🖊生成逻辑图的分叉图 | 🖊增长函数逻辑图分叉图的李亚普诺夫系数 | 🖊增长函数逻辑图香农熵 | 🖊计算物种竞争 Lotka-Volterra 模型。

  3. 🎯分形和统计增长模型:🖊三维模拟蕨类植物的生长 | 🖊模拟矿物形成枝晶 | 🖊模拟二维元胞自动机 | 🖊相干噪声随机图转换为山形图像。

  4. 🎯热力学和费曼路径积分:🖊一维伊辛链的大都会算法 | 🖊模拟二维伊辛模型,计算态密度并从中计算内能 | 🖊费曼路径积分确定基态概率,使用大都会算法模拟经典轨迹 | 🖊费曼路径积分计算量子粒子在引力场中的路径。

  5. 🎯分子动力学:🖊维尔莱算法模拟二维分子动力。

  6. 🎯有限差分静电学:🖊求解拉普拉斯方程电势。

  7. 🎯时间步进热流:🖊有限差分求解热方程,绘制三维图 | 🖊克兰克-尼科尔森方法求一维时间热方程。

  8. 🎯波动方程:🖊动画模拟弦时间波动 | 🖊数值解振动膜的波动 | 🖊量子包和电磁。

🍇Python振荡器角频率振幅条件计算

振荡器模型数学定义,给出坐标 x 作为时间 t 函数的方程:

x=Acos(ωt+ϕ)x=A \cos (\omega t+\phi)

我们想要详细了解当变量 t 的值更改时会发生什么:

  • 我们选择从初始时刻 t=0 开始增加 t 的值。

  • 我们计算x​坐标的值。

  • 我们在图表中显示了点状物体在不同时刻的位置。

 import numpy as np
 import matplotlib.pyplot as plt
 ​
 omega = 2*np.pi / 10   
 A = 0.15       
 phi = 0        
 ​
 t = np.array([0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.7, 6.3, 7.1, 7.7, 8.2, 8.7])   # time (s)
 x = A * np.cos(omega*t + phi)
 y = np.zeros(len(t)) 
 ​
 fig = plt.figure(1, (14, 3))
 ax = fig.add_subplot(111)
 ​
 plt.plot(x, y, 'o')
 plt.axhline(color = 'gray')
 plt.axvline(color = 'cyan')
 plt.xlim(-0.2, 0.2)
 ax.set_xlabel('x (m)', fontsize = 14)
 ​
 for i, time in enumerate(t):
     #print(i, time)
     x_coord = A * np.cos(omega*time + phi)
     time = str(time)+' s'
     ax.annotate(time, xy = (x_coord, 0.01), xycoords = 'data', rotation = 90, fontsize = 11 )

在此图中,我们可以读取时间值,并在 t 值不断增加时跟踪物体的位置。同时显示在许多不同时刻占据的位置,我们将获得轨迹图。

坐标 x 值的图形给出了笛卡尔平面 t O x 中位置与时间 t 的函数关系,即 x - t 曲线。

 T = 2 * np.pi / omega
 t = np.linspace(0, 3*T, 101)
 x = A * np.cos(omega* t)
 ​
 plt.figure(2)
 plt.plot(t, x, '-', color = 'blue', linewidth = 3)
 plt.xlabel('time $t$ (s)', fontsize = 14)
 plt.ylabel(' $x$ (m)', fontsize = 14)
 plt.axhline(color = 'gray')
 plt.axvline(color = 'gray')
 plt.axvline(x = T)
 plt.axvline(x = 2 * T)
 ​
 print()
 print ('period T = ', T, 's')
 print()
 period T =  10.0 s

我们选择两个不同的角频率值,并在同一图中同时显示两条相应的 x-t 曲线:

 omega = 0.628
 T = 2*np.pi/omega
 t = np.linspace(0, 2 * T, 101)
 x = A * np.cos(omega*t)
 omega1 = 1.2
 ​
 x_star = A * np.cos(omega1*t)
 ​
 plt.figure(3)
 plt.plot(t, x, '-', color = 'blue', linewidth = 3)
 plt.plot(t, x_star, '--', color = 'orange', linewidth = 3)
 plt.xlabel('time $t$ (s)')
 plt.ylabel(' $x$ (m)')
 plt.axhline(color = 'gray')
 plt.axvline(color = 'gray')

变量之间的关系:

角频率ω\omega,周期:T=2πωT=\frac{2 \pi}{\omega},频率:f=1Tω=2πf\begin{gathered}f=\frac{1}{T} \\ \omega=2 \pi f\end{gathered}

我们在同一图中比较了选择两个不同的幅度值而获得的 x-t 曲线,同时保持固定的角频率(和初始相位)。

 omega = 0.628
 T = 2*np.pi/omega
 t = np.linspace(0, 2 * T, 101)
 x = A * np.cos(omega*t)
 A1 = 0.10
 x_star = A1 * np.cos(omega*t)
 ​
 plt.figure(4)
 plt.plot(t, x, '-', color = 'blue', linewidth = 3)
 plt.plot(t, x_star, linestyle = 'dotted', color = 'green', linewidth = 3)
 plt.axhline(color = 'gray')
 plt.xlabel('time  $t$ (s)')
 plt.ylabel(' $x$ (m)')

我们比较对应于初始相位的两个不同值的 x-t 曲线,以指定幅度和角频率的值。

 T = 2 * np.pi / omega
 t = np.linspace(0, 2 * T, 101)
 x = A * np.cos(omega*t)
 ​
 phi = np.pi/2
 ​
 x_star = A * np.cos(omega*t + phi)
 ​
 #z = x + x_star
 ​
 plt.figure(5)
 plt.plot(t, x, '-', color = 'blue', linewidth = 3)
 plt.plot(t,x_star, linestyle = 'dashdot', color = 'lime', linewidth = 3)
 #plt.plot(t, z, '-', color = 'yellow', linewidth = 5)
 plt.axhline(color = 'gray')
 plt.xlabel('time  $t$ (s)')
 plt.ylabel(' $x$ (m)')
 plt.axvline(color = 'gray')
 plt.axvline(x = T, color = 'cyan')

运动方程

根据瞬时速度 v=dx/dtv=d x / d t 的定义,可以得出:

v=ddt[Acos(ωt+ϕ)]=Aωsin(ωt+ϕ)v=\frac{d}{d t}[A \cos (\omega t+\phi)]=-A \omega \sin (\omega t+\phi)

因此,速度值也在最大值 vmax=+Aωv_{\max }=+A \omega 和最小值 vmin=Aωv_{\min }=-A \omega 之间振荡,并且具有表征速度变化的相同周期。相对于时间协调 x。

Last updated