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_harml_ = 1
m_ = 1
theta = np.pi/2
phi = 0
sph_harm(m_, l_, phi, theta)

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

import numpy as nptheta = 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 godef 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.realfmax, 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 中创建图形:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Code Review 最佳实践

理论上讲,Code Review 对开发人员来说是件好事。它能帮助我们: 提高我们代码的可读性尽早发现漏洞和安全问题提供一个安全网络,以确保所有任务都得到充分完成 但现实是,code review 对于所有相关人员来说通常是一种不舒服的体验…

xcode生成静态库.a

一、生成静态库 1.打开 Xcode 创建一个新的 Static Library 工程,取名applestudio 2.创建工程完毕后,简化目录结构 删除系统自动创建的同名类:applestudio.h和applestudio.m 把自己的代码复制进去,如例子:guiconnect.h…

Unix环境高级编程-学习-08-自旋锁与屏障

目录 一、多线程相关文章链接 二、自由抒发 1、自旋锁 2、屏障 三、函数介绍 1、pthread_spin_init (1)声明 (2)作用 (3)参数 (4)返回值 (5)注意点 …

libVLC 视频裁剪

使用 libVLC 进行视频裁剪并不是直接支持的功能,因为 libVLC 主要是一个媒体播放库。然而,你可以通过调整播放窗口的大小和设置视频输出的区域来实现一种“视觉上的裁剪”。这意味着视频本身并没有被修改,但可以控制显示给用户的视频区域。 …

docker-面试题

文章目录 2022-docker-面试题一、通用问题1、Docker 和虚拟机有啥不同?2、Docker 安全么?3、如何清理后台停止的容器?4、如何查看镜像支持的环境变量?5、当启动容器的时候提示:exec format error?如何解决问…

多个用户同时执行耗时较长的sql如何保证数据库的性能不被因此变得缓慢

当多个用户同时执行耗时较长的 SQL 查询时,可以采取一些措施来保证数据库的性能不会因此变得缓慢。以下是一些常用的方法: 优化查询语句:确保 SQL 查询语句是经过优化的,包括正确使用索引、避免全表扫描、减少不必要的连接和子查询…

前端Ajax请求从后端获取二进制文件并下载

大家都知道前端的下载除了最简单的a标签href,还有时候需要验证token,此时后台会给一个返回二进制的下载接口。如果你用ajax普通的get,post请求,接口会返回乱码。那么本文就带你封装一个处理二进制下载的方法。 1.设置responseTyp…

[网鼎杯2018]Unfinish 两种方法 -----不会编程的崽

网鼎杯太喜欢搞二次注入了吧。上次是无列名盲注,这次又是二次注入盲注。。。不知道方法还是挺难的。哎,网鼎嘛,能理解透彻就很强了。能自己做出来那可太nb了。 又是熟悉的登录框。不知道这是第几次看见网鼎杯的登录框了。后台扫描一下&#x…

『Apisix入门篇』从零到一掌握Apache APISIX:架构解析与实战指南

📣读完这篇文章里你能收获到: 🌐 深入Apache APISIX架构: 从Nginx到OpenResty,再到etcd,一站式掌握云原生API网关的构建精髓,领略其层次化设计的魅力。 🔌 核心组件全解析&#xff…

【嵌入式学习】Qtday03.26

一、思维导图 二、练习 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }void Widget::on_login_btn_clicked() {if(ui->…

OC对象 - Block解决循环引用

文章目录 OC对象 - Block解决循环引用前言1. 循环引用示例1.1 分析 2. 解决思路3. ARC下3.1 __weak3.2 __unsafe_unretained3.3 __block 4. MRC下4.1 __unsafe_unretain....4.1 __block 5. 总结5.1 ARC下5.2 MRC下 OC对象 - Block解决循环引用 前言 本章将会通过一个循环引用…

flask_restful的基本使用

优势: Flask-Restful 是一个专门用来写 restful api 的一个插件。 使用它可以快速的集成restful api 接口功能。 在系统的纯api 的后台中,这个插件可以帮助我们节省很多时间。 缺点: 如果在普通的网站中,这个插件就没有优势了&…

测试环境搭建整套大数据系统(十二:挂载磁盘到hadoop环境)

一:链接硬盘 将硬盘连接到计算机的 SATA 接口或 USB 接口,并确保硬盘通电并处于可用状态。 二:查看硬盘信息 sudo fdisk -l三:创建分区 gdisk /dev/vbd重新扫描磁盘 partprobe /dev/vdb格式化磁盘 mkfs.ext4 /dev/vdb2查看磁…

前端学习之css基本网格布局

网格布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>网格布局</title><style>.a{/* grid网格布局 */display: grid;width: 400px;height: 400px;border: 1px solid red;/* 设置当前…

iOS开发之SwiftUI

iOS开发之SwiftUI 在iOS开发中SwiftUI与Objective-C和Swift不同&#xff0c;它采用了声明式语法&#xff0c;相对而言SwiftUI声明式语法简化了界面开发过程&#xff0c;减少了代码量。 由于SwiftUI是Apple推出的界面开发框架&#xff0c;从iOS13开始引入&#xff0c;Apple使用…

RabbitHealthContributorAutoConfiguration 检测到 RabbitMQ 相关依赖时自动配置健康检查

RabbitHealthContributorAutoConfiguration 是 Spring Boot 自动配置机制的一部分&#xff0c;它负责在检测到 RabbitMQ 相关依赖时自动配置健康检查。下面我会详细解释其工作原理&#xff0c;并尝试提供一些相关的源码片段&#xff08;注意&#xff0c;源码可能因 Spring Boot…

我在京东做数据分析,一位京东数据分析师的工作日常

有人说&#xff1a;“种下一棵树最好的时间是十年前&#xff0c;其次是现在”。任何时候&#xff0c;我们都应该抓住机遇&#xff0c;说不定就是改变你现状的一个机会。 2020年&#xff0c;我在疫情得到控制后&#xff0c;面试入职京东大数据组&#xff0c;截止目前&#xff0…

获取高德安全码SHA1

高德开发者平台上给的三种方法 获取安全码SHA1&#xff0c;这里我自己使用的是第三种方法。 1、通过Eclipse编译器获取SHA1 使用 adt 22 以上版本&#xff0c;可以在 eclipse 中直接查看。 Windows&#xff1a;依次在 eclipse 中打开 Window -> Preferances -> Androi…

Linux logout命令教程:如何安全地退出Linux会话(附实例详解和注意事项)

Linux logout命令介绍 logout命令用于退出当前的登录Shell。这个命令可以被普通用户用来结束他们自己的会话。 Linux logout命令适用的Linux版本 logout命令在所有主流的Linux发行版中都是可用的&#xff0c;包括但不限于Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、R…

flask_restful结合蓝图使用

在蓝图中&#xff0c;如果使用 Flask_RESTful &#xff0c; 创建 Api 对象的时候&#xff0c;传入蓝图对象即可&#xff0c;不再是传入 app 对象 /user/__init__.py from flask.blueprints import Blueprintuser_bp Blueprint(user,__name__)from user import views /user…