;; функция вычисления интеграла
( defun double_integral (ax bx ay by g f)
;; ширина ячейки
( setq h1 (/ (- bx ax) g))
;; высота ячейки
( setq h2 (/ (- by ay) g))
;; площадь ячейки
( setq S (* h1 h2))
;; переменная для вычисления интеграла
( setq I 0)
;; интегральная сумма
( setq I (sum_delt (- bx (/ h1 2)) (+ ay (/ h2 2)) ax bx ay by h1 h2 I f))
)
;; вычисление суммы площадей ячеек
( defun sum_delt (x y ax bx ay by h1 h2 I f)
(cond
((>= y by) I)
(T (sum_delt (- bx (/ h1 2)) (+ y h2) ax bx ay by h1 h2 (delta_x x y ax h1 h2 I f) f))
)
)
;; вычисление площади ячейки в точке x y
( defun delta_x (x y ax h1 h2 I f)
(cond
((<= x ax) I)
(T (delta_x (- x h1) y ax h1 h2 (+ I (* h1 h2 (funcall f x y))) f))
)
)
;; подгружаем функцию и пределы интегрирования
( load " D: \\function. txt")
;; вычисляем интеграл
( setq I (double_integral a_x b_x a_y b_y count_dot (function f)))
; открываем файл для записи
( setq output-stream (open " d: \\integral. txt": direction: output))
;; записываем результат интегрирования в файл
( format output-stream " Integral = ~a" I)
; закрываем файл
( close output-stream)
;; end
Файл function. txt
;; интегрируемая функция
( defun f (x y)
(+ (- 1 x) (* y y))
)
;; начальный предел по x
( setq a_x 0.5)
;; конечный предел по x
( setq b_x 1)
;; начальный предел по y
( setq a_y - 3)
;; конечный предел по y
( setq b_y 2)
;; количество ячеек
( setq count_dot 100)
Пример выполнения программы
Рисунок 6 - Входные данные
Рисунок 7 - Выходные данные
Рисунок 8 - Входные данные
Рисунок 9 - Выходные данные
Рисунок 10 - Входные данные
Рисунок 11 - Выходные данные
Заключение
Проблема повышения качества вычислений, как несоответствие между желаемым и действительным, существует и будет существовать в дальнейшем. Ее решению будет содействовать развитие информационных технологий, которое заключается как в совершенствовании методов организации информационных процессов, так и их реализации с помощью конкретных инструментов - сред и языков программирования.
Итогом работы можно считать созданную функциональную модель реализации численного интегрирования функции двух переменных. Созданная функциональная модель и ее программная реализация могут служить органической частью решения более сложных задач.
Список использованных источников и литературы
1. Бронштейн И.Н. Справочник по математике для инженеров и учащихся втузов [Текст] / И.Н. Бронштейн, К.А. Семендяев. - М.: Наука, 2007. - 708с.
2. Васильев Ф.П. Численные методы решения экстремальных задач. [Текст] / Ф.П. Васильев - М.: Наука, 2002. - 415с.
3. Интегрирование [Электронный ресурс] - Режим доступа: https://integraly.ru/.
4. Калиткин Н.Н. Численные методы. [Электронный ресурс] / Н.Н. Калиткин. - М.: Питер, 2001. - 504с.
5. Численное интегрирование [Электронный ресурс] - Режим доступа: https://www.wikipedia.org/wiki/Численное_интегрирование.
6. Симанков В.С. Основы функционального программирования [Текст] / В.С. Симанков, Т.Т. Зангиев, И.В. Зайцев. - Краснодар: КубГТУ, 2002. - 160с.
7. Степанов П.А. Функциональное программирование на языке Lisp. [Электронный ресурс] / П.А. Степанов, А.В. Бржезовский. - М.: ГУАП, 2003. - 79c.
8. Хювенен Э. Мир Лиспа [Текст] / Э. Хювенен, Й. Сеппянен. - М.: Мир, 1990. - 460с.