Лисп курсовая

  • 15 сент. 2011 г.
  • 3376 Слова
Содержание
1 Постановка задачи 4
1.1 Правила дифференцирования 4
2 Описание алгоритма 7
3 Реализация алгоритма 9
3.1 Программа на языке Пролог 9
3.2 Программа на языке Лисп 10
4 Структуры данных 13
4.1 Значение способа записи и различная интерпретация списков 13
4.2 Функторы в Прологе 14
5 Характерные примеры 16
Приложение А Листинг программы на Прологе 18
Приложение Б Листингпрограммы на Лиспе 20
Список литературы 23

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

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

1.1 Правила дифференцирования
Пустьфункция y = f(x) определена в промежутке X. Производной функции y = f(x) в точке хo называется предел
[pic] = [pic].
Если этот предел конечный, то функция f(x) называется дифференцируемой в точке xo; при этом она оказывается обязательно и непрерывной в этой точке.
Если же рассматриваемый предел равен бесконечности (или минус бесконечности), то при условии, что функция в точкехo непрерывна, будем говорить, что функция f(x) имеет в точке хo бесконечную производную.
Производная обозначается символами
y(,   f( (xo),   [pic],   [pic].
Нахождение производной называется дифференцированием функции.
Если с - постоянное число, и u = u(x), v = v(x) – некоторые дифференцируемые функции, то справедливы следующие правила дифференцирования:
1)(с) ' = 0, (cu) ' = cu';
2) (u+v)' = u'+v';
3) (uv)' = u'v+v'u;
4) (u/v)' = (u'v-v'u)/v2;
5) если y = f(u), u = j(x), т.е. y = f(j(x)) - сложная функция, или суперпозиция, составленная из дифференцируемых функций j и f, то [pic], или
[pic];
6) если для функции y = f(x) существует обратная дифференцируемая функция x = g(y), причем [pic] ¹ 0, то [pic].На основе определения производной и правил дифференцирования можно составить список табличных производных основных элементарных функций.
1. (um)' = m um-1 u' (m ( R).
2. (au)' = au ln (a)× u'.
3. (eu)' = eu u'.
4. (ln (u))' = u'/u.
5. (sin (u))' = cos (u)× u'.
6. (cos (u))' = - sin (u)× u'.
7. (tg (u))' = 1/ cos2(u)× u'.
8.(ctg (u))' = - u' / sin2(u).
9. [pic].
10. (const)' = 0.
Вычислим, в качестве примера, производную степенно-показательного выражения y=uv, (u>0), где u и v суть функции от х, имеющие в данной точке производные u', v'.
Прологарифмировав равенство y=u v, получим ln y = v ln u.
Приравнивая производные по х от обеих частей полученного равенства с помощью правил3, 4 и формулы для производной логарифмической функции, будем иметь:
y'/y = vu'/u +v' ln u, откуда y' = y (vu'/u +v' ln u).
Итак,
(u v)'=u v (vu'/u+v' ln u), u > 0.
Например, если y = x sin x, то y' = x sin x (sin x/x + cos x× ln x).
Если функция y = f(x) дифференцируема в точке x, т.е. имеет в этой точке конечную производную y', то [pic] = y'+a, где a(0 при(х( 0; отсюда (y = y' (х + a x.
Главная часть приращения функции, линейная относительно (х, называется дифференциалом функции и обозначается dy: dy = y' (х. Если положить в этой формуле y=x, то получим dx = x'(х = 1×(х =(х, поэтому dy=y'dx, т. е. символ для обозначения производной [pic] можно рассматривать как дробь.
Приращение функции (y есть приращение ординаты кривой, адифференциал dy есть приращение ординаты касательной.
Как видно из выше сказанного, правила дифференцирования строго детерминированы. Дифференцирование – чисто рутинный механический процесс, который естественно поручить машине. Основная идея автоматического дифференцирования очень проста: к кодовому списку функции применяются правила элементарные дифференцирования строка за строкой...
tracking img