132
Stepinkinunknown
python
3 years ago
1.9 kB
5
Indexable
import numpy as np matrix = np.array([[9.00, 2.01, 0.13, -1.50], [1.85, 5.05, 0.60, 0.80], [0.12, 0.75, 3.00, 0.20]]) def PrivedenieKTreugol(matrix): for row_number, row in enumerate(matrix): mainel = row[row_number] if mainel!=0: row /= mainel for lower_row in matrix[row_number + 1:]: el = lower_row[row_number] lower_row -= el * row else: for i in range(matrix.shape[0]-1): if (i<=2): matrix[[row_number,row_number+i]]=matrix[[row_number+i,row_number]] mainel = row[row_number] if mainel!=0: row /= mainel for lower_row in matrix[row_number + 1:]: el = lower_row[row_number] lower_row -= el * row break if mainel==0: raise ValueError("Матрица несовместна") def Obratniy_hod(matrix): row_count = matrix.shape[0] x=[None]*row_count for i in range(row_count-1, -1,-1): x[i]=matrix[i,-1]-np.dot(matrix[i, i+1:row_count], x[i+1:]) return(x) PrivedenieKTreugol(matrix) print("Мое решение") for a, i in enumerate(Obratniy_hod(matrix)): print(f"x{a + 1} =", i) print("///////////////////////////\n") matrix1 = np.array([[9.00, 2.01, 0.13], [1.85, 5.05, 0.60], [0.12, 0.75, 3.00]]) b= np.array([[ -1.50],[ 0.80],[ 0.20]]) print("матрица на ответ") print(np.dot(matrix1,Obratniy_hod(matrix)),'\n') print("///////////////////////////\n") print("Ответ встроенной библиотеки numpy") print(np.linalg.solve(matrix1, b ))
Editor is loading...