Python数值和符号算法计算及3D视图物理数学波形方程

这篇具有很好参考价值的文章主要介绍了Python数值和符号算法计算及3D视图物理数学波形方程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

要点

  1. Python数值和符号计算及3D可视化以下物理方程:
    1. 物理数学方程分析:二分算法和牛顿-拉夫森算法解方程根。最小二乘法拟合方程和数据。短期傅里叶变换和小波分析非平稳信号。使用主成分分析复杂和大型数据集,提取时空相关性,分形维数测定。
    2. 非线性震动常微分方程:四阶龙格-库塔法求解和绘制受迫振荡器常微分方程。符合计算谐振子解。计算方形台球内的轨迹并生成动画结果。二阶Verlet积分算法求解射弹的轨迹。求解天王星和海王星的轨道及其相互作用。
    3. 波形方程和流体力学偏微分方程:蛙跳算法求解波动方程。解具有摩擦力的悬链线波浪方程。计算二维波的解析解。数值求解振动膜的波动方程。使用 Lax-Wendroff 法解平流方程。解一维孤波 KdV 方程和绘制动画结果。解二维孤波正弦-戈登方程。解三种流体状态下纳维-斯托克斯方程。
    4. 电磁拉普拉斯方程和泊松方程转换为有限差分方程:解三角形导体内的拉普拉斯方程并绘制图形。创建极坐标图并绘图。计算电荷电势并绘制电场图形。3D图形确定导电平面电荷电场。可视化电荷的电子场线及其图像。时域有限差分解不同方向波麦克斯韦方程组并绘制结果图。解电报传输波形方程并绘制动画结果。洛伦兹场计算和绘图。视觉效果观察电荷运动。计算薄膜反射和透射光的强度分布和光谱。
    5. 量子力学薛定谔积分方程:四阶龙格-库塔法解一维谐振子波函数的薛定谔方程。符号计算求解一维谐振子波函数的薛定谔方程。计算求解任意势的薛定谔方程。使用努梅罗夫算法数值求解薛定谔方程的束缚态。解动量空间中 Delta 壳势的束缚态。模拟射线自发衰减并触发盖革计数器声音。解勒让德多项式常微分方程并使用四阶龙格-库塔法绘制结果图形。使用四阶龙格-库塔法求解氢的薛定谔方程并计算径向密度。有限差分算法求解瞬态薛定谔方程。动画可视化和计算谐振子内波包运动。计算和动画绘制谐振子带电粒子的波包。计算散射并评估球面贝塞尔和诺依曼函数。求解方形台球桌上波包运动的瞬态薛定谔方程。计算规则库仑散射波函数。计算谐振子的相干格劳伯态并绘制动画结果。符号计算氢的超精细分裂。数值计算纠缠量子态的哈密顿量、特征值和特征向量。线性代数构数值计算夸克的对称群算子的矩阵。使用大都会算法模拟经典轨迹的变化,使用费曼路径积分确定基态概率。

Python符号和数值计算球谐函数示例

球谐函数是数学和物理学中用来描述各种现象的强大工具。 它们可用于模拟物理现象,例如声波、传热,甚至量子系统,并且每当您在球坐标中处理偏微分方程时,它们就会出现。 在此,我们将探讨什么是球谐函数、它们最重要的属性、它们的工作原理以及它们为何如此有用。 最后,我们将了解如何在 Python 中以数字和符号方式使用它们。 我们将为这些函数创建我们自己的可视化,以便您可以自己使用它们。

球谐函数是根据球体上的角坐标(纬度和经度)定义的,并且具有以下属性:它们是拉普拉斯算子的角部分的本征函数。在球坐标中,拉普拉斯算子应用于函数 𝑓 时为
∇ 2 f = 1 r ∂ 2 ∂ r 2 ( r f ) + 1 r 2 sin ⁡ θ ∂ ∂ θ ( sin ⁡ θ ∂ f ∂ θ ) + 1 r 2 sin ⁡ 2 θ ∂ 2 f ∂ φ 2 ⏟ L 2 f \nabla^2 f=\frac{1}{r} \frac{\partial^2}{\partial r^2}(r f)+\underbrace{\frac{1}{r^2 \sin \theta} \frac{\partial}{\partial \theta}\left(\sin \theta \frac{\partial f}{\partial \theta}\right)+\frac{1}{r^2 \sin ^2 \theta} \frac{\partial^2 f}{\partial \varphi^2}}_{L^2 f} 2f=r1r22(rf)+L2f r2sinθ1θ(sinθθf)+r2sin2θ1φ22f
其中 θ \theta θ是极角, φ \varphi φ是方位角。所以拉普拉斯自然地分裂成径向部分和角度部分 ( L 2 ) \left(L^2\right) (L2)。球谐函数是拉普拉斯算子的角部分的本征函数。 这意味着当拉普拉斯算子的角度部分应用于球谐函数时,结果是原始函数的标量倍数:
L 2 Y l m ( θ , φ ) = − l ( l + 1 ) Y l m ( θ , φ ) L^2 Y_{l m}(\theta, \varphi)=-l(l+1) Y_{l m}(\theta, \varphi) L2Ylm(θ,φ)=l(l+1)Ylm(θ,φ)
其中 L 2 L^2 L2是拉普拉斯算子的角度部分, Y l m ( θ , φ ) Y_{l m}(\theta, \varphi) Ylm(θ,φ)是1次、 m m m阶的球谐函数,$-l(l+1) $ 是函数的特征值。

球谐函数的正交性表明,如果两个球谐函数的次数和阶次不相等,则两个球谐函数的乘积在球表面上的积分等于零。 这与正弦和余弦也具有相同的性质。形式上,球谐函数的正交性可以表示为:
∫ θ = 0 π ∫ φ = 0 2 π Y l m Y l ′ m ′ ∗ d Ω = δ l l ′ δ m m ′ \int_{\theta=0}^\pi \int_{\varphi=0}^{2 \pi} Y_{l m} Y_{l^{\prime} m^{\prime}}^* d \Omega=\delta_{l l^{\prime}} \delta_{m m^{\prime}} θ=0πφ=02πYlmYlmdΩ=δllδmm
其中 δ m n \delta_{m n} δmn 是克罗内克增量,如果 m = n m=n m=n 则为 1,否则为 0, d Ω = sin ⁡ θ d θ d φ d \Omega=\sin \theta d \theta d \varphi dΩ=sinθdθdφ 是积分的积分度量球体的表面。请注意,许多球谐函数都是复数,这就是公式中存在共轭星形的原因。

符号计算

from sympy import *

θ, φ = symbols(r"\theta, \phi")
l, m = symbols("l, m", integer=True)

球谐函数可以通过函数 Ynm 访问。在参数列表中, l l l 排在第一位, m m m 排在第二位。角度的顺序是 ( θ , φ ) (\theta, \varphi) (θ,φ)

Y = Ynm(l, m, θ, φ)

球谐函数可以用三角函数来表示。我们可以使用 SymPy 轻松列出它们,在本例中,最多 𝑙=3:

for l_ in range(3):
    for m_ in range(0, l_+1):
        Y = Ynm(l_, m_, θ, φ)
        display(
            Eq(
                Y, Y.rewrite(cos)
            )
        )

Y 0 0 ( θ , ϕ ) = 1 2 π Y 1 0 ( θ , ϕ ) = 3 cos ⁡ ( θ ) 2 π Y 1 1 ( θ , ϕ ) = − 6 e i ϕ sin ⁡ ( θ ) 4 π Y 2 0 ( θ , ϕ ) = 5 ⋅ ( 3 cos ⁡ 2 ( θ ) − 1 ) 4 π Y 2 1 ( θ , ϕ ) = − 30 e i ϕ sin ⁡ ( 2 θ ) 8 π Y 2 2 ( θ , ϕ ) = 30 e 2 i ϕ sin ⁡ 2 ( θ ) 8 π \begin{aligned} & Y_0^0(\theta, \phi)=\frac{1}{2 \sqrt{\pi}} \\ & Y_1^0(\theta, \phi)=\frac{\sqrt{3} \cos (\theta)}{2 \sqrt{\pi}} \\ & Y_1^1(\theta, \phi)=-\frac{\sqrt{6} e^{i \phi} \sin (\theta)}{4 \sqrt{\pi}} \\ & Y_2^0(\theta, \phi)=\frac{\sqrt{5} \cdot\left(3 \cos ^2(\theta)-1\right)}{4 \sqrt{\pi}} \\ & Y_2^1(\theta, \phi)=-\frac{\sqrt{30} e^{i \phi} \sin (2 \theta)}{8 \sqrt{\pi}} \\ & Y_2^2(\theta, \phi)=\frac{\sqrt{30} e^{2 i \phi} \sin ^2(\theta)}{8 \sqrt{\pi}} \end{aligned} Y00(θ,ϕ)=2π 1Y10(θ,ϕ)=2π 3 cos(θ)Y11(θ,ϕ)=4π 6 eiϕsin(θ)Y20(θ,ϕ)=4π 5 (3cos2(θ)1)Y21(θ,ϕ)=8π 30 eiϕsin(2θ)Y22(θ,ϕ)=8π 30 e2iϕsin2(θ)

请注意,我们没有列出负 𝑚 的球谐函数,因为它们与正 𝑚 的对应函数密切相关。

数值计算

from scipy.special import sph_harm

l_ = 1
m_ = 1
theta = np.pi/2
phi = 0
sph_harm(m_, l_, phi, theta)

但通常,在数值计算中,您想要给出角度值数组,这可以在 NumPy 中轻松完成:

import numpy as np

theta = np.linspace(0, np.pi, 100)
phi = np.linspace(0, 2*np.pi, 100)
Theta, Phi = np.meshgrid(theta, phi, indexing="ij")
sph_harm(m_, l_, Phi, Theta)

下面是一个小函数,可以使用 Python 包绘制任何所需的球谐函数图:

import plotly.graph_objects as go

def create_figure(l, m):

    thetas = np.linspace(0, np.pi, 100)
    phis = np.linspace(0, 2*np.pi, 100)
    
    Thetas, Phis = np.meshgrid(thetas, phis)
    fcolors = ylm.real
    fmax, fmin = fcolors.max(), fcolors.min()
    fcolors = (fcolors - fmin)/(fmax - fmin)

    R = abs(ylm)
    X = R * np.sin(Theta) * np.cos(Phi)
    Y = R * np.sin(Theta) * np.sin(Phi)
    Z = R * np.cos(Theta)

    fig = go.Figure(
                data=[
                    go.Surface(
                        x=X, y=Y, z=Z, 
                        surfacecolor=fcolors,
                        colorscale='balance', showscale=False, 
                        opacity=1.0, hoverinfo='none',
                    )
                ]
    )

    fig.update_layout(title='$Y_{%d%d}$' % (l, m), autosize=False,
                      width=700, height=700,
                      margin=dict(l=65, r=50, b=65, t=90)
    )
    
    return fig

现在我们可以通过调用该函数在 Jupyter Notebook 中创建图形:文章来源地址https://www.toymoban.com/news/detail-851389.html

create_figure(1, 0)
参阅一:计算思维
参阅二:亚图跨际

到了这里,关于Python数值和符号算法计算及3D视图物理数学波形方程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】使用Python计算简单数值积分

    题外话,Python语言命名的来源:(见下图)Monty Python巨蟒剧团 (1) (2) (3) 《14天自造量子计算机(Python版)》,【日】远藤理平 著,陈欢 译,中国水利水电出版社,2023年9月。

    2024年04月22日
    浏览(37)
  • python进阶之符号计算概述SymPy

    一、概述 SymPy 是一个由 Python 编写的符号计算库,它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展。它完全由 Python 写成,不依赖于外部库。SymPy 支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何

    2024年02月12日
    浏览(23)
  • PyBullet:一种用 Python 构建的开源 3D 物理模拟工具(教程含源码)

    PyBullet 是一种物理引擎,用于模拟刚体动力学并支持创建逼真的 3D 环境。它基于 Bullet Physics Library,并提供易于使用的界面来模拟各种物理现象。在这篇博文中,我们将探讨 PyBullet 中的用例和可用方法。 PyBullet 在各个行业都有广泛的用例。以下是 PyBullet 的一些最常见用例:

    2024年02月04日
    浏览(31)
  • C#,数值计算,矩阵的乔莱斯基分解(Cholesky decomposition)算法与源代码

    安德烈·路易斯·乔尔斯基出生于法国波尔多以北的查伦特斯海域的蒙古扬。他在波尔多参加了Lycée e,并于1892年11月14日获得学士学位的第一部分,于1893年7月24日获得第二部分。1895年10月15日,乔尔斯基进入莱科尔理工学院,在当年223名入学学生中排名第88位。他在莱科尔理工

    2024年02月22日
    浏览(31)
  • 算法数值推演01:逐步对冲算法(Progressive Hedging Algorithm)求解两阶段随机规划的数值案例推演及Python源码

    目录 1 基本问题及lingo代码直接求解 1.1 问题描述 1.2 拓展模型的lingo求解源码 1.3 备份拓展模型

    2024年02月11日
    浏览(27)
  • Python基础教程:基本数字类型与数值计算,Pythonui基础

    print(isinstance(a,int)) print(isinstance(b,str)) 执行结果: class ‘int’ class ‘float’ class ‘bool’ class ‘complex’ True False 两者的区别: type()不会认为子类是一种父类类型。 isinstance()会认为子类是一种父类类型。 class A: pass class B(A): pass print(isinstance(A(),A)) print(type(A()) == A) print(isinstan

    2024年04月17日
    浏览(31)
  • 【数值计算方法】Gauss消元法及其Python/C实现

       Gauss消元法 ,也称为高斯消元法或高斯-约当消元法,是一种用于 求解线性方程组的数值方法 。它是由德国数学家卡尔·弗里德里希·高斯在18世纪末发展起来的。   Gauss消元法的基本思想是通过一系列的行变换将线性方程组转化为一个上三角形的方程组,然后通过回代

    2024年02月06日
    浏览(31)
  • 三维重建 PyQt Python MRP 四视图(横断面,冠状面,矢状面,3D)

    本文实现了 Python MPR 的 四视图,横断面,冠状面,矢状面,3D MPR(multi-planner reformation)也称多平面重建,多重面重建是将扫描范围内所有的轴位图像叠加起来再对某些标线标定的重组线所指定的组织进行冠状、矢状位、任意角度斜位图像重组。 主要功能: 1:实现了 所有切面与

    2024年02月12日
    浏览(28)
  • Hbas简介:数据模型和概念、物理视图

    本文参考自林子雨老师的大数据技术原理与应用(第三版)教材内容,仅供学习和交流 Google Bigtable是一种高度可扩展的分布式数据库,旨在处理海量数据并提供高吞吐量和低延迟的访问。它是谷歌公司为其内部使用而开发的,并在2004年首次公开发表。 它利用谷歌提出的 M apRe

    2024年01月24日
    浏览(24)
  • 符号三角形-计算机算法设计与分析【1600+字解析 dfs全排列 列举情况】【题意分析】【算法分析】【思路是怎么来的】【过程是什么】

    下图是由14个“+”和14个“-”组成的符号三角形。2个同号下面都是“+”,2个异号下面都是“-”。 在一般情况下,符号三角形的第一行有n个符号。符号三角形问题要求对于给定的n,计算有多少个不同的符号三角形,使其所含的“+”和“-”的个数相同。 题意分析 也就是 给

    2024年02月03日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包