рефератырефератырефератырефератырефератырефератырефератырефераты

рефераты, скачать реферат, современные рефераты, реферат на тему, рефераты бесплатно, банк рефератов, реферат культура, виды рефератов, бесплатные рефераты, экономический реферат

"САМЫЙ БОЛЬШОЙ БАНК РЕФЕРАТОВ"

Портал Рефератов

рефераты
рефераты
рефераты

ЛИСП-реализация основных способов вычисления гамма-функции

СОДЕРЖАНИЕ

Введение

1. Постановка задачи

  • 2. Математические и алгоритмические основы решения задачи
  • 2.1 Понятие гамма-функции
  • 2.2 Вычисление гамма функции
  • 3. Функциональные модели и блок-схемы решения задачи
  • 4. Программная реализация решения задачи
  • 5. Пример выполнения программы
  • Заключение
  • Список использованных источников и литературы

ВВЕДЕНИЕ

Выделяют особый класс функций, представимых в виде собственного либо несобственного интеграла, который зависит не только от формальной переменной, а и от параметра.

Такие функции называются интегралами зависящими от параметра. К их числу относится гамма функции Эйлера.

Гамма функция представляется интегралом Эйлера второго рода:

.

Гамма-функция расширяет понятие факториала на поле комплексных чисел. Обычно обозначается ?(z).

Была введена Леонардом Эйлером, а своим обозначением гамма-функция обязана Лежандру.

Через гамма-функции выражается большое число определённых интегралов, бесконечных произведений и сумм рядов.

1. Постановка задачи

Требуется реализовать основные способы вычисления гамма-функции:

1. Гамма-функции для целых положительных n равна

Г (n) = (n - 1)! = 1·2... (n - 1). (1)

2. Для x>0 гамма-функция получается из ее логарифма взятием экспоненты.

. (2)

3. Гамма-функции для ряда точек:

(3)

Пример 1.

Вычислить гамма-функции Г(6).

Решение:

Так как 6 - положительное целое число, воспользуемся формулой (1):

Г(6) =(6-1)! = 5! = 120

Ответ: 120.

Пример 2.

Вычислить гамма-функции Г(0,5).

Решение:

Воспользуемся формулой (2):

.

.

Ответ: .

Пример 3.

Вычислить гамма-функции Г(1,5).

Решение:

Воспользуемся формулой (3):

y = 1.5 + 2 = 3.5.

.

Ответ: .

2. Математические и алгоритмические основы решения задачи

2.1 Понятие гамма-функции

Гамма функцию определяет интеграл Эйлера второго рода

(a) = (2.1)

сходящийся при .

Рисунок 1. График гамма-функции действительного переменного

Положим =ty, t > 0 , имеем

(a) =

и после замены , через и t через 1+t ,получим

Умножая это равенство и интегрируя по t и пределах от 0 до , имеем:

или после изменения в правой части порядка интегрирования ,получаем:

откуда

(2.2)

заменяя в (2,1) , на и интегрируем по частям

получаем рекурентною формулу

(2.3)

так как

Рисунок 2. График модуля гамма-функции на комплексной плоскости

При целом имеем

(2.4)

то есть при целых значениях аргумента гамма-функция превращается в факториал, порядок которого на единицу меньше взятого значения аргумента. При n=1 в (2.4) имеем

2.2 Вычисление гамма функции

Для вычисления гамма-функции используется аппроксимация логарифма гамма-функции. Сама же гамма вычисляется через него.

Для аппроксимации гамма-функции на интервале x>0 используется формула (для комплексных z) такого вида:

.

Она похожа на аппроксимацию Стирлинга, но в ней имеется корректирующая серия. Для значений g=5 и n=6, проверено, что величина погрешности eps не превышает . Кроме того, погрешность не превышает этой величины на всей правой половине комплексной плоскости: Re z > 0.

Для получения действительной гамма-функции на интервале x>0 используется рекуррентная формула Gam(z+1)=z*Gam(z) и вышеприведенная аппроксимация Gam(z+1). Также можно заметить, что удобнее аппроксимировать логарифм гамма-функции, чем ее саму.

Во-первых, при этом потребуется вызов только одной математической функции - логарифма, а не двух - экспоненты и степени (последняя все равно использует вызов логарифма), во-вторых, гамма-функция - быстро растущая для больших x, и аппроксимация ее логарифмом снимает вопросы переполнения.

Для аппроксимации LnGam() - логарифма гамма-функции - получается формула:

Значения коэффициентов Ck являются табличными данными (Таблица 1).

k

C

1

2.5066282746310005

2

1.0000000000190015

3

76.18009172947146

4

-86.50532032941677

5

24.01409824083091

6

-1.231739572450155

7

0.1208650973866179e-2

8

-0.5395239384953e-5

Таблица 1. Значения коэффициентов Ck

Сама гамма-функция получается из ее логарифма взятием экспоненты. .

3 Функциональные модели и блок-схемы решения задачи

Функциональные модели и блок-схемы решения задачи представлены на рисунке 3, 4, 5, 6.

Условные обозначения:

§ X - параметр функции;

§ RS - инкремент;

§ GN - список коэффициентов;

§ Y - вспомогательная переменная;

§ RES - результат вычисления гамма-функции;

§ GAM - временная переменная, содержащая вычисление гамма-функции.

Рисунок 3 - Функциональная модель решения задачи для функции GAMMA

Рисунок 4 - Функциональная модель решения задачи для функции GAMMA_ WHOLE

Рисунок 5 - Блок-схема решения задачи для поиска логарифма гамма-функции GAMMA_LN

Рисунок 6 - Блок-схема решения задачи для поиска логарифма гамма-функции GAMMA_POINT

4. Программная реализация решения задачи

;СПИСОК КОЭФФИЦИЕНТОВ

(SETQ CN '(2.5066282746310005 1.0000000000190015 76.18009172947146 -86.50532032941677 24.01409824083091

-1.231739572450155 0.1208650973866179e-2 -0.5395239384953e-5))

;ЛОГАРИФМ ГАММА ФУНКЦИИ

(DEFUN GAMMA_LN (X)

(SETQ SER (CADR CN))

(SETQ L (CDDR CN))

(SETQ Y X)

(DO

((J 2))

((>= J 8))

(SETQ Y (+ Y 1))

(SETQ CO (CAR L))

(SETQ SER (+ SER (/ CO Y)))

(SETQ L (CDR L))

(SETQ J (+ J 1))

)

(SETQ Y (+ X 5.5))

(SETQ Y (- Y (* (+ X 0.5) (LOG Y))))

(SETQ Y (+ (* -1 Y) (LOG (* (CAR CN) (/ SER X)))))

)

;ВЫЧИСЛЕНИЕ ГАММА-ФУНКЦИИ ЧЕРЕЗ ЕЕ ЛОГАРИФМ

;ГАММА ДЛЯ ПОЛОЖИТЕЛЬНЫХ АРГУМЕНТОВ

(DEFUN GAMMA (X)

(EXP (GAMMA_LN X))

)

;ГАММА ДЛЯ ЦЕЛЫХ ЧИСЕЛ

(DEFUN GAMMA_WHOLE (X)

(SETQ X (- X 1))

(DO

((RES 1) (RS 1))

((EQL X 0) RS)

(SETQ RS (* RES RS))

(SETQ X (- X 1))

(SETQ RES (+ RES 1))

)

)

;ГАММА ДЛЯ МНОЖЕСТВА ТОЧЕК

(DEFUN GAMMA_POINT (X)

(IF (> X 0)

(PROGN

(SETQ Y (+ X 2))

(SETQ GAM (* (SQRT (* 2 (/ PI Y))) (EXP (+ (* Y (LOG Y)) (- (/ (- 1 (/ 1 (* 30 Y Y))) (* 12 Y)) Y)))))

(SETQ RES (/ GAM (* X (+ X 1))))

)

;ИНАЧЕ

(PROGN

(SETQ J 0)

(SETQ Y X)

(DO

(())

((>= Y 0))

(SETQ J (+ J 1))

(SETQ Y (+ Y 1))

)

(SETQ GAM (GAMMA_POINT Y))

(DO

((I 0))

((>= I (- J 1)))

(SETQ GAM (/ GAM (+ X I)))

(SETQ I (+ I 1))

)

(SETQ RES GAM)

)

)

RES)

;ПОЛУЧАЕМ ЭЛЕМЕНТ ФУНКЦИИ

(SETQ FUNC 0)

(SETQ INPUT_STREAM (OPEN " D:\GAMMA.TXT" :DIRECTION :INPUT))

(SETQ FUNC (READ INPUT_STREAM))

(CLOSE INPUT_STREAM)

;РЕЗУЛЬТАТ ГАММА-ФУНКЦИИ

(SETQ OUTPUT_STREAM (OPEN "D:\RESULT.TXT" :DIRECTION :OUTPUT))

(PRINT 'RESULT_OF_GAMMA_FUNCTION OUTPUT_STREAM)

;ПРИМЕНЯЕМ ДЛЯ ПОЛОЖИТЕЛЬНЫХ ЧИСЕЛ

(PRINT (MAPCAR 'GAMMA FUNC) OUTPUT_STREAM)

;ПРИМЕНЯЕМ ДЛЯ ПОЛОЖИТЕЛЬНЫХ ЦЕЛЫХ ЧИСЕЛ

(PRINT (MAPCAR 'GAMMA_WHOLE FUNC) OUTPUT_STREAM)

;ПРИМЕНЯЕМ ДЛЯ ЛЮБЫХ ЧИСЕЛ

(PRINT (MAPCAR 'GAMMA_POINT FUNC) OUTPUT_STREAM)

(TERPRI OUTPUT_STREAM)

(CLOSE OUTPUT_STREAM)

;END

5 Пример выполнения программы

Пример 1.

Рисунок 7 - Входные данные. Вычисление гамма-функции для положительных целых чисел

Рисунок 8 - Выходные данные. Вычисление гамма-функции для положительных целых чисел

Пример 2.

Рисунок 9 - Входные данные. Вычисление гамма-функции для положительных чисел

Рисунок 10 - Выходные данные. Вычисление гамма-функции для положительных чисел

Пример 3.

Рисунок 11 - Входные данные. Вычисление гамма-функции для множества чисел

Рисунок 12 - Выходные данные. Вычисление гамма-функции для множества чисел

ЗАКЛЮЧЕНИЕ

Гамма функции являются удобным средством для вычисления некоторых интегралов в частности многих из тех интегралов, которые не представимы в элементарных функциях. Благодаря этому они широко применяются в математике и ее приложениях, в механике, термодинамике и в других отраслях современной науки.

Итогом работы можно считать созданную функциональную модель реализации основных способов вычисления гамма функции. Данная модель применима к гамма-функции с положительным целым параметром, гамма-функции с положительным параметром, гамма-функции для множества точек. Созданная функциональная модель реализации основных способов вычисления гамма функции и ее программная реализация могут служить органической частью решения более сложных задач.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ и литературы

Бронштейн, И.Н. Справочник по математике для инженеров и учащихся втузов [Текст] / И.Н.Бронштейн, К.А.Семендяев. - М.: Наука, 2007. - 708 с.

Вычисление гамма-функции и бета-функции [Электронный ресурс] - Режим доступа: http://www.cyberguru.ru/cpp-sources/algorithms/vytchislenie-gamma-funktsii-i-beta-funktsii.html

Гамма-функция - Википедия [Электронный ресурс] - Режим доступа: http://ru.wikipedia.org/wiki/Гамма_функция

Кремер, Н.Ш. Высшая математика для экономистов: учебник для студентов вузов. [Текст] / Н.Ш.Кремер, 3-е издание - М.:ЮНИТИ-ДАНА, 2006. C. 412.

Семакин, И.Г. Основы программирования. [Текст] / И.Г.Семакин, А.П.Шестаков. - М.: Мир, 2006. C. 346.

Симанков, В.С. Основы функционального программирования [Текст] / В.С.Симанков, Т.Т.Зангиев, И.В.Зайцев. - Краснодар: КубГТУ, 2002. - 160 с.

Степанов, П.А. Функциональное программирование на языке Lisp. [Электронный ресурс] / П.А.Степанов, А.В. Бржезовский. - М.: ГУАП, 2003. С. 79.

Хювенен Э. Мир Лиспа [Текст] / Э.Хювенен, Й.Сеппянен. - М.: Мир, 1990. - 460 с.

рефераты
РЕФЕРАТЫ © 2010