Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2011, 00:45   #1
Klik_1602
Пользователь
 
Аватар для Klik_1602
 
Регистрация: 06.09.2010
Сообщений: 51
Восклицание Решение СЛАУ методом Гауса на Паскале

Помогите решить задачу на Паскале, вот текст:
]Выполните «обратный ход» в решении системы линейных алгебраических уравнений методом Гаусса. Вводите только элементы матрицы системы, стоящие выше главной диагонали, и вектор свободных членов.

Если не трудно, можете объяснить или кинуть ссылку, где объяснено, что такое обратный и прямой ход?

заранее спасибо
Klik_1602 вне форума Ответить с цитированием
Старый 04.01.2011, 01:25   #2
k0tone
Пользователь
 
Аватар для k0tone
 
Регистрация: 09.11.2010
Сообщений: 99
По умолчанию

Обратный ход, заключается в решении треугольной системы. Из последнего уравнения находим x[m]. По найденному x[m] из (m-1) уравнения находим x[m-1]. Затем по x[m-1] и x[m] из (m-2) уравнения находим x[m-2]. Процесс продолжаем, пока не найдем x[1] из первого уравнения.

Источник:
http://www.mathelp.net/MA5.htm
Если я вам помог - нажмите на весы пот аватаркой!
k0tone вне форума Ответить с цитированием
Старый 04.01.2011, 21:52   #3
Klik_1602
Пользователь
 
Аватар для Klik_1602
 
Регистрация: 06.09.2010
Сообщений: 51
По умолчанию

подскажите плиз, где ошибка в коде?
program L7_23;
uses
crt;
var
f:text;
n,i,j:integer;
h:real;
x:array[1..10] of real;
b:array[1..10] of real;
a:array[1..10,1..10] of real;
procedure vvodmatr(n,i,j:integer; var a:array[1..10,1..10] of real);
begin
assign(f, 'L7_23.txt');
reset(f);
for i:=1 to n do
begin
for j:=1 to n do
read (f, a[i,j]);
readln(f);
end;
close(f);
end;
procedure vivodmatr(n,i,j:integer; var a:array[1..10,1..10] of real);
begin
for i:=1 to n do
begin
for j:=1 to n do
write (a[i,j]:1);
writeln;
end;
end;
procedure diagonal(n,i,j:integer; var a:array[1..10,1..10] of real);
begin
for j:=1 to n do
begin
for i:=1 to n do
if (j<i) then
a[i,j]:=0
else
if (i=j) then
a[i,j]:=1;
end;
writeln;
writeln;
writeln;
for i:=1 to n do
begin
for j:=1 to n do
write (a[i,j]:1);
writeln;
end;
end;
procedure stroka(n,i:integer; var b:array[1..10] of real);
begin
reset (f);
for i:=1 to n do
read (f, b[i]);
readln(f);
close(f);
writeln;
writeln;
writeln;
for i:=1 to n do
write (b[i]:1);
writeln;
end;
procedure korni(n,i,j:integer; h:real;
x:array[1..10] of real;
b:array[1..10] of real;
a:array[1..10,1..10] of real);
begin
for i:=n downto 1 do begin
h:=b[i];
for j:=i+1 to n do
h:=h-x[j]*a[i,j];
x[i]:=h/a[i,i];
end;
writeln;
writeln;
writeln;
writeln('Vivod korneilя');
for i:=1 to n do writeln('x(',i,')=',x[i]:10:5);
end;
begin
clrscr;
write('Vvedite chislo uravnenij: ');
read(n);
vvodmatr(n,i,j,a);
vivodmatr(n,i,j,a);
diagonal(n,i,j,a);
stroka(n,i,b);
korni(n,i,j,h,x,b,a);
end.
Klik_1602 вне форума Ответить с цитированием
Старый 04.01.2011, 22:00   #4
Klik_1602
Пользователь
 
Аватар для Klik_1602
 
Регистрация: 06.09.2010
Сообщений: 51
По умолчанию

если не трудно, подскажите как исправить ошибку
Klik_1602 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
решение слау методом гаусса subarimpra Помощь студентам 0 31.10.2010 15:26
Решение СЛАУ методом окаймления (теория) ROD Свободное общение 0 22.09.2010 23:29
Решение СЛАУ методом обратной матрицы Lazio Фриланс 8 12.09.2010 15:40
решение задач методом Гауса (Delphi) rozalija Помощь студентам 1 18.09.2009 23:28