Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 2
Регистрация: 21.10.2009
Сообщений: 51

Дифференцирование

23.10.2012, 21:38. Показов 1964. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разбираюсь в коде для дифференцирования на Lisp.
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
( defun dif_g(L x)
(cond ((atom L)(if(Eql L x)1 0))
(T(funcall (get(car L)'deriv)(cdr L)))
))
 
(defun reduce_g(A)
(cond((atom A)A)
(T(funcall(get(car A)'reduce)(cdr A)))
))
 
(defun plus_dif (L x)
(List '+(dif_g(car L)x)(dif_g(cadr L)x))
)
 
(defun plus_dif (L x)
(List '-(dif_g(car L)x)(dif_g(cadr L)x))
)
 
 
(defun mult_dif (L x)
(List '+(List '*(dif_g(car L)x)(cadr L))
        (List '*(dif_g(cadr L)x)(car L)))
        )
        
(defun div_dif (L x)
(List '/(List '*(cadr L)(cadr L))
))
 
(defun plus_r(L)
((zerop(car L))(reduce_g(cadr L)))
((zerop(cadr L))(reduce_g(car L)))
((and(numberp(car L)(cadr L)))
(+(car L)(cadr L)))
((Eql(car L)(cadr L))(List '*2(reduce_g(car L))))
(List '+(reduce_g(car L))(reduce_g(cadr L)))
)
 
(defun minus_r(L)
((zerop(cadr L))(reduce_g(car L)))
((Eql(car L)(cadr L))0)
((and (numberp(car L))(numberp (cadr L)))(-(car L)(cadr L)))
(List '-(reduce_g(car L))(reduce_g(cadr L)))
)
 
(defun mult_r(L)
((or (zerop (car L))(zerop(cadr L)))0)
((Eql(car L)1)(reduce_g (cadr L)))
((Eql (cadr L) 1)(reduce_g(car L)))
(( and (numberp(car L))(numberp(cadr L)))
 (*(car L)(cadr L)))
(List '*(reduce_g(car L))(reduce_g(cadr L)))
)
 
(defun div_r(L)
((Eql(car L)(cadr L))1)
((zerop (car L))0)
((= 1(cadr L))(reduce_g(car L)))
((and (numberp(car L)(numberp(cadr L)))(/(car L)(cadr L))))
(List '/(reduce_g(car L))(reduce_g(cadr L)))
)
 
(defun finish(w)
(setq w(reduce_g w))
((Equal Old w)w)
(setq Old w)
(finish w)
)
 
(rds finish'(2*x+3))
В самом коде прописал такое задание
Lisp
1
(rds finish'(2*x+3))
Использую mulisp,запускаю mulisp.com,пишу (rds lab) в результате получаю,то что на картинке.
Помогите пожалуйста разобраться.
Миниатюры
Дифференцирование  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.10.2012, 21:38
Ответы с готовыми решениями:

Дифференцирование и упрощение алгебраических выражений
Только начала разбираться с Lisp и вот задание,не могу дописать,помогите,пожалуйста Задание Для алгебраического выражения, заданного в...

Символическое дифференцирование дробно-рациональной функции
Нужно написать программу символического дифференцирования дробно-рациональной функции. Есть код программы на Хаскеле. Помогите,...

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

2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,741
Записей в блоге: 14
24.10.2012, 10:21
Так в чем дело? Все функции загружены, ошибок нет.

Добавлено через 17 минут
Функции-то загружены, а программа не работает.
0
0 / 0 / 2
Регистрация: 21.10.2009
Сообщений: 51
25.10.2012, 18:17  [ТС]
Проблема решена,вот рабочий код.
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
(put '+ 'deriv 'plus_dif)
(put '- 'deriv 'minus_dif)
(put '* 'deriv 'mult_dif)
(put '/ 'deriv 'div_dif)
 
(put '+ 'reduce 'plus_r)
(put '- 'reduce 'minus_r)
(put '* 'reduce 'mult_r)
(put '/ 'reduce 'div_r)
 
(defun dif_g (l x)
(cond
((atom l) (if (eql l x) 1 0))
(T (funcall (get (car l) 'deriv) (cdr l) x))
)
)
 
(defun reduce_g (a)
(cond
((atom a) a)
(T (funcall(get (car a) 'reduce) (cdr a)))
)
)
 
(defun plus_dif(l x)
(list '+ (dif_g (car l) x) (dif_g (cadr l) x))
)
 
(defun minus_dif(l x)
(list '- (dif_g (car l) x) (dif_g (cadr l) x))
)
 
(defun mult_dif(l x)
(list '+ (list '* (dif_g (car l) x) (cadr l)) (list '* (dif_g(cadr l) x) (car l)))
)
 
(defun div_dif(l x)
(list '/ (list '- (list '* (dif_g (car l) x) (cadr l)) (list '* (dif_g (cadr l) x) (car l))) (list '* (cadr l) (cadr l)))
)
 
 
 
(defun plus_r (l)
((zerop (car l)) (reduce_g (cadr l)))
((zerop (cadr l)) (reduce_g (car l)))
((and (numberp (car l)) (numberp (cadr l))) (+ (cadr l) (car l)))
((eql (car l) (cadr l)) (list '* 2 (reduce_g(cadr l))))
(list '+ (reduce_g (car l)) (reduce_g (cadr l)))
)
 
(defun minus_r(l)
((eql (car l) (cadr l)) 0)
((zerop (car l)) (if(numberp (cadr l)) (* -1 (cadr l)) (list '* -1 (reduce_g(cadr l)))))
((zerop (cadr l)) (reduce_g (car l)))
((and (numberp (car l)) (numberp (cadr l))) (- (cadr l) (car l)))
(list '- (reduce_g(car l)) (reduce_g(cadr l)))
)
 
(defun mult_r(l)
((zerop (car l)) 0)
((zerop (cadr l)) 0)
((eql (car l) 1) (reduce_g (cadr l)))
((eql (cadr l) 1) (reduce_g (car l)))
((and (numberp (car l)) (numberp (cadr l))) (* (cadr l) (car l)))
(list '* (reduce_g(car l)) (reduce_g(cadr l)))
)
 
(defun div_r(l)
((zerop (car l)) 0)
((eql (cadr l) 1) (reduce_g(car l)))
((and (numberp (car l)) (numberp (cadr l))) (/ (car l) (cadr l)))
(list '/ (reduce_g(car l)) (reduce_g(cadr l)))
)
 
(defun finish(l)
(cond   
 
    (setq l (reduce_g l))
    ((equal old l) old) 
    (setq old l)
    (T(finish l))
)
)
 
 
(dif_g '(+ (* x x) x) 'x) 
(finish (dif_g '(+ (* x x) x) 'x))
 
(rds)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.10.2012, 18:17
Помогаю со студенческими работами здесь

Дифференцирование
Доброго всем времени суток :) Захотелось реализовать дифференцирование в консольном приложении на С# выражений типа (t + 5), sin(t),...

Дифференцирование на С++
Всем приветы! Сейчас мучаюсь вопросом поиска аналогов трем фортрановским функциям LSLRG, CSIEZ, IVPAG. Пока нашла библиотеку IMSL CNL...

Дифференцирование
Вобщем такое : Уравнение : \omega \( t - \frac{x}{v} \) + \alpha = A \ \ \ , where\ \omega,\ t,\ v,\ \alpha - variables ,\ \ A -...

Дифференцирование
найти производную функции вычислить значение первой и второй производных в заданной точке y=7/x^3 x(с индексом 0)=1

дифференцирование
Помогите пожалуйста что не так.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru