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

🎯要点

🎯平流扩散简单离散微分算子 | 🎯相场模拟:简单旋节线分解、枝晶凝固的 | 🎯求解二维波动方程,离散化时间导数

🎯英伟达 A100 人工智能核性能评估模型 | 🎯热涨落流体动力学求解及算法

📜有限差分法 | 本文 - 用例

📜Python和Julia河流湖泊沿海水域特征数值算法模型

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

📜Python物理学有限差分微分求解器和动画波形传播

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

📜Python氮氧甲烷乙烷乙烯丙烯气体和固体热力学模型计算

📜Python射频电磁肿瘤热疗数学模型和电磁爆炸性变化统计推理模型

在这里插入图片描述

🍇Python有限差分逼近余弦导数

函数 f ( x ) f(x) f(x) x = a x=a x=a点的导数 f ′ ( x ) f^{\prime}(x) f(x)定义为:
f ′ ( a ) = lim ⁡ x → a f ( x ) − f ( a ) x − a f^{\prime}(a)=\lim _{x \rightarrow a} \frac{f(x)-f(a)}{x-a} f(a)=xalimxaf(x)f(a)
x = a x=a x=a 处的导数就是此时的斜率。在该斜率的有限差分近似中,我们可以使用点 x = a x=a x=a 附近的函数值来实现目标。不同的应用中使用了多种有限差分公式,下面介绍其中的三种,其中导数是使用两点的值计算的。

前向差分是使用连接 ( x j , f ( x j ) ) \left(x_j, f\left(x_j\right)\right) (xj,f(xj)) ( x j + 1 , f ( x j + 1 ) ) \left(x_{j+1}, f\left(x_{j+1}\right)\right) (xj+1,f(xj+1))​的线来估计 x j x_j xj 处函数的斜率:
f ′ ( x j ) = f ( x j + 1 ) − f ( x j ) x j + 1 − x j f^{\prime}\left(x_j\right)=\frac{f\left(x_{j+1}\right)-f\left(x_j\right)}{x_{j+1}-x_j} f(xj)=xj+1xjf(xj+1)f(xj)
后向差分是使用连接 ( x j − 1 , f ( x j − 1 ) ) \left(x_{j-1}, f\left(x_{j-1}\right)\right) (xj1,f(xj1)) ( x j , f ( x j ) ) \left(x_j, f\left(x_j\right)\right) (xj,f(xj)) 的线来估计 x j x_j xj 处函数的斜率:
f ′ ( x j ) = f ( x j ) − f ( x j − 1 ) x j − x j − 1 f^{\prime}\left(x_j\right)=\frac{f\left(x_j\right)-f\left(x_{j-1}\right)}{x_j-x_{j-1}} f(xj)=xjxj1f(xj)f(xj1)
中间差分是使用连接 ( x j − 1 , f ( x j − 1 ) ) \left(x_{j-1}, f\left(x_{j-1}\right)\right) (xj1,f(xj1)) ( x j + 1 , f ( x j + 1 ) ) \left(x_{j+1}, f\left(x_{j+1}\right)\right) (xj+1,f(xj+1)) 的线来估计 x j x_j xj 处函数的斜率:
f ′ ( x j ) = f ( x j + 1 ) − f ( x j − 1 ) x j + 1 − x j − 1 f^{\prime}\left(x_j\right)=\frac{f\left(x_{j+1}\right)-f\left(x_{j-1}\right)}{x_{j+1}-x_{j-1}} f(xj)=xj+1xj1f(xj+1)f(xj1)
为了导出 f f f 导数的近似值 ,我们回到泰勒级数。对于任意函数 f ( x ) f(x) f(x),对于任意函数 f ( x ) f(x) f(x) f f f 围绕 a = x j a=x_j a=xj 的泰勒级数是 f ( x ) = f ( x j ) ( x − x j ) 0 0 ! + f ′ ( x j ) ( x − x j ) 1 1 ! + f ′ ′ ( x j ) ( x − x j ) 2 2 ! + f ′ ′ ′ ( x j ) ( x − x j ) 3 3 ! + ⋯ f(x)=\frac{f\left(x_j\right)\left(x-x_j\right)^0}{0!}+\frac{f^{\prime}\left(x_j\right)\left(x-x_j\right)^1}{1!}+\frac{f^{\prime \prime}\left(x_j\right)\left(x-x_j\right)^2}{2!}+\frac{f^{\prime \prime \prime}\left(x_j\right)\left(x-x_j\right)^3}{3!}+\cdots f(x)=0!f(xj)(xxj)0+1!f(xj)(xxj)1+2!f′′(xj)(xxj)2+3!f′′′(xj)(xxj)3+

如果 x x x 位于间距为 h h h 的点网格上,我们可以计算 x = x j + 1 x=x_{j+1} x=xj+1 处的泰勒级数以获得
f ( x j + 1 ) = f ( x j ) ( x j + 1 − x j ) 0 0 ! + f ′ ( x j ) ( x j + 1 − x j ) 1 1 ! + f ′ ′ ( x j ) ( x j + 1 − x j ) 2 2 ! + f ′ ′ ′ ( x j ) ( x j + 1 − x j ) 3 3 ! + ⋯ f\left(x_{j+1}\right)=\frac{f\left(x_j\right)\left(x_{j+1}-x_j\right)^0}{0!}+\frac{f^{\prime}\left(x_j\right)\left(x_{j+1}-x_j\right)^1}{1!}+\frac{f^{\prime \prime}\left(x_j\right)\left(x_{j+1}-x_j\right)^2}{2!}+\frac{f^{\prime \prime \prime}\left(x_j\right)\left(x_{j+1}-x_j\right)^3}{3!}+\cdots f(xj+1)=0!f(xj)(xj+1xj)0+1!f(xj)(xj+1xj)1+2!f′′(xj)(xj+1xj)2+3!f′′′(xj)(xj+1xj)3+
代入 h = x j + 1 − x j h=x_{j+1}-x_j h=xj+1xj 并求解 f ′ ( x j ) f^{\prime}\left(x_j\right) f(xj) 得出方程
f ′ ( x j ) = f ( x j + 1 ) − f ( x j ) h + ( − f ′ ′ ( x j ) h 2 ! − f ′ ′ ′ ( x j ) h 2 3 ! − ⋯   ) f^{\prime}\left(x_j\right)=\frac{f\left(x_{j+1}\right)-f\left(x_j\right)}{h}+\left(-\frac{f^{\prime \prime}\left(x_j\right) h}{2!}-\frac{f^{\prime \prime \prime}\left(x_j\right) h^2}{3!}-\cdots\right) f(xj)=hf(xj+1)f(xj)+(2!f′′(xj)h3!f′′′(xj)h2)
括号中的项 − f ′ ′ ( x j ) h 2 ! − f ′ ′ ′ ( x j ) h 2 3 ! − ⋯ -\frac{f^{\prime \prime}\left(x_j\right) h}{2!}-\frac{f^{\prime \prime \prime}\left( x_j\right) h^2}{3!}-\cdots 2!f′′(xj)h3!f′′′(xj)h2 被称为 h h h 的高阶项。高阶项可以重写为
− f ′ ′ ( x j ) h 2 ! − f ′ ′ ′ ( x j ) h 2 3 ! − ⋯ = h ( α + ϵ ( h ) ) -\frac{f^{\prime \prime}\left(x_j\right) h}{2!}-\frac{f^{\prime \prime \prime}\left(x_j\right) h^2}{3!}-\cdots=h(\alpha+\epsilon(h)) 2!f′′(xj)h3!f′′′(xj)h2=h(α+ϵ(h))
其中 α \alpha α 是某个常数, ϵ ( h ) \epsilon(h) ϵ(h) h h h 的函数,当 h h h 变为 0 时,该函数也变为 0。你可以用一些代数来验证这是真的。我们使用缩写“ O ( h ) O(h) O(h)”来表示 h ( α + ϵ ( h ) ) h(\alpha+\epsilon(h)) h(α+ϵ(h)),并且一般来说,我们使用缩写“ O ( h p ) O\left(h^p\right) O(hp)”来表示 h p ( α + ϵ ( h ) ) h^p(\alpha+\epsilon(h)) hp(α+ϵ(h))

O ( h ) O(h) O(h) 代入前面的方程得出
f ′ ( x j ) = f ( x j + 1 ) − f ( x j ) h + O ( h ) f^{\prime}\left(x_j\right)=\frac{f\left(x_{j+1}\right)-f\left(x_j\right)}{h}+O(h) f(xj)=hf(xj+1)f(xj)+O(h)
这给出了近似导数的前向差分公式为
f ′ ( x j ) ≈ f ( x j + 1 ) − f ( x j ) h f^{\prime}\left(x_j\right) \approx \frac{f\left(x_{j+1}\right)-f\left(x_j\right)}{h} f(xj)hf(xj+1)f(xj)
我们说这个公式是 O ( h ) O(h) O(h)

💦示例:余弦函数 f ( x ) = cos ⁡ ( x ) f(x)=\cos (x) f(x)=cos(x)。我们知道 cos ⁡ ( x ) \cos(x) cos(x)的导数是 − sin ⁡ ( x ) -\sin(x) sin(x)​。尽管在实践中我们可能不知道我们求导的基础函数,但我们使用简单的例子来说明上述数值微分方法及其准确性。以下代码以数值方式计算导数。

import numpy as np
import matplotlib.pyplot as plt
plt.style.use('seaborn-poster')
%matplotlib inline
h = 0.1
x = np.arange(0, 2*np.pi, h) 
y = np.cos(x) 

forward_diff = np.diff(y)/h 
x_diff = x[:-1:] 
exact_solution = -np.sin(x_diff) 

plt.figure(figsize = (12, 8))
plt.plot(x_diff, forward_diff, '--', \
         label = 'Finite difference approximation')
plt.plot(x_diff, exact_solution, \
         label = 'Exact solution')
plt.legend()
plt.show()

max_error = max(abs(exact_solution - forward_diff))
print(max_error)
0.049984407218554114

如上图所示,两条曲线之间存在微小的偏移,这是由于数值导数求值时的数值误差造成的。两个数值结果之间的最大误差约为 0.05,并且预计会随着步长的增大而减小。

💦示例:以下代码使用递减步长 h h h 的前向差分公式计算 f ( x ) = cos ⁡ ( x ) f(x)=\cos (x) f(x)=cos(x) 的数值导数。然后,它绘制近似导数和真实导数之间的最大误差与 h h h 的关系,如生成的图形所示。

h = 1
iterations = 20 
step_size = [] 
max_error = [] 

for i in range(iterations):

    h /= 2 
    step_size.append(h) 
    x = np.arange(0, 2 * np.pi, h) 
    y = np.cos(x) 
    forward_diff = np.diff(y)/h 
    x_diff = x[:-1] 
    exact_solution = -np.sin(x_diff) 
    
    max_error.append(\
            max(abs(exact_solution - forward_diff)))
plt.figure(figsize = (12, 8))
plt.loglog(step_size, max_error, 'v')
plt.show()

双对数空间中直线的斜率为 1 ;因此,误差与 h 1 h^1 h1成正比,这意味着,正如预期的那样,前向差分公式为 O ( h ) O(h) O(h)

👉参阅一:计算思维

👉参阅二:亚图跨际

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

时隔一年,SSD大涨价?

同样产品,2T,去年400多到手,今年700。 去年 今年

win10重装系统如何操作,附上详细系统重装图文教程(2024年新)

win10重装系统如何操作呢?电脑使用时间长了,会出现各种各样的问题,如重要的系统文件被删除导致电脑无法正常运行,电脑运行内存空间不足,电脑卡顿等。Win10重装系统很简单,这里分享超详细的重装系统方法&…

红日靶场实战一 - 学习笔记

最近在学习红蓝对抗,如果有兴趣的可以多关注。 目录 环境搭建 靶场链接 配置网络 攻击机kali网络 配置win7 web服务器网络 配置winserver 2008网络(DC域控) 配置win2003/win2k3网路(域成员) IP配置情况 外网突破 信息收集 phpmya…

等待 chrome.storage.local.get() 完成

chrome.storage.local.get() 获取存储处理并计数,内部计数正常,外部使用始终为0,百思不得其解。 如何在继续执行之前等待异步chrome.storage.local.get()完成-腾讯云开发者社区-腾讯云 (tencent.com) 原来我忽略了异步问题,最简…

第二十二篇——香农第二定律(一):为什么你的网页总是打不开?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 看似在将知识,实际是在讲生活和所有;突破边界偶尔…

lotus snapshot 快照列表

快照列表 https://forest-archive.chainsafe.dev/list/mainnet/latest

阿赵UE引擎C++编程学习笔记——C++自定义蓝图函数

大家好,我是阿赵。   使用UE引擎,大部分功能都可以使用蓝图的自带节点去完成。但有时候我们也需要扩展一些蓝图没有的功能。这一篇主要学习一下怎样用C给蓝图新增自定义的函数节点。 一、 新建蓝图函数库 在添加C类的时候,选择蓝图函数库&…

【神经网络】图像的数字视角

文章目录 图像的数字视角引言直观感受内在剖析图像常用函数图像三维层次 经验总结 图像的数字视角 引言 在机器视觉和目标识别领域,需要处理的对象都是图像,但这些领域的模型都是针对数值进行训练的,那么图像和数值之间是什么关系呢?答案是…

随机产生一些江河上的坐标数据

不久前收到一个需求,说要随机创建约一百个某段江河上的坐标点,用于做一些数据呈现。 我首先是想到用AI直接给我一点数据,没想到给出来的坐标,有许多都落在陆地上,根本不符合我的要求。后来结合AI给出的建议&#xff0…

基于Pytorch框架的深度学习ConvNext神经网络宠物猫识别分类系统源码

第一步:准备数据 12种宠物猫类数据:self.class_indict ["阿比西尼猫", "豹猫", "伯曼猫", "孟买猫", "英国短毛猫", "埃及猫", "缅因猫", "波斯猫", "布偶猫&q…

jupyter使用的一个奇怪bug——SyntaxError: invalid non-printable character U+00A0

bug来由:从其他部分例如kaggle里复制来的代码直接粘贴在jupyter notebook里,每一行代码都会出现: Cell In[5], line 1 warnings.filterwarnings(ignore) ^ SyntaxError: invalid non-printable character U00A0 单元格 In[5],第 …

多模态AI的挑战与早期壁垒的构建

伴随着Sora、GPT40的推出,多模态AI逐渐成为研究的热点和应用的趋势。然而,多模态AI的发展并非一帆风顺,它面临着诸多挑战和壁垒。 一、多模态AI的难点 多模态AI的核心在于将不同模态的信息(如文本、图像、音频、视频等&#xff…

AI大佬都在说下一个爆点是智能体,建议开发者抢占先机!

现在大模型行至一年,风口与炒作如影随形,相信很多人身处其中但仍然感到很迷失,这个行业到底发展到什么程度了,作为普通开发者还有什么可以抓住的机会?从AI大佬的观点中,我们能获得一些行业变化的新风向。 …

ssh-add id_rsa_gitlab1 Error connecting to agent: No such file or directory

ssh-add id_rsa_gitlab1 Error connecting to agent: No such file or directory 目录 ssh-add id_rsa_gitlab1 Error connecting to agent: No such file or directory1. 启动 SSH 代理2. 添加 SSH 密钥3. 使用 Git Bash 或其他终端4. 使用 Pageant(适用于 PuTTY 用…

Eigen中 Row-Major 和 Column-Major 存储顺序的区别

Eigen中 Row-Major 和 Column-Major 存储顺序的区别 flyfish Eigen::RowMajor 是 Eigen 库中用于指定矩阵存储顺序的一种选项 理解 Row-Major 和 Column-Major 存储顺序的区别,绘制一个单一的图来显示内存中的元素访问顺序,在图中用箭头表示访问顺序. import nu…

从实例出发,深入探索Java SE中数组的易错点

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

神经网络模型---AlexNet

一、AlexNet 1.导入tensorflow库,这里给简称为tf库 import tensorflow as tf from tensorflow.keras import datasets, layers, modelsdatasets:是用于训练和测试机器学习模型的数据集合 layers:是构建神经网络模型的关键组成部分 models&a…

豆包高质量声音有望复现-Seed-TTS

我们介绍了 Seed-TTS,这是一个大规模自回归文本转语音 (TTS) 模型系列,能够生成与人类语音几乎没有区别的语音。Seed-TTS 作为语音生成的基础模型,在语音上下文学习方面表现出色,在说话人的相似性和自然性方…

摄像头图像矫正的表格生成方法

1.设置单元格高宽 点击表格左上角 的 小三角 列宽: HOME -> Rows and Columns -> Column Width 5 CM 行高: HOME -> Rows and Columns -> Row Height 5 CM 2.设置 条件格式 HOME -> Conditional Formatting-> Manager Rules 点击 左上方 New Rule…

win11右键小工具

开头要说的 在日常使用场景中,大家如果用的是新的笔记本电脑,应该都是安装的win11系统, 当然win11系统是最被诟病的, 因为有很多人觉得很难操作, 就比如一个小小的解压操作, 在win7和win10上&#xff…