Разбор вектора b в файлах mtx и применение к нему численного метода [Python] - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь реализовать линейные методы решения для реальных наборов данных. Я запутался при анализе матрицы из файла mtx, чтобы получить вектор b , а затем запустил массивы через мой метод.Я могу конвертировать .mtx файл в матрицу, однако мой метод jacobi требует матрицу A,

Метод Jacobi:

    def jacobi(A,b,N=50,x=None):
"""Solves the equation Ax=b via the Jacobi iterative method."""

#A = our initial matrix
#b = solution vector
#N = number of iterations
# Create an initial guess of vector 0                                                                                                                                                           
if x is None:
    x = zeros(len(A[0]))

# Create a vector of the diagonal elements of A                                                                                                                                                
# and subtract them from A                                                                                                                                                                     
D = diag(A)
T = A - diagflat(D)

# Iterate for N times                                                                                                                                                                          
for i in range(N):
    x = (b - dot(T,x)) / D            
print("The number of iteration is: %d" %(i+1))
return x

Обычное использование jacobi:

  A = [[4.0,-1.0,1.0],[2.0,5.0,2.0],[1.0,2.0,4.0]]
  b = [8.0,3.0,11.0]
  Actual = [1.0,-1.0,3.0]
  Approx = np.array(Matrix_Solver_Methods.jacobi(A,b))

Вот разреженный файл mtx и преобразовать его в матрицу, но как мне собрать b для реализации?

    def loadMatrix(filename):
    M = sp.io.mmread(filename)
    if sp.sparse.issparse(M):
    M = M.todense()
    return M 

    Mtx=loadMatrix('bcsstk14.mtx')
    Mtx=np.array(Mtx)

Или я могу сгенерировать вектор-столбец такой жедлина как столбцы Mtx?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...