Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
velikiu_lol

Программа символьного дифференцирования арифметических выражений. Помогите

15.05.2012, 15:55. Показов 1726. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток,задача такая:
"Написать программу символьного дифференцирования арифметических выражений, представленных в канонической (в виде структур) для языка Пролог форме. При этом единственная переменная (по которой производится дифференцирование) обозначается буквой x, а константы - всеми иными строчными (маленькими) буквами."
я сам не очень разбираюсь,но нужно сделать. В общем программа работает нормально,только есть сложность с использованием знаков арифметических операций. Вот код:

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
%Программа дифференцирования арифметических выражений с одной переменной x
 
diff(X,X,1).
 
diff(Y,_,0):-number(Y).
 
diff(Y,X,0):-atom(Y),X \= Y.
 
diff(^(X,N),X,#(~(x,N1),N)):-number(N),N1 is N-1.           %Случай, когда константа представлена числом
 
diff(^(X,A),X,#(~(x,A-1),A)).                               %Случай, когда константа представлена строчной %буквой
 
diff(+(Y,Z),X,+ (DY,DZ)):-diff(Y,X,DY),diff(Z,X,DZ).          %Дифференцирование суммы
 
diff(-(Y,Z),X,- (DY,DZ)):-diff(Y,X,DY),diff(Z,X,DZ).          %Дифференцирование разности
 
diff(#(Z,Y),X,#(DZ,Y)):-number(Y),diff(Z,X,DZ).                    %Дифференцирование произведения, когда  %константа Y предсталена числом
 
diff(#(Z,Y),X,+ (#(DY,Z),#(DZ,Y))):-diff(Y,X,DY),diff(Z,X,DZ).            %Дифференцирование %произведения, когда  константа строчной буквой
 
diff(\(Y,Z),X,\(- (#(DY,Z),#(Y,DZ)),#(Z,Z))):-diff(Y,X,DY),diff(Z,X,DZ).    %Дифференцирование частного

Проблема в том,что если заменить знаки # на *, ~на^,\ на / то программа выводит результат в инфиксной форме,грубо говоря "считает" выражение. Должно быть-
diff(^(x,4),x,Z). -----> *(^(x,3),4), а получается-
diff(^(x,4),x,Z). -----> x^3*4.
Кто чем может,помогите плз...
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.05.2012, 15:55
Ответы с готовыми решениями:

Опишите функцию символьного дифференцирования
{D}_{x}(x) = 1;<br/>{D}_{x}(y) = 0,\: y \neq x<br/>{D}_{x}({e}_{1} + {e}_{2}) = {D}_{x}({e}_{1})+{D}_{x}({e}_{2});<br/>{D}_{x}({e}_{1} *...

Как подставить конкретные значения в результат символьного дифференцирования
Добрый день! Есть у меня функция F_V от нескольких переменных (V, m, n, h), я её символьно дифференцирую по каждой из переменной....

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

1
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
16.05.2012, 01:09
Вроде нереально в префиксной форме выводить, автоматически преобразуется
?- +(1,5)=A.
A = 1+5.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.05.2012, 01:09
Помогаю со студенческими работами здесь

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

Арифметических выражений
У меня есть пример к которому надо написать программу чтоб его посчитала. Так вот я ее сделал но ответы не совпадают #include...

Вычисление арифметических выражений
Проверьте плиз на правильность,а то не могу понять в чём ошибка.. program arifm_vurajenie; uses Crt; var ...

Вычисление арифметических выражений
var z:integer;a,b:real; begin z:=1; a:=cos(pi/2*3); b:=z+a; end. почему при вычислении z+a компиллятор в упор не видит...

Запись арифметических выражений.
Нужно пару примеров записи арифметических выражений!. Прикрепляю файл с заданием хорошо бы чтобы всё в EXCEL 2003 было


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru