25.04.2010, 07:16 | #1 (permalink) |
Member
Регистрация: 20.04.2010
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Метод Гаусса.
|
25.04.2010, 07:16 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Рекомендую обратить внимание на данные топики, в них могут быть полезные ответы Пушка Гаусса, пара вопросов Пушка Гаусса: емкость конденсаторов Метод Ньютона и Хука-Дживса Метод шифрования Rot 66 |
25.04.2010, 09:52 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
С двухдиагональной? И всего-то? Ну ладно. Будем считать отличными от нуля ВСЕ элементы главной диагонали и (хотя бы некоторые) элементы верхней прилегающей диагонали. Обозначения: N - порядок матрицы коэффициентов, {A} - матрица коэффициентов, {X} - вектор искомых неизвестных, {C}- вектор свободных членов.
Код:
CONST N=5; VAR A:Array[1..N,1..N] of REAL; X,C:Array[1..N] of REAL; i,j:Integer; BEGIN For i:=1 to N do For j:=1 to N do A[i,j]:=0; For i:=1 to N-1 do For j:=i to i+1 do begin Write('A[',i,',',j,']= '); ReadLn(A[i,j]); end; Write('A[',N,',',N,']= '); ReadLn(A[N,N]); WriteLn; For i:=1 to N do begin Write('C[',i,']= '); ReadLn(C[i]); end; WriteLn; X[N]:=C[N]/A[N,N]; For i:=N-1 downto 1 do X[i]:=(C[i]-A[i,i+1]*X[i+1])/A[i,i]; For i:=1 to N do WriteLn('X[',i,']= ',X[i]); ReadLn; END. |
26.04.2010, 10:05 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Так... Ну тогда, похоже, мы друг друга не поняли. Я-то считал, что метод Гаусса - это просто приведение матрицы к треугольному виду (для двухдиагональной не требуется) и затем последовательное нахождение Xi, начиная с нижнего правого угла. Но, судя по "вектору невязки", Вам нужны итерационные процедуры. Тут, увы, сходу не смогу. Будет время - разберусь. Но не сразу.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|