Найти - Пользователи
Полная версия: Помогите с дифференцированием и аппроксимацией.
Начало » Python для новичков » Помогите с дифференцированием и аппроксимацией.
1 2
nikitos
Пишу практику и встала задача:
Есть зависимость перемещения от времени заданная массивом.
Пример:
Т.е. первое число время второе перемещение и т.д.
Препод просит аппроксимировать эту зависимость кубическим сплайном.
А потом получить зависимость скорости от времени т.е. продифференцировать.
Что и как делать не говорит.
Видимо я уже и математику подзабыл. Да и при написании прог никогда не сталкивался с дифференцированием.

Помогите пожалуйста справится с этой задачей.
Заранее всем огромное спасибо.
Ferroman
Реши математически, на бумаге, а уже потом - программируй.
regall
Для дифференцирования можно использовать Scipy, или если препод захочет, чтобы реализовать самому, то есть без подключения доп. библиотек, то использовать Численные методы дифференцирования - http://www.toehelp.ru/theory/informat/lecture10.html.
nikitos
Спасибр всем откликнувшимся.
Вот на бумаге пока тоже не особо вспоминается как решить это дело.
SCIPY использовать можно. Не подскажите как с ее помощью это реализовать? А то с английским испытываю трудности.
knkd
Кстати, а какие есть для питона библиотеки аппроксимации(интерполяции/экстраполяции)?
Ну чтобы там и сплайны были и Лагранж и Чебышев и тонкая настройка и кофе в постель? :)
А то в Scipy что то непонятное.
Jenyay
В numpy есть как минимум сплайны. Для себя я делал свой класс сплайнов (http://jenyay.net/uploads/Programming/Python/spline.zip), но для скорости там все-равно используется класс массива из numpy.
Jenyay
А еще все нужные алгоритмы хорошо описаны здесь.
knkd
Одного я не могу в нумпуйном сплайне понять - зачем он до десятых округляет?
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])
nikitos
Jenyay
В numpy есть как минимум сплайны. Для себя я делал свой класс сплайнов (http://jenyay.net/uploads/Programming/Python/spline.zip), но для скорости там все-равно используется класс массива из numpy.
Посмотрел ваш класс. Вы не подскажите как использовать сплайны из numpy? Есть какая либо русскоязычная литература по numpy?
И как быть с производными?
Мне не нужно ничего особенного. Т.е. свой класс сплайнов мне ни к чему.
Я создам отдельные массивы xval и yval как их аппроксимировать кубическим сплайном и взять производную?
Еще раз прошу помощи.
Jenyay
Немного перепутал, сплайны есть не в numpy, а в scilab - http://www.scipy.org/doc/api_docs/SciPy.interpolate.interpolate.html#spline.

По поводу производных, скачайте книжку, на которую я дал ссылку, дам есть все формулы для вычисления производной (100-ая страница).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB