Форум сайта python.su
Пишу практику и встала задача:
Есть зависимость перемещения от времени заданная массивом.
Пример:
Т.е. первое число время второе перемещение и т.д.
Препод просит аппроксимировать эту зависимость кубическим сплайном.
А потом получить зависимость скорости от времени т.е. продифференцировать.
Что и как делать не говорит.
Видимо я уже и математику подзабыл. Да и при написании прог никогда не сталкивался с дифференцированием.
Помогите пожалуйста справится с этой задачей.
Заранее всем огромное спасибо.
Офлайн
Реши математически, на бумаге, а уже потом - программируй.
Офлайн
Для дифференцирования можно использовать Scipy, или если препод захочет, чтобы реализовать самому, то есть без подключения доп. библиотек, то использовать Численные методы дифференцирования - http://www.toehelp.ru/theory/informat/lecture10.html.
Офлайн
Спасибр всем откликнувшимся.
Вот на бумаге пока тоже не особо вспоминается как решить это дело.
SCIPY использовать можно. Не подскажите как с ее помощью это реализовать? А то с английским испытываю трудности.
Отредактировано (Фев. 17, 2010 18:07:19)
Офлайн
Кстати, а какие есть для питона библиотеки аппроксимации(интерполяции/экстраполяции)?
Ну чтобы там и сплайны были и Лагранж и Чебышев и тонкая настройка и кофе в постель? :)
А то в Scipy что то непонятное.
Отредактировано (Фев. 19, 2010 21:24:07)
Офлайн
В numpy есть как минимум сплайны. Для себя я делал свой класс сплайнов (http://jenyay.net/uploads/Programming/Python/spline.zip), но для скорости там все-равно используется класс массива из numpy.
Офлайн
А еще все нужные алгоритмы хорошо описаны здесь.
Офлайн
Одного я не могу в нумпуйном сплайне понять - зачем он до десятых округляет?
x=np.array(range(100), float)
y = np.array(list(i*i for i in x))
z=np.array([5.0,5.1,5.2])
np.interp(z, x, y)
>>> array([ 25. , 26.1, 27.2])
Отредактировано (Фев. 20, 2010 00:36:46)
Офлайн
JenyayПосмотрел ваш класс. Вы не подскажите как использовать сплайны из numpy? Есть какая либо русскоязычная литература по numpy?
В numpy есть как минимум сплайны. Для себя я делал свой класс сплайнов (http://jenyay.net/uploads/Programming/Python/spline.zip), но для скорости там все-равно используется класс массива из numpy.
Офлайн
Немного перепутал, сплайны есть не в numpy, а в scilab - http://www.scipy.org/doc/api_docs/SciPy.interpolate.interpolate.html#spline.
По поводу производных, скачайте книжку, на которую я дал ссылку, дам есть все формулы для вычисления производной (100-ая страница).
Офлайн