Вычисление проииводной
От: Inter3  
Дата: 14.12.03 16:06
Оценка:
Есть строка в Билдере. Эта строка содержит формулул функции. Нужно по этой формуле найти производную функции в виде строки.
Кто знает, помогите плиз! Заранее спасибо.
Re: Вычисление проииводной
От: ArtDenis Россия  
Дата: 14.12.03 16:23
Оценка:
Здравствуйте, Inter3, Вы писали:

I>Есть строка в Билдере.

В билдере много сток. Какая именно тебя интересует?

I>Эта строка содержит формулул функции.

В каком виде формула?

I>Нужно по этой формуле найти производную функции в виде строки.

В виде строки чего? Строка, как результат вычисления производной в конкретной точке или формулу производной?
... << RSDN@Home 1.1.0 stable >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[2]: Вычисление проииводной
От: Inter3  
Дата: 14.12.03 17:11
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Здравствуйте, Inter3, Вы писали:



AD>В билдере много сток. Какая именно тебя интересует?

AnsiString


AD>В каком виде формула?

Например, 7*x^7 + 3*x^2 — 4*x — 1. Или sin(x^2+5*x+2).

AD>В виде строки чего? Строка, как результат вычисления производной в конкретной точке или формулу производной?

Нужно найти формулу производной.
Re[3]: Вычисление проииводной
От: ArtDenis Россия  
Дата: 14.12.03 17:26
Оценка:
Здравствуйте, Inter3, Вы писали:

AD>>В каком виде формула?

I>Например, 7*x^7 + 3*x^2 — 4*x — 1. Или sin(x^2+5*x+2).

Да уж... Задай этот вопрос в форуме по алгоритмам, может там тебе что-нибудь предложат...
... << RSDN@Home 1.1.0 stable >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[3]: Вычисление проииводной
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 14.12.03 17:44
Оценка:
Здравствуйте, Inter3, Вы писали:

I>Нужно найти формулу производной.

По-моему, даже современные аналитические пакеты такого не умеют. Может, maple все же справится? Но как автономно — не знаю, надо искать готовое решение в инете.

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re[4]: Вычисление проииводной
От: Inter3  
Дата: 14.12.03 17:55
Оценка: 6 (1)
Здравствуйте, Slicer [Mirkwood], Вы писали:

SM>По-моему, даже современные аналитические пакеты такого не умеют. Может, maple все же справится? Но как автономно — не знаю, надо искать готовое решение в инете.


Ну, как сказать, что не умеет. Advanced Grapher (http://www.alentum.com/agrapher/index.htm), например, умеет. К тому же, эта прога достаточно простая. Вообще, найти формулу производной не так-то сложно. Нужно просто разложить все на множители и по правилам найти производную. Но это писать очень муторно. Я бы хотел как-нибудь попроще, или хотя бы модуль найти для вычисления производных для Билдера.
Re[4]: Вычисление проииводной
От: ArtDenis Россия  
Дата: 14.12.03 18:07
Оценка:
Здравствуйте, Slicer [Mirkwood], Вы писали:

I>>Нужно найти формулу производной.

SM>По-моему, даже современные аналитические пакеты такого не умеют. Может, maple все же справится? Но как автономно — не знаю, надо искать готовое решение в инете.

Насколько я знаю, аналитически можно найти производную от любой функции. Вот с интегралами дело обстоит посложнее.
... << RSDN@Home 1.1.0 stable >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[5]: Вычисление проииводной
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 14.12.03 20:32
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Насколько я знаю, аналитически можно найти производную от любой функции. Вот с интегралами дело обстоит посложнее.

f(x)=|x|
Прошу... И это еще самый простой из таких случаев. Производная получается кусочно заданной и разрывной.

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re[6]: Вычисление проииводной
От: ArtDenis Россия  
Дата: 14.12.03 20:53
Оценка:
Здравствуйте, Slicer [Mirkwood], Вы писали:

SM>Здравствуйте, ArtDenis, Вы писали:


AD>>Насколько я знаю, аналитически можно найти производную от любой функции. Вот с интегралами дело обстоит посложнее.

SM>f(x)=|x|
SM>Прошу... И это еще самый простой из таких случаев. Производная получается кусочно заданной и разрывной.

Но по крайней мере, её можно выразить в виде формулы.
... << RSDN@Home 1.1.0 stable >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re: Вычисление проииводной
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.12.03 16:55
Оценка:
Здравствуйте, Inter3, Вы писали:

I>Есть строка в Билдере. Эта строка содержит формулул функции. Нужно по этой формуле найти производную функции в виде строки.

I>Кто знает, помогите плиз! Заранее спасибо.
Все очень просто:
1. парсим строку и преобразуем в выражение в дерево.
2. рекурсивно применяем знакомые со средней школы правила дифференцирования:
const -> 0
G(x) * F(x) -> G'(x)* F(x) + G(x)* F'(x)
x^a -> a*(x^(a-1))
F(G(x)) -> F'(G(x)) * G'(x)
Этих правил вполне достаточно. Все остальное выводится.
Если хочется работать не только со сложениями/вычитаниями/умножениями/возведениями в степень, то добиваем остальные правила, типа
ln(x) -> 1/x
e^x -> e^x
sin(x) -> cos(x)
cos(x) -> -sin(x)
3. Преобразуем дерево обратно в текст.
... << RSDN@Home 1.1.2 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Вычисление проииводной
От: ArtDenis Россия  
Дата: 22.12.03 17:09
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Все очень просто:

S>1. парсим строку и преобразуем в выражение в дерево.
S>2. ......

Осталось только всё это реализовать в программе
... << RSDN@Home 1.1.0 stable >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[2]: Вычисление проииводной
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 22.12.03 18:51
Оценка:
М-да. А еще для всех функций с кусочно заданной производной (abs(x) и т.п.) парсим их аргументы, определяем ОДЗ, определяем вид производной на каждом из ее [ОДЗ] интервалов, для этого, вероятно, придется решать неравенства, и таки не всегда линейные, а очень даже общего вида. И получаем в результате конечное множество пар (функция, интервал). Это если сможем все эти шаги реализовать.

Не, ну, можно, конечно, ограничиться функциями с простыми производными. Но ведь в вопросе такая возможность не оговаривается...

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re: Вычисление проииводной
От: LaptevVV Россия  
Дата: 22.12.03 18:53
Оценка:
Здравствуйте, Inter3, Вы писали:

I>Есть строка в Билдере. Эта строка содержит формулул функции. Нужно по этой формуле найти производную функции в виде строки.

I>Кто знает, помогите плиз! Заранее спасибо.
Кнут. Том 1. Все написано.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Вычисление проииводной
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 22.12.03 19:02
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Кнут. Том 1. Все написано.

Угу, в соавторстве с Н.Пряником.
А вкратце, для тех, кому до Кнута ползти далеко и сессия в разгаре? Как, все-таки?

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re[3]: Вычисление проииводной
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.12.03 21:55
Оценка:
Здравствуйте, Slicer [Mirkwood], Вы писали:

SM>М-да. А еще для всех функций с кусочно заданной производной (abs(x) и т.п.) парсим их аргументы, определяем ОДЗ, определяем вид производной на каждом из ее [ОДЗ] интервалов, для этого, вероятно, придется решать неравенства, и таки не всегда линейные, а очень даже общего вида. И получаем в результате конечное множество пар (функция, интервал). Это если сможем все эти шаги реализовать.

Не, ну я просто прикинул, что парень не MatLab собрался изборетать... А так, потренироваться на кошечках...
З.Ы. Для abs(x) делаем механику кусочно-непрерывных функций, т.е. x<0?-x:x, которые преобразуются по правилу
C(x)?F(x):G(x) -> C(x)?F'(x):G'(x)
по этому критерию abs перейдет в такую:
x<0?-1:1
никаких неравенств решать не придется.
Если мы дифференцируем что-то типа abs(x^2-2), то ее производной будет
x^2-2<0?-2x:2x
никто ж не требует красивостей особых
... << RSDN@Home 1.1.2 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.