Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 19.06.2010
Сообщений: 4

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

19.06.2010, 09:49. Показов 2082. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Дана задачка по численным: "Решить систему линейных уравнений методом Гаусса"

У меня есть похожий код программы, аналогичный, только система по меньше. Пытался переделать, но не получается, прошу помощи=)

Аналогичный код(и система ниже)
program GAUSS;

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
85
86
uses CRT;
 
var i,j,k,n,i1,j1,m:integer;
    x:array[1..4] of real;        {здесь в коде надо поменять параметр массива на[1..5]}
    a,c:array[1..4,1..5] of real;  {здесь в коде надо поменять параметр массивов на[1..5,1..6]}
    f:text;
    buf:real;
{---------------------------------------------------------------------------}
procedure INPUT;
begin
  assign(f,'GAUSS.txt');
  reset(f);
  writeln('Metod GAUSSA');
  writeln;
  write('Vvedite poryadok: n=');
  readln(n);
  writeln;
  writeln('Vvedite koeffizienti sistemi');
  writeln;
  while not eof(f) do
  begin
    for i:=1 to n do
    begin
      for j:=1 to n+1 do
        read(f,a[i,j]);
      readln(f);
    end;
  end;
  close(f);
end;
{---------------------------------------------------------------------------}
procedure TREAT;
begin
  for k:=1 to n do
  begin
    if a[k,k]=0 then
    begin
      for m:=k to n+1 do
      begin
        buf:=a[k,m];
        a[k,m]:=a[k+1,m];
        a[k+1,m]:=buf;
      end;
    end;
    for i:=k to n do
      for j:=k to n+1 do
        if i=k then
        c[k,j]:=-a[k,j]/a[k,k]
        else c[i,j]:=a[i,j]+a[i,k]*c[k,j];
    if k<>n then
      for i1:=k+1 to n do for j1:=k+1 to n+1 do a[i1,j1]:=c[i1,j1];
  end;
end;
{---------------------------------------------------------------------------}
procedure OUTPUT;
begin
  for i:=1 to n do
  begin
    for j:=1 to n+1 do
      write(c[i,j]:7:3,' ');
    writeln;
  end;
  writeln;
  for i:=n downto 1 do
  begin
    x[i]:=c[i,n+1];
    for j:=i+1 to n do
      x[i]:=c[i,j]*x[j]+x[i];
  end;
  for i:=1 to n do writeln('x',i,'=',x[i]:7:3);
end;
{---------------------------------------------------------------------------}
begin
  clrscr;
  INPUT;
  for i:=1 to n do
    begin
      for j:=1 to n+1 do
        write(a[i,j]:7:2);
      writeln;
    end;
  writeln;
  TREAT;
  OUTPUT;
  readln;
end.
0.17 -0.13 -0.11 -0.12 -0.22
1 -1 -0.13 0.13 -0.11
0.35 0.33 0.12 0.13 -0.12
0.13 0.11 -0.13 -0.11 -1
__

Мне нужно, чтобы программа работала для системы:

38,493 7,8 0,1 2,5 3,4 0,8
8,085 2,3 -10,8 1,8 2,1 2,6
58,74 4,5 2,3 9,8 2,7 0,3
19,581 0,2 0,4 1,7 2,5 0,2
47,052 2,5 0,3 0,2 2,5 5,5
__

Добавлено через 11 минут
Я чет не туда написал, создам тему=)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.06.2010, 09:49
Ответы с готовыми решениями:

Решить систему линейных уравнений методом Гаусса, выполнить проверку.
Решить на Паскале Решить систему линейных уравнений методом Гаусса, выполнить проверку. 3,9х1+0,2х2+1,3х3+0,8х4+0,6х5=16,8 ...

Методом Гаусса решить системы линейных алгебраических уравнений
1. Методом Гаусса решить системы линейных алгебраических уравнений Ax=b. матрица А размера 3 на 3,

Решить систему алгебраических уравнений методом Гаусса
Пожалуйста, помогите решить две задачи в Pascal. 1. Найти значение выражения: ((D34+B34)*C43)Т+Е33 2. Решить систему...

5
6 / 6 / 1
Регистрация: 27.12.2009
Сообщений: 14
19.06.2010, 10:14
Я конечно не гуру но попробуй так
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
program Tugoplav2;
uses crt;
type
    Mat=array [1..51,1..52] of real;
    MatA=array [1..51] of real;
var i,j,n,l,str,stlb:integer;
    A0,A:Mat;
    p:array [1..51] of integer;
    Ans,dAns:MatA;
    S,M:real;
 
begin
clrscr;
     write ('vvesti kolichestvo strok:');
     readln (str);
     write ('vvesti kolichestvo stolbcov:');
     readln (stlb);
     writeln ('vvod matrici:');
     for i:=1 to str do begin
         for j:=1 to stlb do begin
             if j<>stlb then begin
                write ('vvesti element matrici a(',i,';',j,'):');
                readln (A[i,j]);
                A0[i,j]:=A[i,j];
             end
                else begin
                     write ('vvesti element matrici b',i,':');
                     readln (A[i,j]);
                     A0[i,j]:=A[i,j];
                end;
         end;
         p[i]:=i
     end;
     for n:=1 to str do begin
         M:=A0[p[n],p[n]];
         for i:=n to str do
             if abs(A0[p[i],n])>=abs(M) then begin
                M:=A0[p[i],n];
                l:=p[n];
                p[n]:=i;
                p[i]:=l
             end;
         for j:=n+1 to stlb do
             A0[p[n],j]:=A0[p[n],j]/M;
         for i:=n+1 to str do
             for j:=n+1 to stlb do
                 A0[p[i],j]:=A0[p[i],j]+A0[p[n],j]*(-A0[p[i],n])
     end;
     Ans[n]:=A0[p[n],n+1];
     for i:=n-1 downto 1 do begin
         S:=0;
         for j:=n downto i+1 do
             S:=S+A0[p[i],j]*Ans[j];
         Ans[i]:=A0[p[i],stlb]-S
     end;
     for i:=1 to str do
         writeln ('x',i,'=',Ans[i]:3:3);
     for i:=1 to str do begin
            for j:=1 to str do
                dAns[i]:=dAns[i]+Ans[j]*A[i,j];
     end;
     writeln;
     for i:=1 to str do
         writeln ('proverka b',i,'=',dAns[i]:3:3);
     writeln;
     readln;
end.
0
0 / 0 / 0
Регистрация: 19.06.2010
Сообщений: 4
19.06.2010, 17:55  [ТС]
Спасибо! То что надо
0
 Аватар для MAZUR777
610 / 135 / 132
Регистрация: 15.04.2010
Сообщений: 554
19.06.2010, 18:13
Renat а как ей пользоваться напиши пож инструкцию
0
0 / 0 / 0
Регистрация: 19.06.2010
Сообщений: 4
19.06.2010, 18:29  [ТС]
Аха, попозже... Только точнее опиши чё те надо
0
6 / 6 / 1
Регистрация: 27.12.2009
Сообщений: 14
19.06.2010, 20:54
Цитата Сообщение от MAZUR777 Посмотреть сообщение
Renat а как ей пользоваться напиши пож инструкцию
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
program Tugoplav2;
uses crt;
type
    Mat=array [1..51,1..52] of real;
    MatA=array [1..51] of real;
var i,j,n,l,str,stlb:integer;
    A0,A:Mat;
    p:array [1..51] of integer;
    Ans,dAns:MatA;
    S,M:real;
 
begin
clrscr;
     write ('vvesti kolichestvo strok:');
     readln (str);
     write ('vvesti kolichestvo stolbcov:');
     readln (stlb);
     writeln ('vvod matrici:');
     for i:=1 to str do begin
         for j:=1 to stlb do begin
             if j<>stlb then begin
                write ('vvesti element matrici a(',i,';',j,'):');
                readln (A[i,j]);
                A0[i,j]:=A[i,j];
             end
                else begin
                     write ('vvesti element matrici b',i,':');
                     readln (A[i,j]);
                     A0[i,j]:=A[i,j];
                end;
         end;
         p[i]:=i
     end;
     {Прямой ход}
     for n:=1 to str do begin
         M:=A0[p[n],p[n]];
         {Поиск максимального гл эелемента и мнимая перестановка строк}
         for i:=n to str do
             if abs(A0[p[i],n])>=abs(M) then begin
                M:=A0[p[i],n];
                l:=p[n];
                p[n]:=i;
                p[i]:=l
             end;
         {Приведение к треугольному виду}
         for j:=n+1 to stlb do
             A0[p[n],j]:=A0[p[n],j]/M;
         for i:=n+1 to str do
             for j:=n+1 to stlb do
                 A0[p[i],j]:=A0[p[i],j]+A0[p[n],j]*(-A0[p[i],n])
     end;
     {Обратный ход}
     Ans[n]:=A0[p[n],n+1];
     for i:=n-1 downto 1 do begin
         S:=0;
         for j:=n downto i+1 do
             S:=S+A0[p[i],j]*Ans[j];
         Ans[i]:=A0[p[i],stlb]-S
     end;
     {Вывод ответа}
     for i:=1 to str do
         writeln ('x',i,'=',Ans[i]:3:3);
     {Проверка результата}
     for i:=1 to str do begin
            for j:=1 to str do
                dAns[i]:=dAns[i]+Ans[j]*A[i,j];
     end;
     writeln;
     for i:=1 to str do
         writeln ('proverka b',i,'=',dAns[i]:3:3);
     writeln;
     readln;
end.
При вводе строк и столбцов обрати внимание на границы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.06.2010, 20:54
Помогаю со студенческими работами здесь

Решить систему линейных уравнений
Розвязати систему двох лінійних рівнянь з двома невідомими за формулами Крамера Знайти суму трицифрових чисел, які мають в своему...

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru