Нахождение корней уравнения методом Ньютона (ЛИСП-реализация)
Рисунок 2. Иллюстрация расхождения метода Ньютона, примененного к функции с начальным приближением в точке
Если производная не непрерывна в точке корня, то метод может расходиться в любой окрестности корня.
Если не существует вторая производ
ная в точке корня, то скорость сходимости метода может быть заметно снижена.
Если производная в точке корня равна нулю, то скорость сходимости не будет квадратичной, а сам метод может преждевременно прекратить поиск, и дать неверное для заданной точности приближение.
Пусть
.
Тогда и следовательно . Таким образом сходимость метода не квадратичная, а линейная, хотя функция всюду бесконечно дифференцируема.
3. Функциональные модели и блок-схемы решения задачи
Функциональные модели и блок-схемы решения задачи представлены на рисунке 3, 4.
Условные обозначения:
· FUNCTN, FX – функция;
· DFUNCTN, DFDX – производная функции;
· A – рабочая переменная;
· START, X0 – начальное значение;
· PRES, E –точность вычисления.
Рисунок 3 – Функциональная модель решения задачи для поиска корня уравнения методом Ньютона
Рисунок 4 – Блок-схема решения задачи для функции NEWTOM
4. Программная реализация решения задачи
Файл FUNCTION.txt (Пример 1)
;ФУНКЦИЯ COSX - X3
(DEFUN F(X)
(- (COS X) (* X X X))
)
;ПРОИЗВОДНАЯ -sinx-3x2
(DEFUN DFDX (X)
(- (* -1 (SIN X)) (* 3 X X))
)
(SETQ X0 0.5)
(SETQ E 0.0001)
Файл FUNCTION.txt (Пример 2)
;ФУНКЦИЯ x-cosx
(DEFUN F(X)
(- X (COS X))
)
;ПРОИЗВОДНАЯ 1+sinx
(DEFUN DFDX (X)
(+ 1 (SIN X))
)
(SETQ X0 -1)
(SETQ E 0.0001)
Файл FUNCTION.txt (Пример 3)
;ФУНКЦИЯ X2+2X
(DEFUN F(X)
(+ (* X X) (* 2 X))
)
;ПРОИЗВОДНАЯ 2X+2
(DEFUN DFDX (X)
(+ 2 (* 2 X))
)
(SETQ X0 -2.3)
(SETQ E 0.0001)
Файл NEWTON.txt
;ПОДГРУЖАЕМ ФУНКЦИЮ
(LOAD "D:\\FUNCTION.TXT" )
;РЕАЛИЗАЦИЯ МЕТОДА НЬЮТОНА
(DEFUN NEWTOM (START PRES FUNCTN DFUNCTN)
;ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
(DECLARE (SPECIAL X))
(DECLARE (SPECIAL A))
;ЗАДАЕМ НАЧАЛЬНОЕ ЗНАЧЕНИЕ
(SETQ X START)
(SETQ A (/ (FUNCALL FUNCTN X) (FUNCALL DFUNCTN X)))
(LOOP
(SETQ X (- X A))
(SETQ A (/ (FUNCALL FUNCTN X) (FUNCALL DFUNCTN X)))
;ЕСЛИ ДОСТИГЛИ ТРЕБУЕМОЙ ТОЧНОСТИ ВЫХОДИМ ИЗ ЦИКЛА
(IF (<= (ABS A) PRES) (RETURN X))
)
)
;ОТКРЫВАЕМ ФАЙЛ
(SETQ OUTPUT_STREAM (OPEN "D:\KOREN.TXT" :DIRECTION :OUTPUT))
;ВЫЗЫВАЕМ МЕТОД НЬЮТОНА ДЛЯ РАСЧЕТА КОРНЯ
(SETQ KOREN (NEWTOM X0 E (FUNCTION F) (FUNCTION DFDX)))
;ВЫВОДИМ КОРЕНЬ В ФАЙЛ
(PRINT 'KOREN OUTPUT_STREAM)
(PRINT KOREN OUTPUT_STREAM)
;ЗАКРЫВАЕМ ФАЙЛ
(TERPRI OUTPUT_STREAM)
(CLOSE OUTPUT_STREAM)
5. Пример выполнения программы
Пример 1.
Рисунок 5 – Входные данные.
Рисунок 6 – Выходные данные.
Пример 2.
Рисунок 7 – Входные данные.
Рисунок 8 – Выходные данные.
Пример 3.
Рисунок 9 – Входные данные.
Рисунок 10 – Выходные данные.
ЗАКЛЮЧЕНИЕ
Проблема повышения качества вычислений, как несоответствие между желаемым и действительным, существует и будет существовать в дальнейшем. Ее решению будет содействовать развитие информационных технологий, которое заключается как в совершенствовании методов организации информационных процессов, так и их реализации с помощью конкретных инструментов – сред и языков программирования.
Итогом работы можно считать созданную функциональную модель нахождения корней уравнения методом Ньютона. Данная модель может быть использована для решения задач оптимизации, в которых требуется определить нуль первой производной либо градиента в случае многомерного пространства. Созданная функциональная модель и ее программная реализация могут служить органической частью решения более сложных задач.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ и литературы
1. Бронштейн, И.Н. Справочник по математике для инженеров и учащихся втузов [Текст] / И.Н.Бронштейн, К.А.Семендяев. – М.: Наука, 2007. – 708 с.
2. Кремер, Н.Ш. Высшая математика для экономистов: учебник для студентов вузов. [Текст] / Н.Ш.Кремер, 3-е издание – М.:ЮНИТИ-ДАНА, 2006. C. 412.
3. Калиткин, Н.Н. Численные методы. [Электронный ресурс] / Н.Н. Калиткин. – М.: Питер, 2001. С. 504.
4. Метод Ньютона – Википедия [Электронный ресурс] – Режим доступа: http://ru.wikipedia.org/wiki/Метод_Ньютона
5. Семакин, И.Г. Основы программирования. [Текст] / И.Г.Семакин, А.П.Шестаков. – М.: Мир, 2006. C. 346.
6. Симанков, В.С. Основы функционального программирования [Текст] / В.С.Симанков, Т.Т.Зангиев, И.В.Зайцев. – Краснодар: КубГТУ, 2002. – 160 с.
7. Степанов, П.А. Функциональное программирование на языке Lisp. [Электронный ресурс] / П.А.Степанов, А.В. Бржезовский. – М.: ГУАП, 2003. С. 79.
8. Хювенен Э. Мир Лиспа [Текст] / Э.Хювенен, Й.Сеппянен. – М.: Мир, 1990. – 460 с.
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности