Первый шаг в алгоритме должен выглядеть следующим образом?Правильно ли это первый шаг этого псевдокода исключения Гаусса?
// find the element with largest absolute value in col p and below row p-1
Таким образом, вместо того, чтобы все col p только его часть.
Алгоритм:
for p = 1 to n do
// find the element with largest absolute value in col p <-first step
// if max is zero, stop!
// if max element not in row p, swap rows
// set pivot element to 1
multiply row p by 1/A[p][p]
// clear lower column entries
for r = p+1 to n do
subtract row p times A[r,p] from current row,
so that element in pivot column becomes 0
// do backwards substitution
for row = n-1 to 1
for col = row+1 to n
// subtract out known quantities
b[row] = b[row] - A[row][col]*b[col]
РЕДАКТИРОВАТЬ:
Мы имеем матрицы А. Алгоритм начинается с первого шага с р = 3. Мой вопрос: должен ли я выбрать самый большой элемент из {5,3,2, -1} (все элементы od col p) или {2, -1} (только элементы из col p, которые находятся ниже строки p-1)?
[1 2 5 3]
[0 1 3 4]
[0 0 2 2] = A
[0 0 -1 1]
«Найти (что-то не равное нулю) в столбце« p »ниже строки' p-1' ». Да, это шаг в устранении Гаусса. Это ваш реальный вопрос? Или вы хотите выяснить, правильно ли ваш алгоритм реализует его? (В этом случае вам нужно реализовать прокомментированные строки.) – Teepeemm
Я знаю все этапы устранения Гаусса. Поскольку я хочу реализовать алгоритм в качестве программы, ему нужен какой-то трюк из-за проблемы с производительностью. Вот почему алгоритм выбирает самый большой элемент из col p. Я не уверен, что это правильно, потому что в этом случае алгоритм может поменять местами с помощью элемента pivot на предыдущем шаге. Я добавляю более конкретный вопрос. Английский не мой родной язык, так извините за это :) – ldurniat