МІНІСТЕРСТВО АГЕНТСТВО ПО ОСВІТІ
ДЕРЖАВНЕ Освітніх установ
ВИЩОЇ ПРОФЕСІЙНОЇ ОСВІТИ
Вятському ДЕРЖАВНИЙ УНІВЕРСИТЕТ
ФАОТ
РОЗРОБКА ПРОГРАМИ ДЛЯ ВИРІШЕННЯ СИСТЕМ ЛІНІЙНИХ РІВНЯНЬ
Пояснювальна записка
Курсова робота з дисципліни
"Інформатика"
ТПЖА.12203-01 81 01 ПЗ
Розробив студент гр. СК-00 ____________/А. І. Іванов/
Керівник викладач
ФАОТ ____________/К. І. Петров/
Курсова робота захищена з оцінкою "___________" "__" _____2002 р.
Кіров 2002
Реферат
А. І. Іванов. Розробка програми для розв'язання систем лінійних рівнянь: ТПЖА 12203-01 81 01 ПЗ. Курсова робота/ВятГУ, ФАОТ, рук. К. І. Петров - Кіров, 2002. ПЗ 7 с., 3 табл., 8 рис., 4 джерела, 4 дод.; програм. докум. 18 л.
СИСТЕМА ЛІНІЙНИХ РІВНЯНЬ, метод Зейделя, метод простих ітерацій, МАТРИЦЯ КОЕФІЦІЄНТІВ, ВЕКТОР ВІЛЬНИХ ЧЛЕНІВ, умови збіжності
Об'єктом дослідження є ітераційні методи розв'язування систем лінійних алгебраїчних рівнянь (Далі СЛАР): метод простих ітерацій і метод Зейделя.
Мета роботи - розробка програми для розв'язку СЛАР з довільною кількістю рівнянь.
Для отримання вектора рішень СЛАР реалізовані методи Зейделя і простих ітерацій.
Недоліком досліджуваного методу - неможливість знаходження рішення за кінцеве
число ітерацій навіть при відсутності обчислювальної похибки.
Результати проведеної роботи можуть бути використані при вирішенні СЛАР з довільною кількістю рівнянь.
середу програмування - Borland C.
Зміст
Вступ 2
1 Аналіз завдання і вибір методу рішення 3
1.1 Аналіз завдання 3
1.2 Вибір методу розв'язання 3
1.2.1 Метод простих ітерацій 4
1.2.2 Метод Зейделя 4
2 Реалізація методу розв'язання задачі 5
2.1 Контроль вхідної інформації 5
2.2 Формат виводу вихідний інформації 5
2.3 Вибір типів вхідних, робітників і вихідних змінних,
використовуваних в програмі 6
2.4 Проектування програми 6
2.5 Аналіз результату 6
Висновок 7
Додаток А (обов'язковий) Розробка програми для розв'язання систем лінійних рівнянь. Опис програми. ТПЖА.12203-01 13 січня 8
Додаток Б (обов'язковий). Розробка програми для розв'язання систем лінійних рівнянь. Керівництво користувача. ТПЖА.12203-01 34 01 ..
Додаток В (обов'язковий). Розробка програми для розв'язання систем лінійних рівнянь. Текст програми. ТПЖА.12203-01 12 січня 23
Додаток Г (довідковий) 45
Введення
Рішення СЛАР є однією з важливих обчислювальних завдань, що часто зустрічаються в прикладної математиці. До вирішення систем лінійних рівнянь зводиться ряд завдань аналізу, пов'язаних з наближенням функцій, рішення систем диференціальних рівнянь і інтегральних рівнянь і т.д.
У зв'язку з використанням великої кількості змінних в системі ручної розрахунок СЛАР досить трудомісткий і може зайняти багато часу. Актуальність даної курсової роботи полягає в тому, що вищеописана проблема вирішується за допомогою розробленої курсової програми.
Курсова робота носить навчальний характер. В ході її програміст реалізував наявні знання з курсу лінійної алгебри за рішенням СЛАР в програмній інтерпретації на мові програмування С. А знання комп'ютера та наявність досвіду у програмуванні в наш час особливо вітається у фірмах, що працюють у сфері інформаційних технологій.
1 Аналіз завдання і вибір методу розв'язання
1.1 Аналіз завдання
Відповідно до завданням на курсову роботу необхідно розробити програму для розв'язання СЛАР методом простих ітерацій і методом Зейделя. Передбачити введення числа рівнянь, матриці коефіцієнтів і вектора вільних членів, а також висновок вектора рішень на екран.
Для зручності тестування програма повинна володіти зрозумілим і логічним інтерфейсом, розрахованим на недосвідченого користувача.
1.2 Вибір методу рішення
Відповідно до завданням на курсову роботу в програмі реалізовані ітераційні методи: простих ітерацій і Зейделя.
Нехай шукається рішення невиродженої системи рівнянь [1]
.
(1)
Першим кроком у ітераційному методі є перетворення вихідної системи до виду [1]
,
(2)
де матриці С, В і вектор d визначаються по матриці А і вектора b. Причому системи (1) і (2) є еквівалентними, тобто їх вирішення збігаються, а побудова зворотного матриці С-1 простіше, ніж А-1. [1]
Другим кроком є розстановка індексів або номерів наближень у (2) і завдання нульового наближення. Наприклад,
(3)
де - заданий вектор [1]
Третім кроком ітераційного методу є обгрунтування збіжності послідовних наближень, отриманих з (3), до точного розв'язання х системи та оцінка похибки k-го наближення [1]
(4)
Оцінка (4) при заданому дозволяє зупинити ітераційний про-процес (3). [1]
Різні ітераційні методи відрізняються першими двома кроками, а вибір конкретного методу повинен здійснюватися на підставі оцінки (4). [1]
1.2.1 Метод простих ітерацій
У методі простих ітерацій матриця С (2) вибирається одиничної: С = Е. Ітераційний процес описується формулою
(5)
де - заданий вектор. [1]
1.2.2 Метод Зейделя
Відмінність методу Зейделя від простої ітерації полягає лише в тому, що при обчисленні (k +1)-го наближення отримані компоненти вектора одразу ж використовуються в обчисленнях. В матричної запису це можна представити так:
де матриці U і L отримані розкладанням В в суму:
матриця U - верхня трикутна частина B, включаючи діагональ; L - нижня поддіагональная частина В. [1]
Таким чином метод Зейделя можна записати в наступній формі
(6)
Зауважимо, що побудова матриці, зворотної, не представляє праці, так як це нижня трикутна матриця. [1]
2 Реалізація методу рішення задачі
2.1 Контроль вхідний інформації
Метод контролю вхідної інформації повинен забезпечити максималь-ную захист від некоректності вводяться даних, захист від переповнення рядки і мінімальний перелік обмежень при введенні інформації.
У програмі вхідні дані, задаються користувачем в режимі діалогового вікна. Це дозволяє практично повністю контролювати вхідну інформацію та уникнути некоректності даних, що вводяться, так як далі ця інформація використовується в обчисленнях. Функції float_input () і n_input () призначені для захисту від некоректного введення дійсних і натуральних чисел відповідно (Додаток В).
2.2 Формат виводу вихідний інформації
Висновок результатів розрахунку проводиться у вікні Output.
У вікні виводиться вихідна СЛАР, нижче вектор рішень, а також число ітерацій, необхідних для знаходження рішення.
2.3 Вибір типів вхідних, робочих і вихідних змінних, використовуваних у програмі
У програмі використані наступні змінні:
char ch
int s
int n
double ** A
double * B
double * X
bool inpflag = false
bool decflag = false
переміщення між вікнами
число ітерацій
розмірність матриць
матриця коефіцієнтів
вектор вільних членів
вектор рішень
прапорець виконання операції введення
прапорець виконання операції рішення
2.4 Проектування програми
Робочий модуль програми - Zeidel.cpp.
Для коректної роботи програми реалізовані методи коректного введення вхідної інформації, рішення СЛАР з поясненням виконуваних дій, форматований вивід вихідний інформації на екран і в файл. Для зручності тестування розроблений інтерфейс, розрахований на недосв...