Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.119.103.24] |
|
Сообщ.
#1
,
|
|
|
Доброго времени суток, может кто-нибудь подскажет, где посмотреть алгоритм поиска производной в символьном виде? Заранее благодарен.
|
Сообщ.
#2
,
|
|
|
Если нужно не точное значение, то можно посмотреть в численных методах. На n-й итерации ты получишь полином.
|
Сообщ.
#3
,
|
|
|
мда, мы когда-то такую прогу писали... там нужно определить наружную функцию (т.е. тот оператор, который вычисляется последним), и от него плясать рекурсией. То есть если выражение есть А+В то proizv("A+B")=proizv("A")+proizv("B") итд. Все формулы есть в учебнике матана. Ну естественно proizv("x")="1", proizv("5.43")="0" .... в результате получится что-то ОЧЕНЬ длинное...
|
Сообщ.
#4
,
|
|
|
Вот у Бьярна Страуструпа есть в <Язык программирования С++> хороший синтаксический анализатор, который разбирает инфиксную запись. К нему только требуется прикрутить еще несколько унарных операций (синусы-косинусы и др. элементарные функции -- их не много на самом деле). А потом вместо функции eval (вычислить) в каждом узле построенного в процессе разбора выражения дерева определить функцию deriv (производная), которая будет создавать новое дерево по правилам взятия производной (их тоже не много, для каждой унарной и бинарной операции -- см учебник).
ИМХО ето -- самый простой способ. |
Сообщ.
#5
,
|
|
|
Вот здесь есть маленькая программка на лиспе
http://www.softcraft.ru/paradigm/dp/dp05-04.shtml |
Сообщ.
#6
,
|
|
|
Да это-то все очевидно... И польская запись с синусами-экспонентами, и ее вычисление у меня сделаны... Я думал есть готовая прога... Ладно, спасибо всем за советы, буду сам писать.
|
Сообщ.
#7
,
|
|
|
А зачем польская? Тут деревья рулят.
|