Python微磁学磁倾斜和西塔规则算法

2024-06-19 21:04

本文主要是介绍Python微磁学磁倾斜和西塔规则算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

📜有限差分-用例

📜离散化偏微分方程求解器和模型定型 | 📜三维热传递偏微分方程解 | 📜特定资产期权价值偏微分方程计算 | 📜三维波偏微分方程空间导数计算 | 📜应力-速度公式一阶声波方程模拟二维地震波 | 📜微磁学计算磁化波动求解器、色散关系和能垒的弦法 | 📜磁倾斜导数数据平滑

📜指数衰减:🖊常微分方程数值求解器 | 🖊绘制衰减图 | 🖊绘制(正向欧拉、反向欧拉和克兰克-尼科尔森)西塔规则算法放大因子图 | 🖊泰勒级数展开符号计算三种算法误差 | 🖊模型误差、数据误差、离散化误差和舍入误差 | 🖊求解器泛化

📜Python热涨落流体力学求解算法和英伟达人工智能核评估模型

📜常微分方程用例:​Python机器人动力学和细胞酶常微分方程

在这里插入图片描述

✒️Python不同初始条件下热方程

有限差分法是获得偏微分和代数方程数值解的技术之一。在该方法中,解在有限网格点中以离散形式近似。

首先考虑一个偏微分方程:
u t + a u x = 0 u_t+a u_x=0 ut+aux=0
正向时间前向空间算法由下式给出:
V m n + 1 − V m n k + a V m + 1 n − V m n h = 0 \frac{V_m^{n+1}-V_m^n}{k}+a \frac{V_{m+1}^n-V_m^n}{h}=0 kVmn+1Vmn+ahVm+1nVmn=0
正向时间中心空间算法由下式给出:
V m n − 1 − V m n k + a ⋅ V m − − − V m − 1 n 2 h − 0 \frac{V_m^{n-1}-V_m^n}{k}+a \cdot \frac{V_{m-}^{-}-V_{m-1}^n}{2 h}-0 kVmn1Vmn+a2hVmVm1n0
中心时间中心空间算法由下式给出
V m n + 1 − V m n − 1 2 k + a ⋅ V m + 1 n − V m − 1 n 2 h = 0 \frac{V_m^{n+1}-V_m^{n-1}}{2 k}+a \cdot \frac{V_{m+1}^n-V_{m-1}^n}{2 h}=0 2kVmn+1Vmn1+a2hVm+1nVm1n=0
让我们考虑另一个偏微分方程,
u t = b u x x ; b > 0 u_t=b u_{x x} ; \quad b>0 ut=buxx;b>0
正向时间中心空间算法由下式给出:
V m n + 1 − V m n k = b V m + 1 n − 2 V m n + V m − 1 n h 2 = 0 \frac{V_m^{n+1}-V_m^n}{k}=b \frac{V_{m+1}^n-2 V_m^n+V_{m-1}^n}{h^2}=0 kVmn+1Vmn=bh2Vm+1n2Vmn+Vm1n=0
示例:数值求解
u t = 0.05 u x x u_t=0.05 u_{x x} ut=0.05uxx

  • u u u 代表温度
  • x x x 表示 0 ≤ x ≤ L 0 \leq x \leq L 0xL​ 的位置
  • t t t 表示 t > 0 t>0 t>0的时间
  • 边界条件为 u ( t , 0 ) = 0 u(t, 0)=0 u(t,0)=0 u ( t , L ) = 0 u(t, L)=0 u(t,L)=0 t > 0 t>0 t>0
  • 初始条件为 u ( 0 , x ) = sin ⁡ ( π x ) u(0, x)=\sin (\pi x) u(0,x)=sin(πx) 对于 0 ≤ x ≤ L 0 \leq x \leq L 0xL
  • b b b 表示 b > 0 b>0 b>0 的扩散系数

代码求解:

import numpy as np
import matplotlib.pyplot as pltL = 1  
T = 1  
m = 5  
n = 5  
h = L / m  
k = T / n  
b = 0.05  
mu = k / h**2  c = b * mu
if c <= 0 or c >= 0.5:print('Scheme is unstable')v = np.zeros((m + 1, n + 1))
ic1 = lambda x: np.sin(np.pi * x)for j in range(1, m + 2):v[0, j - 1] = ic1((j - 1) * h)b1 = lambda t: 0  # L.B.C
b2 = lambda t: 0  # R.B.Cfor i in range(1, n + 2):v[i - 1, 0] = b1((i - 1) * k)v[i - 1, n] = b2((i - 1) * k)for i in range(n):for j in range(1, m):v[i + 1, j] = (1 - 2 * b * mu) * v[i, j] + b * mu * v[i, j + 1] + b * mu * v[i, j - 1]x = np.linspace(0, L, m + 1)
t = np.linspace(0, T, n + 1)
X, T = np.meshgrid(x, t)fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, T, v, cmap='viridis')
ax.set_xlabel('Space X')
ax.set_ylabel('Time T')
ax.set_zlabel('V')
plt.title('Python for Heat')
plt.show()

接上例,初始条件改为:

对于 0 ≤ x ≤ L 0 \leq x \leq L 0xL

u ( 0 , x ) = { 2 x if  x < 0.5 2 ( 1 − x ) 否则  u(0, x)= \begin{cases}2 x & \text { if } x<0.5 \\ 2(1-x) & \text { 否则 }\end{cases} u(0,x)={2x2(1x) if x<0.5 否则 

代码数值解:

import numpy as np
import matplotlib.pyplot as pltL = 1  
T = 1  
m = 5  
n = 5  
h = L / m  
k = T / n  
b = 0.05  
mu = k / h ** 2 c = b * mu
if c <= 0 or c >= 0.5:print('Scheme is unstable')v = np.zeros((m + 1, n + 1))
ic1 = lambda x: 2 * x
ic2 = lambda x: 2 * (1 - x)x = np.linspace(0, L, m + 1)
x = np.linspace(0, L, m + 1)
for j in range(1, m + 2):if x[j - 1] < 0.5:v[0, j - 1] = ic1(x[j - 1])  else:v[0, j - 1] = ic2(x[j - 1])  b1 = lambda t: 0  # L.B.C
b2 = lambda t: 0  # R.B.Cfor i in range(1, n + 2):v[i - 1, 0] = b1((i - 1) * k)v[i - 1, n] = b2((i - 1) * k)for i in range(n):for j in range(1, m):v[i + 1, j] = (1 - 2 * b * mu) * v[i, j] + b * mu * v[i, j + 1] + b * mu * v[i, j - 1]# Visualization
x = np.linspace(0, L, m + 1)
t = np.linspace(0, T, n + 1)
X, T = np.meshgrid(x, t)fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, T, v, cmap='viridis')
ax.set_xlabel('Space X')
ax.set_ylabel('Time T')
ax.set_zlabel('V')
plt.title('Python for Heat ')
plt.show()

👉参阅一:计算思维

👉参阅二:亚图跨际

这篇关于Python微磁学磁倾斜和西塔规则算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076142

相关文章

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

一文带你搞懂Python中__init__.py到底是什么

《一文带你搞懂Python中__init__.py到底是什么》朋友们,今天我们来聊聊Python里一个低调却至关重要的文件——__init__.py,有些人可能听说过它是“包的标志”,也有人觉得它“没... 目录先搞懂 python 模块(module)Python 包(package)是啥?那么 __in