4 Программная реализация решения задачи
;ЗАГРУЖАЕМ ФУНКЦИЮ, МИНИМАЛЬНОЕ И МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ,
;ТРЕБУЕМУЮ ТОЧНОСТЬ ИЗ ФАЙЛА
(LOAD "D:\\FUNCTION.TXT")
;ОЪЯВЛЯЕМ ФУНКЦИЮ PARABL_METHOD ДЛЯ ПОИСКА МИНИМУМА ФУНКЦИИ
;X0 - НАЧАЛЬНАЯ ТОЧКА
;H - КОНЕЧНАЯ ТОЧКА
;EPS - ТОЧНОСТЬ ВЫЧИСЛЕНИЯ
;FN - ФУНКЦИЯ ДЛЯ ВЫЧИСЛЕНИЯ МИМИМУМА
(DEFUN PARABL_METHOD (X0 H EPS FN)
;ОБЪЯВЛЯЕМ ПЕРЕМЕННЫЕ
;---------------------
;ТРИ ВСПОМОГАТЕЛЬНЫЕ ТОЧКИ
(DECLARE (SPECIAL X1))
(DECLARE (SPECIAL X2))
(DECLARE (SPECIAL XN))
;ФУНКЦИИ ОТ ТОЧЕК
(DECLARE (SPECIAL F_X0))
(DECLARE (SPECIAL F_X1))
(DECLARE (SPECIAL F_X2))
(DECLARE (SPECIAL F_XN))
;ВСПОМОГАТЕЛЬНЫЕ ПЕРЕМЕННЫЕ
(DECLARE (SPECIAL Q))
(DECLARE (SPECIAL A))
(DECLARE (SPECIAL B))
(DECLARE (SPECIAL C))
(DECLARE (SPECIAL D))
(DECLARE (SPECIAL Z))
;---------------------
;УСТАНАВЛИВАЕМ ПЕРВУЮ ТОЧКУ
(SETQ X1 (+ X0 H))
;УСТАНАВЛИВАЕМ ВТОРУЮ ТОЧКУ
(SETQ X2 (+ X0 (* 2 H)))
;ВЫЗЫВАЕМ ФУНКЦИЮ FN
;ВЫЧИСЛЯЕМ ЗНАЧЕНИЯ ФУНКЦИИ В ВЫБРАННЫХ ТОЧКАХ
(SETQ F_X0 (FUNCALL FN X0))
(SETQ F_X1 (FUNCALL FN X1))
(SETQ F_X2 (FUNCALL FN X2))
(DO
((K 0))
;МАКСИМАЛЬНОЕ КОЛИЧЕСТВО ШАГОВ 10000 (>= K 10000)
((>= K 10000))
;ВЫПОЛНЯЕМ ДЕЙСТВИЯ СОГЛАСНО АЛГОРИТМУ ПОИСКА МИНИМУМА МЕТОДОМ ПАРАБОЛ
(SETQ Q (/ (- X0 X1) (- X1 X2)))
(SETQ A (+ (- (* Q F_X0) (* (* Q (+ 1 Q)) F_X1)) (* Q Q F_X2)))
(SETQ B (+ (- (* (+ (* 2 Q) 1) F_X0) (* (+ 1 Q) (+ 1 Q) F_X1)) (* Q Q F_X2)))
(SETQ C (* (+ 1 Q) F_X0))
(SETQ D (SQRT (- (* B B)(* 4 A C))))
(IF (> (ABS (+ B D)) (ABS (- B D)))
(SETQ Z (+ B D))
(SETQ Z (- B D))
)
(SETQ XN (- X0 (/ (* (- X0 X1) 2 C) Z)))
(SETQ F_XN (FUNCALL FN XN))
;ПРОВЕРЯЕМ ДОСТИГЛИ ЛИ МЫ ТРЕБУЕМОЙ ТОЧНОСТИ
(IF (< (ABS F_XN) EPS) (SETQ K 10000))
;ЗАДАЕМ НОВЫЕ ЗНАЧЕНИЯ ТОЧКАМ
(SETQ X2 X1)
(SETQ X1 X0)
(SETQ X0 XN)
;ВЫЧИСЛЯЕМ ЗНАЧЕНИЯ ФУНКЦИЙ В ТОЧКАХ
(SETQ F_X2 F_X1)
(SETQ F_X1 F_X0)
(SETQ F_X0 F_XN)
;УВЕЛИЧИВАЕМ СЧЕТЧИК
(SETQ K (+ K 1))
)
;ВОЗВРАЩАЕМ МИНИМУМ ФУНКЦИИ
XN
)
;ВЫЗЫВАЕМ ФУНКЦИЮ PARABL_METHOD
(SETQ MIMIMUM (PARABL_METHOD MIN_VAL MAX_VAL EPS (FUNCTION FUNC)))
;ЗАПИСЫВАЕМ РЕЗУЛЬТАТ
(SETQ OUTPUT_STREAM (OPEN " D:\MINIMUM.TXT" :DIRECTION :OUTPUT))
;ЗАПИСЫВАЕМ МИНИМУМ
(PRINT 'MIMIMUM OUTPUT_STREAM)
(PRINT MIMIMUM OUTPUT_STREAM)
;ЗАКРЫВАЕМ ФАЙЛ
(TERPRI OUTPUT_STREAM)
(CLOSE OUTPUT_STREAM)
5 Пример выполнения программы
Пример 1.
Рисунок 7 – Входные данные
Рисунок 8 – Выходные данные
Пример 2.
Рисунок 9 – Входные данные
Рисунок 10 – Выходные данные
Пример 3.
Рисунок 11 – Входные данные
Рисунок 12 – Выходные данные
ЗАКЛЮЧЕНИЕ
Проблема повышения качества вычислений, как несоответствие между желаемым и действительным, существует и будет существовать в дальнейшем. Ее решению будет содействовать развитие информационных технологий, которое заключается как в совершенствовании методов организации информационных процессов, так и их реализации с помощью конкретных инструментов – сред и языков программирования.
Итогом работы можно считать созданную функциональную модель вычисления минимума заданной функции методом парабол. Данная модель применима к детерминированным задачам, т.е. погрешностью экспериментального вычисления функции f(x) можно пренебречь. Созданная функциональная модель вычисления минимума заданной функции методом парабол и ее программная реализация могут служить органической частью решения более сложных задач.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ и литературы
1. Бронштейн, И.Н. Справочник по математике для инженеров и учащихся втузов [Текст] / И.Н. Бронштейн, К.А. Семендяев. – М.: Наука, 2007. – 708 с.
2. Кремер, Н.Ш. Высшая математика для экономистов: учебник для студентов вузов. [Текст] / Н.Ш.Кремер, 3-е издание – М.:ЮНИТИ-ДАНА, 2006. C. 412.
3. Калиткин, Н.Н. Численные методы. [Электронный ресурс] / Н.Н. Калиткин. – М.: Питер, 2001. С. 504.
4. Поиск минимума функции [Электронный ресурс] – Режим доступа: http://solidbase.karelia.ru/edu/meth_calc/files/12.shtm
5. Семакин, И.Г. Основы программирования. [Текст] / И.Г.Семакин, А.П.Шестаков. – М.: Мир, 2006. C. 346.
6. Симанков, В.С. Основы функционального программирования [Текст] / В.С. Симанков, Т.Т. Зангиев, И.В. Зайцев. – Краснодар: КубГТУ, 2002. – 160 с.
7. Степанов, П.А. Функциональное программирование на языке Lisp. [Электронный ресурс] / П.А.Степанов, А.В. Бржезовский. – М.: ГУАП, 2003. С. 79.
8. Хювенен Э. Мир Лиспа [Текст] / Э. Хювенен, Й. Сеппянен. – М.: Мир, 1990. – 460 с.
... влияния. Это означает, что любая вершина не влияет на всю поверхность (за исключением очень простых поверхностей). Для кубических поверхностей, которые наиболее часто используются для создания моделей корпусов, каждая вершина влияет в пределах области двух вершин от себя. За пределами этой области вершина не влияет на поверхность (в случае интерполирующих сплайнов изменения, произведённые в носу ...
... по соответствующему полю). В окне Конструктора таблиц созданные связи отображаются визуально, их легко изменить, установить новые, удалить (клавиша Del). 1 Многозвенные информационные системы. Модель распределённого приложения БД называется многозвенной и её наиболее простой вариант – трёхзвенное распределённое приложение. Тремя частями такого приложения являются: ...
... ). Основным меню является форма, в которую пользователь попадает при нажатии кнопки ²Старт² заставки. На ней отображается название главного меню, "Оптимальное планирование выпуска продукции ОАО Звенигородского сыркомбината"², и элементы управления, которые позволяют перемещаться к различным составным частям приложения, из которых, в свою очередь, реализованы переходы назад в главное ...
... объектов; б) наличие данных за предыдущий период; в) наличие базисных данных; г) сопоставимость данных. 26. По характеру принимаемых решений экономический анализ подразделяется: а) предварительный, текущий и заключительный б) оперативный, ретроспективный и перспективный в) предварительный, последующий и итоговый 27. Информация, ...
0 комментариев