| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > производная |
| Автор: Remiznik 1.5.2005, 00:01 |
| подскажите !!! как можно брать сложнае производные через паскаль с помошью таблица производных ? |
| Автор: Fedor 1.5.2005, 07:19 |
| ты должен написать разбор выражений. |
| Автор: Remiznik 2.5.2005, 03:55 |
| я понел ... а посоветовать как это зделат или хоябы где про это прочитать можешь ? |
| Автор: SPrograMMer 2.5.2005, 12:36 | ||
http://forum.vingrad.ru/index.php?showtopic=49989 могу на C# библиотечку дать, собственного сочинения, правда сейчас считает тока "простые" выражения со скобками и знаками + - * / без спец функций. |
| Автор: Romtek 4.5.2005, 00:03 |
| Производные вычислять по заданному значению или аналитически? Это большая разница! 2-й способ многим не под силу. Приведи пример того, чего ты хочешь добиться. |
| Автор: Remiznik 4.5.2005, 00:38 |
| e'=e cos(x)'= -sin(x) я хочу чтобы пример решался по табличным даным !!! |
| Автор: poor_yorik 7.5.2005, 16:24 |
| Тебе придется хорошенько подумать над теорией конечных автоматов, чтобы для начала хоть прочитать и распознать формулу функции. Так что поищи ссылки на эту тему. |
| Автор: Remiznik 8.5.2005, 00:12 |
| что это за теория конечных автоматов |
| Автор: Fedor 8.5.2005, 06:06 |
| http://www.google.com/search?q=%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F+%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D1%85+%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%BE%D0%B2&sourceid=opera&num=0&ie=utf-8&oe=utf-8 |
| Автор: Marriage 11.5.2005, 12:29 |
| А без таблиц производных пойдет ??? |
| Автор: Remiznik 12.5.2005, 08:59 | ||
интерестно..... посмотреть )))) |
| Автор: Marriage 12.5.2005, 14:51 |
| посмотреть врядли .... Могу рассказать .... Я уже писал раньше в каком-т раздле, как .... Смысл такой : С помощью таблицы производных можно найти не все производные. Есть такие ф-и от которых производные не беруться. Поэтому берём какую-нить функцию. Допустим нам нужно найти значение производной в точке 10. Вычисляем значение функции в точке a = 9.9999999999999999999999999999 и b = 10,000000000000000000000001. получаем 2 точки. Если провести через них линию - ее можно назвать с опр. погрешностью касательной. Ну а дальше имея уже 2 точки [a,F(a)] и [b,F(b)] - найти тангенс не составит трудности. Особенно если нарисовать |
| Автор: Mamant 12.5.2005, 15:02 |
| Во загнул.. |
| Автор: Алина 14.5.2005, 15:35 |
| Если надо численное значение производной, то можно и без таблицы производных: f'(x)=(f(x+h)-f(x))/h, h - это значение требуемой точности f''(x)=(f(x-h)-2f(x)+f(x+h))/(h^2/2) А еще удобнее вспомнить про ряды Тейлора.... |
| Автор: remax 23.5.2005, 20:05 |
| Подводя итог всему вышесказанному и исправляя некоторые неточности следует отметить: 1) Производные можно брать аналитически и численно. Аналитически - это когда у нас в качестве исходных данных используется функция в символьном виде и результат получаем тоже в символьном виде. Численно - это когда имеем массив значений функции и в результате получаем массив значений производной в соответствующих точках. 2) Чтобы на компьютере взять производную в аналитическом виде необходимы две вещи - парсинг (разбор строки) и решатель (собственно вычислитель производной). Полностью универсальных средств для паскаля или делфи я пока не встречал. Понятно, что это не простая задача. В качестве альтернативы можно использовать большинство математических пакетов (Matlab, MatCAD и др.), поддерживающих символьную арифметику. 3) Если использовать численные методы, то значения производных можно получить только приблизительно (как и любые результаты численных методов). Зато, не важно какая функция дифференцируется. Численное вычисление производных основывается на методе конечных разностей. 4) Метод конечных разностей проще всего объяснить так: Из определения, производная это предел отношения приращения функции к приращению аргумента, при условии стремления аргумента к нулю. Lim(dY/dX) dx->0 На практике мы не можем обеспечить стремление аргумента к нулю - шаг между точками всегда имеет какое-то конечное значение (отсюда и название метода, а также причина погрешности). Т.е. приближенно производная в точке равна отношению разности ордиант к разности абсцисс. Для примера, возьмем три значения функции в точках (X1,Y1) , (X2,Y2) и (X3,Y3). Производную в точке два мы можем численно расчитать тремя способами: (Y2-Y1)/(X2-X1) - Левые конечные разности (Y3-Y2)/(X3-X2) - Правые конечные разности (Y3-Y1)/(X3-X1) - Центральные конечные разности Аналогично можно расчитать весь массив - последовательно точку за точкой... 5) Значения производные более высоких порядков можно получить либо последовательно дифференцируя по формулам для первой производной заданное количество раз, либо, используя ряды Тейлора вывести формулу, либо строить полином и дифференцировать уже его, либо взять готовые формулы, которые есть в любой книге по численным методам. 6) Если у Вас есть аналитическая функция а необходимо использовать численные методы, то нет ничего проще - выбираете диапазон и шаг изменения абсциссы и табулируете свою функцию (получаете таблицу). А дальше - как в пунктах 5,6! |
| Автор: remax 26.5.2005, 21:49 |
| Уф. Наконец-то инет перестал глючить и удалось сообщение передать полностью |