构造多维微分矩阵

问题描述 投票:1回答:3

我一直在尝试构造矩阵[[D ij,定义为

definition image

我想绘制位于

x i

]的点的图= -cos [π(2 i +1)/(2 N)]]在区间[-1,1]上,以取函数的导数。我在构造微分矩阵D ij时遇到问题。 我已将python脚本编写为:

import numpy as np N = 100 x = np.linspace(-1,1,N-1) for i in range(0, N - 1): x[i] = -np.cos(np.pi*(2*i + 1)/2*N) def Dmatrix(x,N): m_ij = np.zeros(3) for k in range(len(x)): for j in range(len(x)): for i in range(len(x)): m_ij[i,j,k] = -2/N*((k*np.sin(k*np.pi*(2*i + 1)/2*N(np.cos(k*np.pi*(2*j +1))/2*N)/(np.sin(np.pi*(2*i + 1)/2*N))) return m_ij xx = Dmatrix(x,N)

因此返回错误:

IndexError: too many indices for array

有没有一种方法可以更有效地构造它并成功地在所有k上计算?目标是将该矩阵乘以一个函数,然后求和j以获得给定函数的一阶导数。 

我一直在尝试构造矩阵Dij,定义为要对间隔[-1,1]上位于xi = -cos [π(2 i + 1)/(2 N)]上的点进行绘制。结果取...

python numpy matrix numerical-methods derivative
3个回答
1
投票
m_ij = np.zeros(3)不会构成三维数组,它会构成一维长度为3的数组。

0
投票
自行查看x计算

0
投票
enter image description here
© www.soinside.com 2019 - 2024. All rights reserved.