Форум программистов, компьютерный форум, киберфорум
Другие языки программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 14

[Ada] Метод Якоби для решения системы линейных уравнений

30.10.2013, 19:24. Показов 1717. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, кто может, написать код на языке ADA на одну из трех тем:
1) Кусочно-линейный интеграл
2) Циклическая редукция
3) Метод Якоби для решения СЛУ (системы линейных уравнений)

Очень прошу помочь как можно скорее. До пятницы нужно сдать
Исходные данные подбираются рандомом (учесть это в программе).
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2013, 19:24
Ответы с готовыми решениями:

Метод простых итераций для решения системы линейных уравнений
помогите найти ошибку в алгоритме при вводе уравнения x+y = 2 2x-y = 7 x = 2-y; y = (7-2*x)/-1 double ...

Метод простой итерации для решения системы линейных уравнений
Здравствуйте. Помогите пожалуйста разобраться в методе простых итераций решения системы нелинейных уравнений. Мне нужно написать...

Метод Гаусса решения системы линейных алгебраических уравнений и его модификации
1. Реализовать в виде отдельной процедуры метод Гаусса решения системы линейных алгебраических уравнений. Равенство нулю ведущего элемента...

5
117 / 117 / 0
Регистрация: 27.09.2013
Сообщений: 710
30.10.2013, 19:30
Цитата Сообщение от upgr4de Посмотреть сообщение
Помогите, кто может, написать код на языке ADA на одну из трех тем:
1) Кусочно-линейный интеграл
2) Циклическая редукция
3) Метод Якоби для решения СЛУ (системы линейных уравнений)
Очень прошу помочь как можно скорее. До пятницы нужно сдать
Исходные данные подбираются рандомом (учесть это в программе).
У меня вопрос, почему люди берутся за то, что не могут выполнить? Как вообще дело до такого доходит???
Я вот знаю примерно 10 языков, но ADA, к сожалению

Если вы студент, то может выбрать другой ЯП?!

Сорри, за офтоп.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33192 / 21478 / 8231
Регистрация: 22.10.2011
Сообщений: 36,846
Записей в блоге: 11
30.10.2013, 22:01
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Code
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Float_Text_IO; use Ada.Float_Text_IO;
 
with Ada.Numerics.Discrete_Random;
with Ada.Numerics.Float_Random; use Ada.Numerics.Float_Random;
 
with Ada.Numerics.Elementary_Functions; use  Ada.Numerics.Elementary_Functions;
 
procedure Main_Jacobi is
 
   Eps : constant Float := 0.00001;
 
   type Vector is array (Natural range <>) of Float;
   type Matrix is array (Natural range <>, Natural range <>) of Float;
 
   procedure Do_Jacobi (A : Matrix; F : Vector; X : in out Vector);
   function Is_Repeatable (A : Matrix) return Boolean;
   procedure Print (mx : Matrix);
   procedure Print (vec : Vector);
 
   procedure Do_Jacobi (A : Matrix; F : Vector; X : in out Vector) is
      TX : Vector (F'Range);
      Norm : Float;
   begin
      loop
         for i in TX'Range loop
            TX (i) := -F (i);
            for g in A'Range (2) loop
               if i /= g then
                  TX (i) := TX (i) + A (i, g) * X (g);
               end if;
            end loop;
            TX (i) := TX (i) / (-A (i, i));
         end loop;
 
         Norm := abs (X (0) - TX (0));
         for h in TX'Range loop
            if abs (X (h) - TX (h)) > Norm then
               Norm := abs (X (h) - TX (h));
            end if;
            X (h) := TX (h);
         end loop;
         exit when Norm <= Eps;
      end loop;
   end Do_Jacobi;
   
   function Is_Repeatable (A : Matrix) return Boolean is
      Ek : Float := 0.0;
   begin
      for i in A'Range (1) loop
         for j in A'Range (2) loop
            if i /= j then
               Ek := Ek + ((-A (i, j)) / A (i, i)) ** 2;
            end if;
         end loop;
      end loop;
      Ada.Float_Text_IO.Put (Ek, Fore => 8, Aft => 3, Exp => 0);
      Ada.Text_IO.Put_Line ("");
      Ek := Sqrt (Ek);
      Ada.Float_Text_IO.Put (Ek, Fore => 8, Aft => 3, Exp => 0);
      Ada.Text_IO.Put_Line ("");
      return (Ek < 1.0);
   end Is_Repeatable;
   
   procedure Print (mx : Matrix) is
   begin
      for i in mx'Range (1) loop
         for j in mx'Range (2) loop
            Ada.Float_Text_IO.Put (mx (i, j), Fore => 8, Aft => 3, Exp => 0);
         end loop;
         Ada.Text_IO.Put_Line ("");
      end loop;
   end Print;
 
   procedure Print (vec : Vector) is
   begin
      for i in vec'Range loop
         Ada.Float_Text_IO.Put (vec (i), Fore => 8, Aft => 3, Exp => 0);
      end loop;
      Ada.Text_IO.Put_Line ("");
   end Print;
   
   subtype Matrix_Size_Type is Integer range 5 .. 10;
   
   package Int_Rnd is new Ada.Numerics.Discrete_Random (Result_Subtype => Matrix_Size_Type);
   use Int_Rnd;
   I_Gen : Int_Rnd.Generator;
   F_Gen : Ada.Numerics.Float_Random.Generator;
 
begin
   Reset (I_Gen);  --  Integer generator
   Reset (F_Gen);  --  Float generator
   
   declare
      n : constant Integer := Int_Rnd.Random (I_Gen);
      --  4;
      subtype Index is Integer range 0 .. n - 1;
      
      mx : Matrix (Index, Index) := (others => (others => 0.0));
      --  ((15.0, 2.0, -1.0, -1.0),
      --  (1.0, -10.0, -1.0, -2.0),
      --  (2.0, 1.0, 12.0, 1.0),
      --  (1.0, 1.0, 1.0, 11.0));
 
      res : Vector (Index) := (others => 0.0);
      --  (22.0, -14.0, -10.0, -20.0);
      
      X : Vector (Index) := (others => 0.0);
 
   begin
      for i in Index'Range loop
         res (i) := 10.0 * (0.5 - Random (F_Gen));
         for j in Index'Range loop
            mx (i, j) := 10.0 * (0.5 - Random (F_Gen));
         end loop;
      end loop;
      
      Put_Line ("Матрица : ");
      Print (mx);
      Put_Line ("Вектор-столбец : ");
      Print (res);         
      
      if Is_Repeatable (mx) then   
         Do_Jacobi (mx, res, X);
         Put_Line ("Результат : ");
         Print (X);
      else
         Put_Line ("Ek > 1 : Итерационный процесс расходится");
      end if;
   end;
   
end Main_Jacobi;
Но учти, что ты в 99.(9)% случаев будешь получать сообщение о расходящемся итерационном процессе (при случайной генерации матрицы). Реальная матрица, на которой тестировался метод, закомментирована. Мало ли что...
0
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 14
30.10.2013, 22:15  [ТС]
PetyaVasechkin, да мне то он тоже особо не интересен этот язык, в универе вот решили обучить нас...в итоге нифига не научили ничему и задания еще дают

Добавлено через 12 минут
UI, охх, ты меня выручил очень сильно. Спасибо тебе огромное. А такой вопрос : где используется этот язык и зачем он вообще нужен? Вот проходим мы его в университете, а смысла я не понимаю.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33192 / 21478 / 8231
Регистрация: 22.10.2011
Сообщений: 36,846
Записей в блоге: 11
30.10.2013, 23:11
Цитата Сообщение от upgr4de Посмотреть сообщение
где используется этот язык
Посмотри вот тут: http://www.adacore.com/customers

Цитата Сообщение от upgr4de Посмотреть сообщение
и зачем он вообще нужен?
Ну, вам-то я не знаю зачем, а вот мы на нем, скажем, пишем свое ПО.
1
 Аватар для nullxdth
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
31.10.2013, 17:41
Цитата Сообщение от UI Посмотреть сообщение
Ну, вам-то я не знаю зачем, а вот мы на нем, скажем, пишем свое ПО.
Забавно. Мне очень нравится Ada как язык.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2013, 17:41
Помогаю со студенческими работами здесь

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

Страница для решения системы линейных уравнений
Доброго времени суток. Я пишу web-приложение в netbeans для решения системы линейных алгебраических уравнений одним из методов:...

Метод Гаусса для решения линейных уравнений
Мож у когото завалялся, буду благодарен.

Программа для решения системы двух линейных уравнений
Помогите, пожалуйста, решить задачу. Составьте программу для решения системы двух линейных уравнений: {ax+by=c {dx+ey=f в...

Составьте программу для решения системы линейных уравнений
Не могу сделать прогу в поскали кто сделает огромное спасибо Составьте программу для решения системы двух линейных уравнений: ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru