x) методом простої ітерації з точністю потрібно продовжувати ітерації до тих пір, поки модуль різниці між останніми сусідніми наближеннями залишається більше числа Оµ (1-q)/q.
ЗАУВАЖЕННЯ 2.2: В якості константи q зазвичай беруть оцінку зверху для величини
.
2.2 Геометрична інтерпретація
Розглянемо графік функції . Це означає, що рішення рівняння і - це точка перетину з прямою:
В
Малюнок 3.
І наступна ітерація - це координата x перетину горизонтальної прямої точки з прямою.
В
Малюнок 4. br/>
З малюнка наочно видно вимога збіжності. Чим ближче похідна до 0, тим швидше сходиться алгоритм. Залежно від знака похідної поблизу рішення наближення можуть будується по різному. Якщо, то кожне наступне наближення будується з іншого боку від кореня:
В
Малюнок 5. br/>
3. Функціональні моделі і блок-схеми виконання завдання
Функціональні моделі та блок-схеми рішення задачі представлені на малюнку 6, 7.
Використовувані позначення:
В· FN, F - рівняння для пошуку кореня;
В· X, START - початкове значення;
В· E, PRECISION - точність обчислення;
В· N, COUNT_ITER -Кількість ітерацій. br/>В
Рисунок 6 - Функціональна модель вирішення задачі для функції SIMPLE_ITER
В
Малюнок 7 - Функціональна модель вирішення задачі для пошуку кореня рівняння методом простої ітерації
4. Програмна реалізація вирішення завдання
Файл SIMPLE_ITER.txt
; ФУНКЦІЯ, Реалізує метод простої ітерації
(DEFUN SIMPLE_ITER (N E X FN)
(COND
((AND (<= N 0) (> (ABS (- (FUNCALL FN X) X)) (* E (FUNCALL FN X)))) X)
(T (SIMPLE_ITER (- N 1) E (FUNCALL FN X) FN))
)
)
; довантажувати РІВНЯННЯ
(LOAD "D: FUNCTION.TXT")
; РОЗРАХОВУЄМО Початкове наближення до кореня
(SETQ START (/ (- (CADR INTERVAL) (CAR INTERVAL)) 2))
; обчислює КОРІНЬ
(SETQ ROOT (SIMPLE_ITER COUNT_ITER PRECISION START (FUNCTION F)))
; відкриваючи файл для запису
(SETQ OUTPUT_STREAM (OPEN "D: ROOT.TXT": DIRECTION: OUTPUT))
; ДРУКУЄМО У Фото КОРІНЬ
(PRINT 'ROOT OUTPUT_STREAM)
(PRINT ROOT OUTPUT_STREAM)
; ЗАКРИВАЄМО Фото
(TERPRI OUTPUT_STREAM)
(CLOSE OUTPUT_STREAM)
Файл FUNCTION.txt (приклад 1)
; ФУНКЦІЯ
(DEFUN F (X)
(/ (+ (- (* X X) (* 5 (COS X))) 3.25) 3)
)
; КІЛЬКІСТЬ Ітерацій
(SETQ COUNT_ITER 100)
; ПРОМІЖОК, НА ЯКОМУ ШУКАЄМО КОРІНЬ
(SETQ INTERVAL '(-0.4 0))
; ТОЧНІСТЬ ОБЧИСЛЕННЯ
(SETQ PRECISION 0.0001)
Файл FUNCTION.txt (приклад 2)
; ФУНКЦІЯ
(DEFUN F (X)
(- (* X X) (COS X))
)
; КІЛЬКІСТЬ Ітерацій
(SETQ COUNT_ITER 60)
; ПРОМІЖОК, НА ЯКОМУ ШУКАЄМО КОРІНЬ
(SETQ INTERVAL '(1 1.5))
; ТОЧНІСТЬ ОБЧИСЛЕННЯ
(SETQ PRECISION 0.0001)
5. Приклад виконання програми
Приклад 1.
В
Рисунок 8 - Вхідні дані
В
Рисунок 9 - Вихідні дані
Приклад 2.
В
Рисунок 10 - Вхідні дані
В
Малюнок 11 - Вихідні дані
ВИСНОВОК
Проблема підвищення якості обчислень, як невідповідність між бажаним і дійсним, існує і буде існувати надалі. Її рішенням буде сприяти розвиток інформаційних технологій, яке полягає як у вдосконаленні методів організації інформаційних процесів, так і їх реалізації за допомогою конкретних інструментів - середовищ і мов програмування.
Підсумком роботи можна вважати створену функціональну модель знаходження коренів рівняння методом простої ітерації. Дана модель застосовна до детермінованим завданням, тобто похибкою експериментального обчислення яких можна знехтувати. Створена функціональна модель і її програмна реалізація можуть служити органічною частиною вирішення більш складних завдань.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ та літератури
1. Бронштейн, І.М. Довідник з математики для інженерів і учнів втузів [Текст]/І.Н.Бронштейн, К.А.Семендяев. - М.: Наука, 2007. - 708 с. p> 2. Кремер, Н.Ш. Вища математика для економістів: підручник для студентів вузів. [Текст]/Н.Ш.Кремер, 3-е видання - М.: ЮНИТИ-ДАНА, 2006. C. 412. p> 3. Каліткін, М.М. Чисельні методи. [Електронний ресурс]/М.М. Каліткін. - М.: Питер, 2001. С. 504. p> 4. Пошук мінімуму функції [Електронний ресурс] - Режим доступу:
5. Семакін, І.Г. Основи програмування. [Текст]/І.Г.Семакін, А.П.Шестаков. - М.: Мир, 2006. C. 346. p> 6. Сіманков, В.С. Основи функціонального програмування [Текст]/В.С.Сіманков, Т.Т.Зангіев, І.В.Зайцев. - Краснодар: КубГТУ, 2002. - 160 с. p> 7. ...