У меня есть вычисление численного анализа, и мне нужно найти некоторые коэффициенты путем умножения матриц. Нам дали пример в Mathcad, но теперь мы должны сделать это на другом языке программирования, поэтому я выбрал Python.Матричное умножение с 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
.
Исправить отступ. Используйте 'import numpy как np'. Покажите, что вы получаете и чего ожидаете. – hpaulj
Извините, но ваш код не ясен, так как ваш отступ не наступил из вашего вырезания и вставки. Кроме того, было бы хорошо, если бы вы дали нам ввод и вывод проб с ожидаемыми результатами. – DrBwts