Характеристика алгоритмів для вирішення поставленої задачі

Опис існуючих алгоритмів. Приведення матриці системи до трикутного вигляду в основі методу Гаусса, його зворотній хід. Сутність методів Гаусса-Зейделя, Зейделя, Якобі. Програмна реалізація алгоритму (послідовна програма). Розробка паралельного алгоритму.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 28.07.2017
Размер файла 373,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Зміст

  • 1. Огляд існуючих алгоритмів
  • 1.1 Опис алгоритмів для вирішення поставленої задачі
  • 1.1.1 Метод Гаусса
  • 1.1.2 Метод Гаусса-Зейделя
  • 1.1.3 Метод Зейделя
  • 1.1.4 Метод Якобі
  • 1.2 Програмна реалізація алгоритму (послідовна програма)
  • 1.3 Аналіз поставленої задачі на доцільність розпаралелювання
  • 2. Розробка паралельного алгоритму
  • 2.1 Виконання основних етапів побудови паралельного алгоритму
  • 2.2 Алгоритм роботи потоків
  • Додатки

1. Огляд існуючих алгоритмів

1.1 Опис алгоритмів для вирішення поставленої задачі

1.1.1 Метод Гаусса

Він оснований на приведенні матриці системи до трикутного вигляду. Це досягається послідовним виключенням невідомих з рівнянь системи. Спочатку за допомогою першого рівняння виключається зі всіх наступних рівнянь системи. Потім за допомогою другого рівняння виключається з третього і всіх наступних рівнянь. Цей процес, який називається прямим ходом метода Гаусса, продовжується до тих пір, поки в лівій частині останнього (-го) рівняння не залишиться лише член з невідомим , тобто матриця системи не буде приведена до трикутного вигляду. (Відмітимо, що к такому вигляду приводиться лише невироджена матриця. В іншому випадку метод Гаусса застосовувати не можна.)

Зворотній хід метода Гаусса полягає у послідовному обчисленні шуканих невідомих: розв'язуючи останнє рівняння, знаходимо єдине невідоме . Далі, використовуючи це значення, з попереднього рівняння обчислюємо і т.д. Останнім знайдемо з першого рівняння.

Розглянемо застосування метода Гаусса для системи

(1.1)

Для виключення з другого рівняння додамо до нього перше, помножене на . Потім, помноживши перше рівняння на і додавши результат до третього рівняння, також виключимо з нього . Отримаємо рівнозначну систему рівнянь вигляду

(1.2)

Тепер з третього рівняння системи (1.2) треба виключити . Для цього помножимо друге рівняння на і додамо результат до третього. Отримаємо

(1.3)

Матриця системи (1.3) має трикутний вигляд. На цьому закінчується прямий хід метода Гаусса. Відмітимо, що в процесі виключення невідомих доводиться виконувати операції ділення на коефіцієнти , , і т.д. Тому вони мають бути відмінними від нуля; в іншому випадку необхідно відповідним чином переставити рівняння системи. Переставляння рівнянь повинна бути передбачена в обчислювальному алгоритмі при його реалізації на ПК. Зворотній хід починається з розв'язання третього рівняння системи (1.3):

(1.4)

Використовуючи це значення, можна знайти з другого рівняння, а потім з першого:

(1.5)

Аналогічно будується обчислювальний алгоритм для лінійної системи з довільною кількістю рівнянь.

1.1.2 Метод Гаусса-Зейделя

Одним з найпоширеніших ітераційних методів, який відрізняється простотою та легкістю програмування, є метод Гаусса-Зейделя. Проілюструємо спочатку цей метод на прикладі розв'язання системи

(1.6)

Припустимо, що діагональні елементи , , відмінні від нуля (в іншому випадку можна переставляти рівняння). Виразимо невідомі , , відповідного з першого, другого і третього рівнянь системи (1.6):

(1.7), (1.8)

(1.9)

алгоритм послідовна програма паралельний

Задамо деякі початкові (нульові) наближення невідомих: , , . Підставляючи ці значення в праву частину виразу (1.7), отримуємо нове (перше) наближення для :

(1.10)

Використовуючи це значення для і наближення для , знаходимо з (1.8) перше наближення для :

(1.11)

І нарешті, використовуючи обчислені значення ,, знаходимо за допомогою виразу (1.11) перше наближення для :

(1.12)

На цьому закінчується перша ітерація розв'язання системи (1.7) - (1.9). Використовуючи тепер значення , , , можна таким же чином провети другу ітерацію, в результаті якої будуть знайдені другі наближення до розв'язку: , , і т.д. Наближення з номером можна представити у вигляді

(1.13)

Ітераційний процес продовжується до тих пір, поки значення , , не стануть близькими з заданою похибкою до значень , , .

1.1.3 Метод Зейделя

Метод Зейделя є класичним ітераційним методом вирішення системи

лінійних рівнянь. Візьмемо систему:

(1.14)

де , Або (1.15)

Перепишемо завдання у вигляді:

(1.16)

Тут в j-м-коді рівнянні ми перенесли в праву частину всі члени, xi, що містять, для i > j. Цей запис може бути представлений: (1.17)

де в прийнятих позначеннях D означає матрицю, в якої на головній діагоналі коштують відповідні елементи матриці A, а всі останні нулі; тоді як матриці U і L містять верхню і ніжнюю трикутні частини A, на головній діагоналі яких нулі. Ітераційний процес в методі Зейделя будується по формулі

(1.18)

після вибору відповідного початкового наближення. Нові значення використовуються тут відразу ж у міру здобуття

(1.19)

де

Таким чином i-танучи компонента (до + 1) - го наближення обчислюється за формулою:

(1.20)

Умова закінчення ітераційного процесу Зейделя досягши точності в спрощеній формі має вигляд: (1.21). Точніша умова закінчення ітераційного процесу має вигляд (1.21) і вимагає більше обчислень. Добре підходить для розріджених матриць.

1.1.4 Метод Якобі

Метод Якобі складається з ланцюжка ортогональних перетворень подібності матриці. Кожне перетворення (ротація Якобі) - це плоский поворот з метою обнулення одного з позадіагональних елементів матриці. Послідовні перетворення не зберігають вже встановлені нульові елементи, але в той же час позадіагональні елементи стають менше і менше до тих пір, поки матриця не стане діагональною з точністю до машинного нуля. Накопичення в процесі перетворень твору трансформаційних матриць дає матрицю власних векторів, тоді як діагональні елементи є власними значеннями. Метод Якобі завжди є робустним для дійсних симетричних матриць. Для матриць розміру, скажемо більше 10, цей алгоритм повільніший, ніж метод QR (див. нижчий). Проте алгоритм Якобі значно простіший за інші ефективніші методи, таким чином він рекомендується у випадках, коли час виконання не є критичним. Базова матриця ротації Якобі має вигляд:

Ppq = (1)

(…)

(c…s)

(…1…)

(-s…c)

(…) (1.22) (1)

Всі діагональні елементи матриці ротації Якобі дорівнюють 1, за винятком двох елементів в рядках (і стовпцях) p і q.

Всі позадіагональні елементи дорівнюють нулю, за винятком двох елементів, рівних s і (-s). Числа з і s є косинусом і синусом кута повороту f, так що c2+s2=1.

Ротація Якобі перетворить матрицю A згідно з формулою:

A' = PpqTAPpq. (1.23)

Множення PPQTA змінює лише рядки p і q матриці A, тоді як Appq міняє лише стовпці p і q. Відзначимо, що нижні індекси p і q в позначенні Ppq не означають елемент цієї матриці, а швидше індексують типа ротації, тобто плоскість, в якій вона відбувається. Таким чином, змінені елементи в матриці A'' розташовані лише в рядках і стовпцях p і q:

(. a'1p. a'1q.)

(…...)

(a'p1. a'pp. a'pq. a'pn)

A' = (...)

(a'q1. a'qp. a'qq. a'qn)

(…...)

(. a'np … a'nq.) (1.24)

Для змінених елементів матриці (з врахуванням приведеного вище і її симетрії) виходять явні формули:

a'rp = carp - sarq (r! =p, r! =q) a'rq = carq + sarp (r! =p, r! =q) a'pp = c2app + s2aqq - 2csapq a'qq = s2app + c2aqq + 2csapq a'pq = (c2 - s2) apq + cs (app - aqq)

Ідея методу Якобі в тому, щоб постаратися обнулити позадіагональні елементи серією ротацій. Для того, щоб обнулилося a''pq, кут ротації, згідно з формулами, приведеними вище, має бути наступним:

q = cot (2f) = (c2 - s2) / (2cs) = (aqq - app) / (2apq). Вважаючи t=s/c, для визначення t прийдемо до наступного рівняння: t2 + 2tq - 1 = 0. Менший по модулю корінь цього рівняння відповідає обертанню на кут, менший p/4; вибір цього кута на кожній із стадій дає найбільш стійкий алгоритм.

Використовуючи формулу для вирішення квадратного рівняння з дискримінантом в знаменнику, менший корінь визначається як:

t = sign (q) / (|q|+sqrt (q2+1)). (1.25)

Якщо величина q така, що q2 дасть переповнювання, вважаємо t = 1/ (2q). За значенням t визначаються з і s:

c = 1/sqrt (t2+1), s = tc. (1.26)

При чисельній модифікації елементів матриці ми прагнемо до зменшення помилки округлення. Ідея полягає в тому, щоб переписати їх як колишнє значення плюс мала добавка, що коректує. В цьому випадку коефіцієнти матриці після перетворення виглядатимуть як:

a'pp = app - tapq a'rp = arp - s (arq + garp) a'rq = arq + s (arp - garq), (1.27)

де t (тангенс половини кута повороту) визначається, як t = s/ (1+c). Збіжність методу Якобі можна оцінити, розглядаючи суму квадратів позадіагональних елементів S; рівняння перетворень дають для цієї суми після трансформації наступне співвідношення: S = Sr! =s (|ars|2); S'' = S - 2|apq|2. Оскільки перетворення ортогональні, сума діагональних елементів при цьому зростає відповідно на |apq|2.

Сума ж квадратів позадіагональних елементів монотонно убуває. Оскільки вона обмежена знизу нулем і оскільки ми можемо кожного разу вибирати який хочемо елемент apq для обнулення, сума прагнутиме до нуля.

Після ланцюжка перетворень виходить матриця D, діагональна з точністю до машинного нуля. Її діагональні елементи утворюють власні значення первинної матриці A, оскільки виконується D = VTAV, де V = P1p2p3., а Pi - матриці ротації Якобі. Стовпці матриці V є власними векторами. Вони обчислюються рекурентно, на кожній стадії по формулах: V'' = Vpi, де спочатку V - одинична матриця. Для перетворення елементів V використовуються формули:

v'rs = vrs (s! =p, s! =q) v'rp = cvrp - svrq v'rq = svrp + cvrq (1.28)

Для зменшення помилки округлення наведені вище формули слід переписати в термінах g (як вище для елементів матриці A). Єдиним питанням, що залишається, тепер є стратегія, по якій потрібно перебирати знищувані елементи. Оригінальний алгоритм Якобі від 1846 року на кожній стадії шукав у верхньої трикутної області найбільший по модулю елемент і обнуляв його. Це вельми раціональна стратегія для ручного рахунку, але вона неприйнятна для комп'ютера, оскільки робить число операцій на кожній стадії ротації Якобі порядку N2 замість N. Для наших цілей кращою стратегією є циклічний метод Якобі, де елементи віддаляються в строгому порядку. Наприклад, можна просто проходіть по рядках: P12, P13. P1n; P23,.,p2n;. Можна показати, що швидкість збіжності буде в загальному випадку квадратичною, як для оригінального, так і для циклічного методу Якобі. Назвемо одне така безліч послідовних n (n-1) /2 перетворень Якобі проходом. Програма, поміщена нижче, містить дві тонкість: На перших трьох проходах ми проводимо ротацію відносно індексу (pq) лише тоді, коли |apq|>e для деякого порогового значення e = S0/ (5n2), де S0 - сума модулів позадіагональних елементів верхньої трикутної матриці.

Після чотирьох проходів у тому випадку, коли |apq|<<|app| і |apq|<<|aqq|, вважаємо |apq|=0 і пропускаємо ротацію. Критерієм порівняння є перевищення діагональних елементів в 10D+2 рази, де D - число значущих десяткових цифр. У приведеній нижче програмі симетрична матриця а розміром (n x n) на вході завантажена в масив а [1. n] [1. n]. На виході наддіагональні елементи а руйнуються, але діагональні і піддіагональні залишаються на місці з тим, щоб зберегти інформацію про початкову симетричній матриці. Вектор d [1. n] повертає власні значення а. Під час обчислення він містить поточну діагональ. Матриця v [1. n] [1. n] повертає набір нормалізованих власних векторів, що відносяться до d [k] для її к-го стовпця. Параметр nrot - число ротацій Якобі, необхідних для досягнення збіжності. Типові матриці вимагають від 6 до 10 проходів для досягнення збіжності, або від 3n2 до 5n2 ротацій. Кожна ротація вимагає порядку 4n операцій множення і складання, так що загальні витрати мають порядок від 12n3 до 20n3 операцій. При обчисленні власних векторів поряд з власними значеннями, число операцій на ротації зростає з 4n до 6n, що означає перевищення лише на 50 відсотків.

1.2 Програмна реалізація алгоритму (послідовна програма)

Таблиця 1 - Типи змінних

Ім'я змінної

Тип

Призначення

а

float

Масив який заповнюється числами

b

float

Вектор вільних елементів

е

float

Точність обчислення

х

float

Результат

N

Integer

Змінна, яка визначає розмір системи

I,J

Integer

Лічильник

Блок-схема

Рисунок 1.1 - Блок - схема алгоритму послідовної програми

Рисунок 1.2 - Режим тестування

1.3 Аналіз поставленої задачі на доцільність розпаралелювання

Темою курсової роботи є паралельні методи розв'язання систем лінійних рівнянь. Метод Якобі.

Такі системи рівнянь можуть бути, по-перше, дуже великого розміру, наприклад, Nxn=10000х10000, і навіть більше по-друге, система рівнянь може виявитися недовизначеною; по-третє, вона може виявитися з лінійно залежними рівняннями; по-четверте, вона може виявитися перевизначеною і неспільною. Крім того, по-п'яте, при послідовній реалізації алгоритму

можемо мати далеко не рекордну швидкодію і об'єм оперативної пам'яті, і свідомо кінцеву розрядність двійкового представлення чисел і пов'язані з цим ненульові обчислювальні погрішності. Тому ітераційні методи, і метод іттерацій зокрема, було б краще розпаралелювати, щоб збільшити швидкодію та спростити вирішення поставленої задачі.

2. Розробка паралельного алгоритму

2.1 Виконання основних етапів побудови паралельного алгоритму

Методика розробки паралельних алгоритмів включає етапи виділення підзадач, визначення інформаційних залежностей, масштабування й розподілу підзадач по процесорах обчислювальної системи. Ці процеси ще називаються декомпозицією, проектуванням взаємодії між задачами, об'єднанням та плануванням обчислень.

Першим етапом розробки паралельного алгоритму є декомпозиція. На цьому етапі поставлене завдання аналізується і розбивається на підзадачі, виконання яких може бути паралельним.

Вибір способу поділу обчислень на незалежні частини ґрунтується на аналізі обчислювальної схеми розв'язку вихідного завдання. Вимоги, яким повинен задовольняти обираний підхід, звичайно полягають у забезпеченні рівного обсягу обчислень у виділюваних підзадачах і мінімуму інформаційних залежностей між цими підзадачами (за інших рівних умов потрібно віддавати перевагу рідким операціям передачі повідомлень більшого розміру в порівнянні із частими пересиланнями даних невеликого обсягу).

Размещено на http://www.allbest.ru/

Рисунок 2.1 - Схема побудови декомпозиції та встановлення зв'язків між під задачами

Другим етапом побудови паралельного алгоритму є проектування взаємодії між задачами. На цьому етапі визначаються дії та методи, які потрібні для організації взаємодії між задачами (передавання даних, забезпечення синхронізації, доступ до спільних даних тощо).

При наявності обчислювальної схеми розв'язку завдання після виділення базових підзадач визначення інформаційних залежностей між ними звичайно не викликає великих проблем. При цьому, однак, слід зазначити, що насправді етапи виділення підзадач та інформаційних залежностей досить складно піддаються поділу. Виділення підзадач повинне відбуватися з урахуванням виникаючих інформаційних зв'язків, після аналізу обсягу й частоти необхідних інформаційних обмінів між підзадачами може знадобитися повторення етапу поділу обчислень.

Доступ до спільних даних у програмі забезпечується наявністю глобальних змінних, серед яких вхідна матриця, над якою виконуються дії ус потоками.

Взаємодія потоків між собою відбувається за допомогою семафорів і використання команд sem_post та sem_wait, що надають можливість потокам працювати одночасно. Також семафори надають можливість потокам зупинитися до моменту виконання певних дій (наприклад, безпосереднє обчислення може відбутися, коли процес вводу матриці ще не завершився). Схема взаємодії потоків між собою наведена на рисунку 2.2.

Размещено на http://www.allbest.ru/

Рисунок 2.2 - Схема взаємодії потоків

Рисунок 2.3 - Схема

2.2 Алгоритм роботи потоків

Після завершення виконання основних етапів побудови паралельного алгоритму, необхідно перейти до планування обчислень, тобто виконання розподілу задач по процесорам комп'ютерної системи. Даний пункт виконується у відповідності з етапами, виконаними вище.

В цьому алгоритмі таблично описуються операції, що повинні виконуватися кожним з потоків багатопоточної програми: вводи та виводи даних, операції над ними та над самими потоками. У відповідності з отриманим алгоритмом вже програмно оформлюється код програми.

Розподіл задач між потоками дозволяє значно спростити процес написання програми, оскільки на цьому етапі вже стає видно помилки, допущені під час проектування, декомпозиції та об'єднання. Алгоритм роботи потоків заданої програми наведений у таблиці 2.1.

Таблиця 2.1 - Алгоритм роботи потоків

Tгол

То

Т1

Т2, Тк-1

1. Введення похибки

1. Ведення вектора Х

1. Створення матриці МА

1. Очікування То

2. Введення розміру матриці

2. Сигнал до Т1

2. Сигнал до Т0

2. Очікування Т1

3. Створення потоків

3. Сигнал до

Т2

3. Сигнал до Т2

2. Бар'єр

4. Ініціалізація потоків і семафорів

4. Очікування

Т1

4. Очікування Т0

3. Обчислення

5. Приєднання потоків-

5. Бар'єр (за прикладом 5.2 лекції 5)

5. Бар'єр

4. Бар'єр

6. Виведення результату

6. Обчислення

6. Обчислення

7. Бар'єр

7. Бар'єр

Наступним і завершальним етапом після побудови паралельного алгоритму є безпосередньо програмна реалізація: огляд програмних засобів, які використовуються для розробки програми, визначення глобальних змінних, визначення функцій, які безпосередньо стосуються виконання завдання тощо.

Додатки

Додаток А

Лістинг послідовної програми

#include<stdio. h>

#include<stdlib. h>

#include<conio. h>

#include<math. h>

void main () {

int n, i, j, count = 0;

float **a, *b, *x, *tmp_x, exp, e;

printf ("Введіть розміри ситеми: \n");

printf ("n = ");

scanf ("%i", &n);

a = (float**) malloc (n*sizeof (float*));

for (i = 0; i < n; i++) {

a [i] = (float*) malloc (n*sizeof (float));

}

b = (float*) malloc (n*sizeof (float));

x = (float*) malloc (n*sizeof (float));

tmp_x = (float*) malloc (n*sizeof (float));

printf ("Введіть коефіцієнти системи: \n");

for (i = 0; i < n; i++) {

for (j = 0; j < n; j++) {

scanf ("%f", &a [i] [j]);

}

}

printf ("Введіть вектор вільних елементів: \n");

for (i = 0; i < n; i++) {

scanf ("%f", &b [i]);

x [i] = 0;

}

printf ("Введіть точність обчислення: ");

scanf ("%f", &e);

do{

count++;

for (i = 0; i < n; i++) {

tmp_x [i] = 0.0;

for (j = 0; j < n; j++) {

if (i! = j) {

tmp_x [i] = tmp_x [i] + (a [i] [j] * x [j]);

}

}

tmp_x [i] = (b [i] - tmp_x [i]) / a [i] [i];

}

exp = 0;

for (i = 0; i < n; i++) {

if (fabs (x [i] - tmp_x [i]) > exp) {

exp = fabs (x [i] - tmp_x [i]);

}

x [i] = tmp_x [i];

}

}while (exp > e);

free (tmp_x);

for (i = 0; i < n; i++) {

free (a [i]);

}

free (a);

free (b);

printf ("Розвязок ситеми: \n");

for (i = 0; i < n; i++) {

printf ("x [%d] = %.6f\n", i+1, x [i]);

}

free (x);

}

Размещено на Allbest.ru

...

Подобные документы

  • Історія створення мови С#. Аналіз алгоритмів кодування даних. Розробка системи в середовищі Visual Studio 2008 Express. Схема шифрування алгоритму DES. Дослідження алгоритму RC2. Приклади хешів RIPEMD-160. Програмна реалізація основних процедур системи.

    дипломная работа [1,7 M], добавлен 25.10.2012

  • Опис методів і алгоритмів вирішення задачі в середовищі розробки Myeclipse. Основні функції програмного продукту, його структура. Розробка алгоритму та програми, інструкція користувачу. Результати тестування, лістинг основних блоків. Вікно головного меню.

    курсовая работа [1,8 M], добавлен 24.02.2014

  • Основні відомості з лінійної алгебри. Власні значення і вектори матриці. Метод обертання Якобі. Засоби формування інтерфейсу користувача. Текст програми алгоритму методу обертання Якобі. Вимоги до програмно-технічного забезпечення. Інструкція користувача.

    курсовая работа [306,0 K], добавлен 18.11.2015

  • Створення алгоритму програмної моделі розкладу в учбовому закладі для ефективного вирішення завдань автоматичного складання розкладу, шляхом підбору найбільш оптимальних варіантів. Шляхи реалізації розробленого алгоритму в середовищі Mathemetica 5.0.

    дипломная работа [5,0 M], добавлен 25.10.2012

  • Алгоритм покриття за методом "мінімальній стовпець - максимальний рядок". Підпрограми основного алгоритму. Розробка програми сортування методом простих включень (бульбашковим методом). Словесний опис алгоритму, його контрольний приклад та ефективність.

    курсовая работа [36,4 K], добавлен 06.03.2013

  • Огляд суті гри "Доміно", характеристика її існуючих програмних реалізацій. Розробка евристичного алгоритму для розв’язання ігрової ситуації "Доміно". Програмна реалізація алгоритму мовою програмування високого рівня C#. Отладка оціночної функції.

    курсовая работа [1,4 M], добавлен 14.05.2012

  • Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.

    курсовая работа [1,3 M], добавлен 23.06.2010

  • Розробка програми-інтерпретатора функцій командного процесора DOS: TIME, DATE, DIR, CD, MD, RD на мові Асемблера. Функціональні модулі, процедури та макроси, які використовуються в програмі. Опис алгоритму розв’язання задачі, його програмна реалізація.

    курсовая работа [42,6 K], добавлен 26.04.2016

  • Розробка, дослідження та реалізація методів вирішення завдань аналізу, розпізнавання і оцінювання зображень як один із провідних напрямків інформатики. Класифікація та аналіз існуючих методів розпізнавання образів, переваги та недоліки їх застосування.

    статья [525,8 K], добавлен 19.09.2017

  • Розв’язання нелінійних алгебраїчних рівнянь методом дихотомії. Вирішення задачі знаходження коренів рівняння. Розробка алгоритму розв’язання задачі і тестового прикладу. Блок-схеми алгоритмів основних функцій. Інструкція користувача програмою мовою С++.

    курсовая работа [2,0 M], добавлен 24.09.2010

  • Особливості понять "цифра" и "число". Знакова система оброки інформації комп’ютером. Файл - сукупність байтів, записана на пристрій зберігання інформації. Сутність і властивості алгоритму. Схема - графічне подання алгоритму за допомогою зв’язаних блоків.

    лекция [185,0 K], добавлен 03.10.2012

  • Постановка та описання алгоритму розв’язання задачі про оптимальне призначення, формулювання вимог. Обґрунтування вибору засобів програмування. Розробка структури програми та системи її візуалізації, тестування та верифікація, оцінка ефективності.

    курсовая работа [1,1 M], добавлен 12.05.2013

  • Розробка програмного забезпечення для розв'язку системи лінійних рівнянь за формулами Гаусса, головні особливості мови Turbo Pascal. Методи розв'язування задачі, архітектура програми та її опис. Контрольний приклад та результат машинного експерименту.

    курсовая работа [40,3 K], добавлен 23.04.2010

  • Поняття черги в програмуванні, основні операції з чергою і їх реалізація. Опис алгоритму й специфікація програми. Розробка додатку з використанням задачі Ларсона по опису зв'язного неорієнтованого графа. Алгоритм розв’язку і результати виконання програми.

    курсовая работа [1,1 M], добавлен 14.09.2012

  • Побудова блок-схеми алгоритму проста вставка. Програмна реалізація алгоритму, опис результатів. Особливості обліку ітерації масивів. Відсортування даних за допомогою програми Turbo Pascal. Аналітична оцінка трудомісткості, графічне представлення.

    контрольная работа [570,1 K], добавлен 21.05.2014

  • Засвоєння засобів аналізу трудомісткості обчислювальних алгоритмів. Побудова графа алгоритму з отриманої блок-схеми. Мінімізація графа, його подання у вигляді стохастичної матриці. Знаходження кількості звернень до файлів за допомогою Microsoft Excel.

    лабораторная работа [681,5 K], добавлен 02.06.2011

  • Дослідження етапів розробки програмної реалізації криптографічного алгоритму RC5. Опис об'єкту, що потребує захисту: операційне середовище, тип програмного забезпечення. Блок-схема алгоритму функціонування програми криптозахисту. Листінг тесту програми.

    курсовая работа [4,4 M], добавлен 28.10.2010

  • Дослідження застосування різницевого методу для розв’язання крайової задачі. Дослідження проводиться на прикладі заданого диференційного рівняння. Дається опис методу та задачі в цілому. Застосування при обчисленні формули Чебишева і формули Гаусса.

    курсовая работа [157,2 K], добавлен 03.12.2009

  • Принцип роботи машини тюрінга - математичного поняття, введеного для формального уточнення інтуїтивного поняття алгоритму. Опис алгоритмів арифметичних дій в шістнадцятковій системі числення. Правила переведення чисел з однієї системи числення в іншу.

    курсовая работа [1,4 M], добавлен 31.01.2014

  • Види секретної інформації та методи захисту. Тип і об’єм вхідних даних. Програмна реалізація системи алгоритму шифрування зі стисненням. Призначення та опис програмного продукту Export. Алгоритми захисту зберігання та обміну секретною інформацією.

    дипломная работа [1,1 M], добавлен 19.09.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.