Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 25.04.2010, 07:16   #1 (permalink)
sunbrigt
Member
 
Регистрация: 20.04.2010
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Метод Гаусса.

Помогите! Решение систем с двухдиагональной матрицей по Гауссу.
sunbrigt вне форума   Ответить с цитированием

Старый 25.04.2010, 07:16
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Рекомендую обратить внимание на данные топики, в них могут быть полезные ответы

Пушка Гаусса, пара вопросов
Пушка Гаусса: емкость конденсаторов
Метод Ньютона и Хука-Дживса
Метод шифрования Rot 66

Старый 25.04.2010, 09:52   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от sunbrigt Посмотреть сообщение
Помогите! Решение систем с двухдиагональной матрицей по Гауссу.
С двухдиагональной? И всего-то? Ну ладно. Будем считать отличными от нуля ВСЕ элементы главной диагонали и (хотя бы некоторые) элементы верхней прилегающей диагонали. Обозначения: 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.
Здесь язык - Паскаль. Надеюсь, что устроит. Жаль, однако, что Вы не снизошли до указания требуемого языка.
Vladimir_S вне форума   Ответить с цитированием
Старый 26.04.2010, 09:54   #3 (permalink)
sunbrigt
Member
 
Регистрация: 20.04.2010
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо, язык как раз паскаль и нужен был. Но почему то при нахождении вектора невязки нули не получаются.
sunbrigt вне форума   Ответить с цитированием
Старый 26.04.2010, 10:05   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от sunbrigt Посмотреть сообщение
Спасибо, язык как раз паскаль и нужен был. Но почему то при нахождении вектора невязки нули не получаются.
Так... Ну тогда, похоже, мы друг друга не поняли. Я-то считал, что метод Гаусса - это просто приведение матрицы к треугольному виду (для двухдиагональной не требуется) и затем последовательное нахождение Xi, начиная с нижнего правого угла. Но, судя по "вектору невязки", Вам нужны итерационные процедуры. Тут, увы, сходу не смогу. Будет время - разберусь. Но не сразу.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 02:40.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.