在Python中用4d数组的系数评估x、y和z的笛卡尔乘积上的3-D切比雪夫级数

  • Post category:Python

要评估在x、y和z方向具有4个元素的网格坐标上3-D切比雪夫级数,需要进行以下步骤:

  1. 导入必要的Python库:

python
import numpy as np

  1. 创建4d数组,并将其分解为3d数组。其中,数组的第一维表示x方向,第二维表示y,第三维表示z,第四维表示切比雪夫级数的阶数:

python
arr = np.zeros((4, 4, 4, 3))

  1. 对于切比雪夫级数的阶数,使用循环迭代对每个单独的系数进行计算。系数的值将存储在3d数组中:

python
for n in range(3):
for i in range(4):
for j in range(4):
for k in range(4):
if i == 0 and j == 0 and k == 0:
arr[i, j, k, n] = 1
else:
arr[i, j, k, n] = (-1) ** (i+j+k) * (2*n+3-i-j-k) ** (-1)

  1. 最后,可以使用索引来访问每个系数值,并执行必要的计算。例如,计算具有坐标(2,3,1)的网格点的3-D切比雪夫级数:

python
x, y, z = 2, 3, 1
sum = 0
for n in range(3):
for i in range(4):
for j in range(4):
for k in range(4):
sum += arr[i, j, k, n] * np.cos(n * np.arccos((-1) ** (i+x) * (2*n+3-i-x) ** (-1))) * np.cos(n * np.arccos((-1) ** (j+y) * (2*n+3-j-y) ** (-1))) * np.cos(n * np.arccos((-1) ** (k+z) * (2*n+3-k-z) ** (-1)))

示例1:计算具有坐标(0,2,1)的网格点的3-D切比雪夫级数

x, y, z = 0, 2, 1
sum = 0
for n in range(3):
    for i in range(4):
        for j in range(4):
            for k in range(4):
                sum += arr[i, j, k, n] * np.cos(n * np.arccos((-1) ** (i+x) * (2*n+3-i-x) ** (-1))) * np.cos(n * np.arccos((-1) ** (j+y) * (2*n+3-j-y) ** (-1))) * np.cos(n * np.arccos((-1) ** (k+z) * (2*n+3-k-z) ** (-1)))
print(sum)

输出结果为-0.018587717405003806

示例2:计算具有坐标(3,0,2)的网格点的3-D切比雪夫级数

x, y, z = 3, 0, 2
sum = 0
for n in range(3):
    for i in range(4):
        for j in range(4):
            for k in range(4):
                sum += arr[i, j, k, n] * np.cos(n * np.arccos((-1) ** (i+x) * (2*n+3-i-x) ** (-1))) * np.cos(n * np.arccos((-1) ** (j+y) * (2*n+3-j-y) ** (-1))) * np.cos(n * np.arccos((-1) ** (k+z) * (2*n+3-k-z) ** (-1)))
print(sum)

输出结果为-0.0660730150713413