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)

👉参阅一:计算思维

👉参阅二:亚图跨际

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

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

相关文章

【无重复字符的最长子串】

无重复字符的最长字串 一、题目二、解决方法1.暴力解法2.滑动窗口哈希 三、总结1.es6 new set()的用法添加元素add()删除元素delete()判断元素是否存在has 2.滑动窗口和双指针的联系和特点 一、题目 二、解决方法 1.暴力解法 解题思路:使用两层循环逐个生成子字符串…

VMware软件的安装与安装Win10系统

上一篇写了(虚拟机)VMware软件的安装及Ubuntu系统安装,这次续上部分,安装完Ubuntu系统后,又安装了win10,也记录一下。 事前准备好win10镜像文件,可在微软官网下载 入口地址:软件下…

深入学习Java `synchronized` 关键字

深入学习Java synchronized 关键字 synchronized关键字通过确保在同一时间只有一个线程可以执行某个代码块,从而防止多个线程同时访问共享资源时发生数据不一致的问题。 修饰方法 当synchronized用于修饰实例方法时,表示当前实例对象是同步锁。这意味…

全球首个开源类Sora模型大升级,16秒720p画质电影感爆棚!代码和权重全面开源!

目录 01 视频界开源战士 02 深度解码技术 03 打破闭环,开源赋能 潞晨Open-Sora团队刚刚在720p高清文生视频质量和生成时长上实现了突破性进展! 全新升级的Open-Sora不仅支持无缝生成任意风格的高质量短片,更令人惊喜的是,团队选…

[每日一练]update和case-when语句联合实现条件更新

该题目来源于力扣:. 627. 变更性别 - 力扣(LeetCode) 题目要求: Salary 表:----------------------- | Column Name | Type | ----------------------- | id | int | | name | varchar |…

electron录制-镜头缩放、移动

要求 1、当录屏过程中,鼠标点击,镜头应该往点击处拉近,等一段时间还原 2、录屏过程中,可能会发生多次点击,但是点击位置偏差大,可能会导致缩放之后,画面没出来,因此需要移动镜头帧 效果如下 electron录制-镜头缩放 实现思路 1、监听鼠标点击、键盘按下事件 2、对以上…

【windows|002】WEB服务和域名介绍

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 🏅阿里云ACE认证高级工程师 🏅阿里云开发者社区专…

【算法与设计】期末总结

文章目录 第一章 概述算法与程序时间复杂性求上界 第二章 递归与分治双递归函数——Ackerman函数分治策略大整数乘法两位两位四位x四位 三位x三位两位x六位 第三章 动态规划矩阵连乘基本要素最优子结构子问题重叠 备忘录 第四章 贪心算法活动安排问题基本要素贪心选择性质最优子…

pg表空间和mysql表空间的区别

一、表空间的定义 1、在pg中表空间实际上是为表指定一个存储的目录。并且在创建数据库时可以为数据库指定默认的表空间。创建表和索引时可以指定表空间,这样表和索引就可以存储到表空间对应的目录下了。 在pg中一个库中可以有多个表空间,一个表空间可以…

6月17(信息差)

1.马斯克最新预测:未来不再需要手机 将被脑机芯片替代 当地时间6月17日,马斯克高仿号“Not Elon Musk”发帖称:“你会在你的大脑上安装一个Neuralink接口,让你通过思考来控制你的新X手机吗?”对此,马斯克本…

yolov10--C#接口

一、前言 本章主要讲解yolov10的C#接口,主要是使用微软开发的openvinocsharp工具加载yolov10模型,并做推理。 二、yolov10模型转换 这里为了演示,使用官方yolov10m模型(其他大小的模型同理)做演示,可从下方…

游戏服务器研究一:bigworld 开源代码的编译与运行

1. 前言 bigworld 已经开源了它的代码,而我对于大世界的 scale 很感兴趣,所以就尝试把代码跑起来研究。但是,整个过程比我原先预想的复杂得多。 虽然能找到一些官方的帮助文档,但这些文档要么过旧,要么过于详尽&…

【护眼知识】护眼台灯真的有用吗?带你看台灯怎么选对眼睛好

在数字化时代,我们的眼睛无疑承受着前所未有的压力。无论是长时间盯着电脑屏幕,还是沉浸在书本的海洋中,眼睛的健康都成为了我们不容忽视的问题。中国现有约500万盲人,占总人口的0.4%,是世界上盲和视力损伤严重的国家之…

浏览器加速播放视频技巧

当我们看网页中的视频时,想加速播放,但是选项最高只能2倍速时,还想再加快播放如何操作? 此时我们可以按F12打开浏览器开发者选项,然后点击控制台,在浏览器输入如下代码: document.querySelecto…

css的应用

css是一种样式表语言,为html标签修饰定义外观,分工不同 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><link href"css/demo.css" rel"stylesheet"/><style>/*cssx注释内…

月薪没到20K,必啃的WebGIS系统技术栈,你练到哪一步了?

WebGIS&#xff08;网络地理信息系统&#xff09;是目前地理信息系统&#xff08;GIS&#xff09;开发的主流&#xff0c;它利用互联网技术来发布、共享和交互地理空间数据。 一个完整的WebGIS项目通常涉及以下几个主要环节&#xff1a;具备一定的理论知识&#xff0c;数据生产…

MAGs培养有线索了?宏组学中未培养微生物表型与培养条件预测

宏基因组测序技术让人们对地球上微生物的多样性有了更深入的了解&#xff0c;但分离培养是研究微生物的生理代谢功能并解析其生态作用的关键。2023年11月的世界微生物数据中心&#xff08;WDCM&#xff09;年会中&#xff0c;全面启动了全球“未培养微生物培养组”计划&#xf…

Kubernetes面试整理-Master节点和Worker节点的作用

在 Kubernetes 中,集群由两类节点组成:Master 节点和 Worker 节点。每类节点都有其特定的作用和职责。 Master 节点 Master 节点是 Kubernetes 集群的控制平面,负责管理集群的状态和控制整个集群的操作。主要组件及其作用如下: 1. API 服务器(kube-apiserver): ● 作为…

毕业回家寄大量衣服裤子省钱技巧分享

很多宝子们问我&#xff0c;怎么寄快递更加便宜划算&#xff0c;特别是当你有很多的衣服裤子这类型的衣物的时候&#xff0c;怎么寄件最便宜。 今天分享几个寄快递的省钱方法以及经验分享。 1、惠发快递 像寄包裹快递&#xff0c;可以找快递平台进行下单&#xff0c;这样会更…

【机器学习300问】124、什么是LSTM?LSTM的基本结构是怎样的?

长短期记忆网络&#xff08;LSTM&#xff09;是一种解决隐变量模型长期信息保存和短期输入缺失问题的方法&#xff0c;有趣的是&#xff0c;长短期记忆网络的设计比门控循环单元稍微复杂一些&#xff0c; 却比门控循环单元早诞生了近20年。 一、什么是LSTM&#xff1f; LSMT全…