Хорошо, для моего класса численных методов у меня есть следующий вопрос:
Напишите функцию Python для решения Ax = b путем обратной замены, где A - верхняя треугольная невырожденная матрица.Код MATLAB для этого приведен на стр. 190, который вы можете использовать в качестве руководства для псевдокода, если хотите.Функция должна принимать в качестве входных данных A и b и возвращать x.Ваша функция не должна проверять, что A неособо.То есть, предположим, что в вашу функцию будет передан только неособой А.
Код MATLAB, на который он ссылается:фрагмент с верхней треугольной тестовой матрицей (не уверен, что она неособая! Как мне проверить единственность?):
from scipy import mat
c=[3,2,1]
U=([[6,5,1],[0,1,7],[0,0,2]])
a=0
x=[]
while a<3:
x.append(1)
a=a+1
n=3
i=n-1
x[n-1]=c[n-1]/U[n-1][n-1]
while i>1:
x[i]=c[i]
j=i+1
while j<n-1:
x[i]=x[i]-U[i][j]*x[j];
x[i]=x[i]/U[i][i]
i=i-1
print mat(x)
Ответ, который я получаю, - [[1 1 0]] для xЯ не уверен, правильно ли я это делаю.Я предполагаю, что это неправильно и не могу понять, что делать дальше.Любые подсказки?