0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 7
1

Решение уравнения методом Гаусса

29.10.2010, 21:44. Показов 5051. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
program gauss;
uses crt;
var s:real; i,j,k,n:integer;
x: array [1..10] of real; a: array [1..10,1..11] of real;
begin
clrscr;
write ('укажите число уравнений n=');
readln (n);
writeln ('задайте значения коэффициентов системы');
for i:=1 to n do
for j:=1 to n do
begin
write ('A(',i:2,',',j:2,')=');
readln (a[i,j]);
end;   writeln;
for k:=1 to n-1 do
begin
for j:=k+1 to n+1 do
a[i,j]:=a[k,j]/a[k,k];
a[k,k]:=1;
for i:=k+1 to n do
begin
for j:=k+1 to n+1 do
a[i,j]:=a[i,j]-a[k,j]*a[i,k];
a[i,k]:=0;
end;
end;
if abs(a[n,n])> 1e-50 then begin
x[n]:=a[n,n+1]/a[n,n];
for i:=n-1 downto 1 do
begin
s:=0;
for j:=i+1 to n do s:=s+a[i,j]*x[j];
x[i]:=a[i,n+1]-s;
end;
writeln ('решение системы');
for i:=1 to n do
begin
writeln ('x(',i:2,')=',x[i]:2:5);
end;
end
else
writeln ('система решения не имеет ');
end.
корни все равны 0 а математически решив не так
найти ошибку заранее спасибо ))))))))))))))))
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2010, 21:44
Ответы с готовыми решениями:

Решение нелинейного уравнения и системы методом Гаусса
методы решения алгеброических и трансцендентных уравнений Х+Х^½+X^¹/3-2,5=0 отрезок...

Решение СЛАУ методом Гаусса
Решить задание методом Гауса и сложить, и наладить програму на языке Pascal которая реализует...

Решение СЛАУ Методом Гаусса из файла.
Доброго времени суток! Нужно написать программу решения СЛАУ Методом Гаусса, но только чтобы...

Решение системы линейных уравнений методом Гаусса
Доброго времени суток. Помогите решить две как мне сказали простых задачи. Нужен код. и результат....

3
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.10.2010, 22:15 2
tephnut10, Вообще-то у систем кроме коэффициентов есть еще и свободные члены, которые ты в программу не вводишь...
0
0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 7
30.10.2010, 17:21  [ТС] 3
все равно корни 0
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
program gauss;
uses crt;
var s:real; i,j,k,n:integer;
x: array [1..10] of real; a: array [1..10,1..11] of real;
begin
clrscr;
write ('укажите число уравнений n=');
readln (n);
writeln ('задайте значения коэффициентов системы');
for i:=1 to n do
for j:=1 to n +1 do
begin
write ('A(',i:2,',',j:2,')=');
readln (a[i,j]);
end;   writeln;
for k:=1 to n-1 do
begin
for j:=k+1 to n+1 do
a[i,j]:=a[k,j]/a[k,k];
a[k,k]:=1;
for i:=k+1 to n do
begin
for j:=k+1 to n+1 do
a[i,j]:=a[i,j]-a[k,j]*a[i,k];
a[i,k]:=0;
end;
end;
if abs(a[n,n])> 1e-50 then begin
x[n]:=a[n,n+1]/a[n,n];
for i:=n-1 downto 1 do
begin
s:=0;
for j:=i+1 to n do s:=s+a[i,j]*x[j];
x[i]:=a[i,n+1]-s;
end;
writeln ('решение системы');
for i:=1 to n do
begin
writeln ('x(',i:2,')=',x[i]:2:5);
end;
end;
else
writeln ('система решения не имеет ');
end.
0
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.10.2010, 17:56 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

tephnut10, Ты неправильно обрабатываешь свободные члены вместе с коэффициентами в одной матрице, их нужно отдельно.
И не все корни у тебя ноли, а один, хотя все равно неверно считает.
Вот посмотри мой код, как-то писал, добавь только точность.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
uses crt;
var a:array[1..20,1..20] of real;
    b:array[1..20] of real;
    x:array[1..20] of real;
    n,i,j,k:integer;z,r,g:real;
begin
clrscr;
write('Введите количество уравнений n=');
readln(n);
writeln('Введите коэффициенты системы и свободные члены');
for i:=1 to n do
for j:=1 to n+1 do
read(A[i,j]);
readln;
clrscr;
writeln('Матрица коэффициентов и свободных членов');
for i:=1 to n do
  begin
    for j:=1 to n+1 do
    write(A[i,j]:6:2);
    writeln;
  end;
readln;
//прямой ход
for i:=1 to n do
b[i]:=a[i,n+1];   //свободные члены в отдельный массив
for k:=1 to n do
 begin
  for j:=k+1 to n do
    begin
     r:=a[j,k]/a[k,k]; //коэффициент пересчета
     for i:=k to n do
     a[j,i]:=a[j,i]-r*a[k,i]; //пересчитываем коэффициенты
     b[j]:=b[j]-r*b[k]; //свободные члены
    end;
 end;
 //обратный ход
for k:=n downto 1 do
 begin
  r:=0;
  for j:=k+1 to n do
   begin
    g:=a[k,j]*x[j];
    r:=r+g;
   end;
  x[k]:=(b[k]-r)/a[k,k];
 end;
writeln('Корни системы:');
for i:=1 to n do
write('x[',i,']=',x[i]:0:2,'   ');
readln;
end.
1
30.10.2010, 17:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2010, 17:56
Помогаю со студенческими работами здесь

Решение системы линейных уравнений методом Гаусса
Решить систему линейного уравнения методом Гаусса в паскаль ...

Прокомментировать решение задачи Дирихле методом Гаусса-Зейделя
Ребят, помогите пожалуйста, завтра нужно преподавателю объяснить данную программу: Это решение...

Решение системы линейных алгебраических уравнений методом Гаусса
Здравствуйте, прошу помощи в решении в паскале методом Гаусса 13x1 + x2 + 0.4x3 + 0.6x4 + 0.11x5...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru