矩阵乘法与Python

时间:2015-10-12 08:35:56

标签: python-2.7 numpy matrix

我有一个数值分析分配,我需要通过乘以矩阵来找到一些系数。我们在Mathcad中得到了一个例子,但现在我们必须用另一种编程语言来做,所以我选择了Python。

问题是,通过在各个环境中乘以矩阵,我得到了不同的结果。这是Python中的功能:

    from numpy import *
def matrica(C, n):
N = len(C) - 1
m = N - n
A = [[0] * (N + 1) for i in range(N+1)]
A[0][0] = 1
for i in range(0, n + 1):
    A[i][i] = 1
for j in range(1, m + 1):
    for i in range(0, N + 1):
        if i + j <= N:
            A[i+j][n+j] = A[i+j][n+j] - C[i]/2
        A[int(abs(i - j))][n+j] = A[int(abs(i - j))][n+j] - C[i]/2
M = matrix(A)
x = matrix([[x] for x in C])
return [float(y) for y in M.I * x]

如您所见,我正在使用 numpy 库。此函数与Mathcad中的模拟函数一致,直到return语句(矩阵乘以的部分)更加具体。还有一个观察:如果N = 1,此函数返回正确的矩阵。

1 个答案:

答案 0 :(得分:1)

我不确定我完全理解你的代码是做什么的。你能解释一下吗,比如你实际上正在计算的数学东西。但是,如果你想要一个简单的常规产品,如果你使用numpy.matrix,为什么不使用已经写好的矩阵产品呢?

a = numpy.matrix(...)
b = numpy.matrix(...)
p = a * b #matrix product