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

Решение системы трех линейных уравнений с тремя неизвестными методом Гаусса

26.10.2014, 16:28. Показов 4600. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста составить вот такую программу
решения системы трех линейных уравнений с тремя неизвестными методом Гаусса.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2014, 16:28
Ответы с готовыми решениями:

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

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

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

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

1
Фрилансер
3418 / 2815 / 3000
Регистрация: 08.02.2012
Сообщений: 8,574
Записей в блоге: 1
27.10.2014, 13:44 2
Лучший ответ Сообщение было отмечено ТаНюШкЕ как решение

Решение

Ввод матрицы вручную или каким либо другим способом сами сделаете)
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Const nmax=10;
Type mas=array[1..nmax] of real;
     matr=array[1..nmax] of mas;
Var A:matr;
    b,x:mas;
    i,j,n:integer;
Procedure Gaus(A:matr;B:mas;Var X:mas);
Var i,j,k,imax:integer;
    temp,pr,sum:real;
Begin
    For k:=1 to n-1 do
    Begin
     imax:=k;
     For i:=k+1 to n do
      if abs(A[i][k])>abs(A[imax][k]) then imax:=i;
     if imax<>k then
     Begin
       For j:=1 to n do
       Begin
         temp:=A[k][j];
         A[k][j]:=A[imax][j];
         A[imax][j]:=temp;
       End;
       temp:=B[k];
       B[k]:=B[imax];
       B[imax]:=temp;
     End;
     For i:=k+1 to n do
     Begin
        pr:=a[i][k]/a[k][k];
        For j:=1 to n do
         a[i][j]:=a[i][j]-a[k][j]*pr;
        b[i]:=b[i]-b[k]*pr;
     End;
     End;
     x[n]:=b[n]/a[n][n];
     For k:=n-1 downto 1 do
     Begin
        sum:=0;
        For i:=k+1 to n do
         sum:=sum+x[i]*a[k][i];
        x[k]:=(b[k]-sum)/a[k][k];
     End;
End;
Begin
    Repeat
     write('Размерность матрицы 1<=N<=',nmax,': ');readln(n);
    Until n in [1..nmax];
    writeln('Матрица A');
    For i:=1 to n do
    Begin
      For j:=1 to n do
      Begin
        A[i][j]:=random(10)+1;
        write(A[i][j]:6:2);
        B[i]:=B[i]+A[i][j];
      End;
      writeln(' | ',B[i]:6:2);
    End;
    Gaus(A,B,X);
    write('X = (',X[1]:6:2);
    For i:=2 to n do
     write(';',X[i]:6:2);
    writeln('  )');
    readln;
End.
Добавлено через 11 минут
Вот с ручным вводом и проверкой на вырожденность
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Const nmax=10;
Type mas=array[1..nmax] of real;
     matr=array[1..nmax] of mas;
Var A:matr;
    b,x:mas;
    i,j,n:integer;
    flag:boolean;
Procedure Gaus(A:matr;B:mas;Var X:mas;Var flag:boolean);
Var i,j,k,imax:integer;
    temp,pr,sum:real;
Begin
    flag:=true;
    For k:=1 to n-1 do
    Begin
     imax:=k;
     For i:=k+1 to n do
      if abs(A[i][k])>abs(A[imax][k]) then imax:=i;
     if imax<>k then
     Begin
       For j:=1 to n do
       Begin
         temp:=A[k][j];
         A[k][j]:=A[imax][j];
         A[imax][j]:=temp;
       End;
       temp:=B[k];
       B[k]:=B[imax];
       B[imax]:=temp;
     End;
     For i:=k+1 to n do
     Begin
        pr:=a[i][k]/a[k][k];
        For j:=1 to n do
         a[i][j]:=a[i][j]-a[k][j]*pr;
        b[i]:=b[i]-b[k]*pr;
        if a[i][i]=0 then
        Begin
          flag:=false;
          Exit;
        End;
     End;
     End;
     x[n]:=b[n]/a[n][n];
     For k:=n-1 downto 1 do
     Begin
        sum:=0;
        For i:=k+1 to n do
         sum:=sum+x[i]*a[k][i];
        x[k]:=(b[k]-sum)/a[k][k];
     End;
End;
Begin
    Repeat
     write('Введите размерность 1<=N<=',nmax,': ');readln(n);
    Until n in [1..nmax];
    For i:=1 to n do
     For j:=1 to n do
     Begin
       write('A[',i,',',j,'] = ');
       readln(A[i][j]);
     End;
    For i:=1 to n do
    Begin
       write('B[',i,'] = ');
       readln(B[i]);
    End;
    writeln('Ìàòðèöà A');
    For i:=1 to n do
    Begin
      For j:=1 to n do
       write(A[i][j]:6:2);
      writeln(' | ',B[i]:6:2);
    End;
    Gaus(A,B,X,flag);
    if flag then
    Begin
      write('X = (',X[1]:6:2);
      For i:=2 to n do
       write(';',X[i]:6:2);
      writeln('  )');
    End
    else writeln('Система вырождена');
    readln;
End.
0
27.10.2014, 13:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2014, 13:44
Помогаю со студенческими работами здесь

Для системы линейных уравнений найти решение методом Гаусса
Для системы линейных уравнений найти решение методом Гаусса (разработать алгоритм-прога на паскале)...

Решение по методу Гаусса системы линейных уравнений
Написать программу решения по методу Гаусса системы линейных уравнений 4х1+0,24х2-0,08х3=8...

Решение системы линейных уравнений методом Гаусса
решить систему линейных уравнений вида Ax=b матрица коэффициентов системы A|| столбец свободных...

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


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

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

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