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

Заменить прямой метод Гаусса

06.03.2012, 17:30. Показов 1339. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем сложность такая. Сделал я программу нахождение корней по Гауссу, но сказали её переделать ток, что бы в прямом ходе обойтись без переприсваивания r:=a[j,k]
Вот сижу и голову ломаю, мож кто поможет, а???
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
const n=2;
type
Matr = array[1..n,1..n] of real;
Vect = array[1..n] of real;
var a:Matr;
    b,x,d,b2:Vect;
    a2:Matr;
    i,j,m,k,z,p:integer;
    max,r,g:real;
begin
     randomize;
     for i:=1 to n do
         begin
              for j:=1 to n do
              a[i,j]:=random;
              b[i]:=random;
         end;
         a2:=a;
         b2:=b;
         for k:=1 to n do
             begin {Прямой ход}
                  b[k]:=b[k]/a[k,k];
                  for j:=n downto k do a[k,j]:=a[k,j]/a[k,k];
                  for j:=k+1 to n do
                      begin
                           r:=a[j,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 i:=1 to n do
         begin
         write('b=',b[i] );
         writeln;
         for j:=1 to n do begin
         write(a[i,j]:2:1,'  ');
 
         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('Korni:');
         for i:=1 to n do
             write('x[',i,']=',x[i]:3:2,' ');
         writeln;
         {погрешность}
         writeln;
         for i:=1 to n do
             begin
                  d[i]:=0;
             end;
         for i:=1 to n do
             begin
                  for j:=1 to n do
                      begin
                           d[i]:=d[i]+a2[i,j]*x[j];
                      end;
             end;
         max:=abs(d[1]-b2[1]);
         m:=1;
         for m:=2 to n do
             for m:=2 to n do
                 begin
                      if abs(d[i]-b2[i])>max then
                         begin
                              max:=abs(d[i]-b2[i]);
                              m:=i;
                         end;
                 end;
         writeln(max,' ',m);
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.03.2012, 17:30
Ответы с готовыми решениями:

Метод Гаусса для решения СЛАУ
Господа, начну с того, что у меня есть программа (основу, т.е. метод я брал здесь, моя работа заключалась лишь в том, чтобы разбить это на...

Метод Гаусса
ПОМОГИТЕЕ пожалуйста разобраться с программой! Я новичок в этом деле. Нужно защитить программу в преподавателя, а я не понимаю, что...

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

2
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
06.03.2012, 21:16
Цитата Сообщение от Dino_Cavallone Посмотреть сообщение
Сделал я программу
Да нифига ты ее не сделал, иначе убрать одну строчку уж точно бы смог...
Pascal
1
2
3
4
5
6
7
8
9
10
for k:=1 to n do
 begin {Прямой ход}
   b[k]:=b[k]/a[k,k];
   for j:=n downto k do a[k,j]:=a[k,j]/a[k,k];
   for j:=k+1 to n do
    begin
     for i:=k to n do a[j,i]:=a[j,i]-a[j,k]*a[k,i];
     b[j]:=b[j]-r*b[k];
    end;
 end;
0
1 / 1 / 0
Регистрация: 12.12.2011
Сообщений: 11
07.03.2012, 07:43  [ТС]
-___- знаете, я тоже могу просто взять и подставить в место r то, что мы ему присваиваем, но дело в том, что он погрешность при проверке выдает огого какую. Если при нормальной работе программы она должна быть в -14 степени, то при этой замене она не то что в минусовой степени, она получается порой больше 500. Разве такое может быть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2012, 07:43
Помогаю со студенческими работами здесь

Метод Гаусса
Нужно запрограммировать метод Гаусса,я как только начинаю понимать-пытаюсь решить и тут же сразу запутываюсь

Метод Гаусса
1. Нужно сделать вывод промежуточных матриц до вывода корней. uses crt; var a:arrayof real; b:array of real; x:array of real; ...

СЛИ метод Гаусса
Всем привет, при выполнее кода с определенными значениями(1,2,3,4,5,6,7,8,9...) вализиет 200 ошибка (деление на 0) как найти её и сделать...

Метод Гаусса для СЛАУ
Необходимо написать программу в pascal.Эта программа должна решать произвольную матрицу линейных алгебраических уравнений, размер матрици 5...

Определитель матрицы. Метод Гаусса.
Помогите пожалуйста. Админ привет. это vanHalen с вашего бывшего форума. :-) Задание: Найдите определитеь матрицы n-ого порядка методом...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через 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