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如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c