Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 34
1

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

06.12.2012, 00:00. Показов 1361. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Используя функцию сопоставления с образцом (первый способ) или макросы (второй способ), определить функцию на языке LISP, обеспечивающую символьное дифференцирование заданных функций (df/dx).
1) x^5 +2x-10
2) 2/3(lnx +1) - 2(lnx + 1)^(1/2) + 4/3.
3) x^5 + 5x -20
4) ln(x + (x^2 + 9)^(1/2)) - ln3/
Заранее благодарю!)

Добавлено через 52 минуты
имеется функция сопоставления с образцом.

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
(DEFUN CARLETTER (X)  (if  (not(numberp x)) (CAR  (COERCE (STRING X) 'LIST ))))
(DEFUN CDRNAME (X)   (if  (not(numberp x)) (INTERN (COERCE (CDR (COERCE (STRING X) 'LIST )) 'STRING))))
 
; возвращает Т, если все элементы списка Т
(defun and-to-list (l) (setq res t)
            (dolist (temp l res)
            (setq res (and res temp))))
 
(DEFUN MATCH (P D)
(COND
((AND (NULL P)(NULL D) ) T) ; правило 1
((AND (NULL D)              ; правило 2
(EQ (CAR P) '$)
(NULL (CDR P)))T)
((OR (NULL P)(NULL D))NIL)
((OR (EQUAL (CAR P) '?)     ; правила 3 и 4
(EQUAL (CAR P) (CAR D)))
(MATCH (CDR P) (CDR D)))
((EQ (CAR P) '$)                ; правила 5 и 6
(COND ((MATCH (CDR P) D) T)
((MATCH P (CDR D)) T)))
((AND (NOT (ATOM (CAR P)))  ; правило 7 для сопоставления 
           (NOT (ATOM (CAR D))) ; списков, включающих подсписки
            (MATCH (CAR P) (CAR D)))
(MATCH (CDR P) (CDR D)) )
((AND (ATOM (CAR P))        ; правило 8
(EQ (CARLETTER (CAR P)) #\?)
(MATCH (CDR P) (CDR D)))
(SET (CDRNAME (CAR P)) (CAR D)) T)
((AND (ATOM (CAR P))        ; правило 9
(EQ (CARLETTER (CAR P)) #\$))
(COND ((MATCH (CDR P) (CDR D))
(SET (CDRNAME (CAR P)) (LIST (CAR D))) T)
((MATCH P (CDR D))
 (SET (CDRNAME (CAR P))
(CONS (CAR D) (EVAL (CDRNAME (CAR P))))) T)))
; правило 10 - для работы с ограничениями в виде предикатов для ?
((and (not (atom (car p))) 
    (eq (caar p) 'restrict)
    (eq (cadar p) '?)
    (and-to-list
    (mapcar #'(lambda (pred) (funcall pred (car d))) (cddar p))))
(match (cdr p) (cdr d)))
; правило 11 - для работы с ограничениями при сохранении в переменные  например (rectrict ?А integerp evenp)
((and (not (atom (car p))) 
    (not (atom d))
    (eq (caar p) 'restrict)
    (eq (carletter (cadar p))  #\?)
    (and-to-list
    (mapcar #'(lambda (pred) (funcall pred (car d))) (cddar p)))
    (match (cdr p) (cdr d)))
(set (cdrname (cadar p)) (car d))
t)
 
))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2012, 00:00
Ответы с готовыми решениями:

Символьное дифференцирование
Требуется реализовать класс Expression с чисто виртуальными методами Expression *diff(); и void...

Символьное дифференцирование
Здравствуйте. Скажите пожалуйста - как в матлабе дифференцировать символьно? Казалось бы, ничего...

Символьное дифференцирование
Такая вот проблемка, вроде должна как-то просто решаться. Есть система из трех дифуров. Надо...

Задачи на символьное дифференцирование
Задача 1 Есть функиция по дифиринцированию полиномома dPdX :: Poly -> Poly dPdX (MkPoly...

0
06.12.2012, 00:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2012, 00:00
Помогаю со студенческими работами здесь

Объединение списков и символьное дифференцирование
Может кто нибудь построчно написать что значит каждая строка? 1) Заданы два списка L1 и L2,...

Пояснение кода (символьное дифференцирование)
Приветсвую вас, добрые форумчане. Начал недавно изучать Haskell и мне довольно интересно, хотя...

Нахождение производной (символьное дифференцирование)
Нужно написать программу для нахождения производной с двумя переменными. Например: (2x+1)' = 2;...

Символьное дифференцирование cos и sin
Здравствуйте. Хочу написать символьное дифференцирование cos и sin. Производную sin определяю через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru