欢迎光临散文网 会员登陆 & 注册

python偏微分方程的实现

2022-11-27 22:04 作者:永不磨灭的希望  | 我要投稿

在物理海洋学中,有许多偏微分方程,那么如何利用编程去实现呢?由于我平时主要用的是python,本文将主要介绍利用python去实现偏微分方程的方法。

以下列方程为例:

式1 ——基于海面高度异常的EKE基本公式

式1右边项的中括号内部的偏微分主要用的是np.gradient(),具体如下:

图1——实操图

np.gradient(array,axis=0)表示若数组大于1D,向图1数据都是2D的,那么我们可以用axis去表示你想求得具体哪个维度的梯度(偏微分)。

对于np.gradient()的一些基本解释:

对于1维的数组:两个边界的元素直接用后一个减去前一个值,得到梯度,即b − a ;

对于中间的元素,取相邻两个元素差的一半,即( c − a ) / 2。

如:

In [2]: f = np.array([1, 2, 4, 7, 11, 16], dtype=np.float)

In [3]: np.gradient(f)

Out[3]: array([1. , 1.5, 2.5, 3.5, 4.5, 5. ])

对于2维数组:分别计算每个维度上的梯度,每个维度上的梯度和上面的1维数组梯度求法相同。


第一次正式写专栏,欢迎大家批评指正!

python偏微分方程的实现的评论 (共 条)

分享到微博请遵守国家法律