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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2008, 21:27   #1
student77rus
Новичок
Джуниор
 
Регистрация: 12.11.2008
Сообщений: 2
По умолчанию паскаль система линейных уравнений

Здравствуйте, возникла проблема с решением задачи по паскалю помогите пожалуйста.
Условие:
Решить систему линейных уравнений методом отраженияю.

В книге нашел пример решения на бейсике, но его вообще не знаю да и алгоритм непонятный
Изображения
Тип файла: jpg система.jpg (10.7 Кб, 149 просмотров)
Вложения
Тип файла: rar Метод отражения.rar (203.2 Кб, 17 просмотров)
student77rus вне форума Ответить с цитированием
Старый 19.11.2008, 21:48   #2
student77rus
Новичок
Джуниор
 
Регистрация: 12.11.2008
Сообщений: 2
По умолчанию

Решил задачу сам, выложу код может кому пригодится.

program otragenie;
uses crt;
var a:array [0..10,0..10] of real;
b:array [1..10] of real;
i,j,k,n:integer;
y,f,l,d,c,e,ak,sk,bk:real;

begin
clrscr;
write ('Введите число уравнений '); read (n);
writeln ('Введите коэффициенты уравнений:');
for i:=1 to n do
for j:=1 to n do
begin
write ('a[',i,',',j,']?');
read (a[i,j]);
end;
writeln ('Введите свободные члены:');
for i:=1 to n do
begin
write ('b[',i,']'); read (a[i,0])
end;
for k:=1 to n do
begin
ak:=0;
for i:=k to n do
begin
ak:=ak+a[i,k]*a[i,k];
end;
sk:=(-1)*a[k,k]*sqrt(ak);
bk:=ak+a[k,k]*sk;
for i:=k to n do
begin
c:=0;
for j:=k to n do
begin
c:=c+a[j,i]*a[j,k]
end;
a[0,i]:=(c+sk*a[k,i])/bk;
end;
d:=0;
for j:=k to n do
begin
d:=d+a[j,0]*a[j,k]
end;
e:=(d+sk*a[k,0])/bk;
for i:=k to n do
begin
f:=a[i,k];
if i=k then f:=f+sk;
for j:=k to n do
begin
a[i,j]:=a[i,j]-a[0,j]*f
end;
a[i,0]:=a[i,0]-f*e
end;
end;
for k:=n downto 1 do
begin
l:=0;
for i:=k+1 to n do
begin
l:=l+a[k,i]*a[i,0]
end;
a[k,0]:=(a[k,0]-l)/a[k,k]
end;
writeln ('Результаты:');
for i:=1 to n do
begin
writeln ('x[',i,'] ',a[i,0]:10:4)
end;
writeln('Для выхода нажмите Enter');
readkey;
end.
student77rus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Система линейных уравнений с тремя неизвестными, решение их матричным способом. svender Помощь студентам 8 30.05.2009 13:32
Помогите,плиз! Задача на паскль! Решение линейных уравнений методом Гаусса! vdv08 Помощь студентам 4 21.10.2008 23:33
Решить систему линейных уравнений, которая содержит до 200 переменных, методом Гаусса. Etlau Помощь студентам 5 05.05.2008 07:50
Три квадратных уравнения. Найти минимальное значение среди действительных корней этих уравнений. Паскаль. GE076 Помощь студентам 2 17.12.2007 20:41