2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Формула касательной к графику представленного массивом
Сообщение03.04.2009, 12:07 
Помогите разобраться, как вывести формулу касательной в любой точке к графику функции представленной 2-мерным массивом данных (х и у). Данные, к сожалению как и все экспериментальные, имею небольшой местный разброс.

Есть идея строить местные хорды: ограничить небольшую местную выборку и вывести формулу прямой, по которой эти данные хорошо коррелировали бы.

К сожалению не настолько хорошо подкован в математике, чтобы самому смоделировать данный процесс...

 
 
 
 Re: Формула касательной к графику представленного массивом
Сообщение03.04.2009, 12:39 
Aneto писал(а):
Помогите разобраться, как вывести формулу касательной в любой точке к графику функции представленной 2-мерным массивом данных (х и у). Данные, к сожалению как и все экспериментальные, имею небольшой местный разброс.

Есть идея строить местные хорды: ограничить небольшую местную выборку и вывести формулу прямой, по которой эти данные хорошо коррелировали бы.

К сожалению не настолько хорошо подкован в математике, чтобы самому смоделировать данный процесс...

Этих данных недостаточно, чтобы построить касательные к графику в каждой точке.
Если функция задана дискретно, то значения её в промежутках могут быть какими угодно.
Соответственно касательных может быть сколько угодно. Вот если бы у Вас стояла задача построить касательную к одной из возможных функций интерполяции, то тогда можно было бы ответить более конкретно.

 
 
 
 
Сообщение03.04.2009, 15:41 
Аватара пользователя
Самое простое, что могу предложить --- это построить прямую методом наименьших квадратов по точкам, отстоящих от нужной "не очень далеко" (похоже, что это Ваша идея и есть). Понятие "не очень далеко" зависит от конкретной ситуации и может подбираться экспериментально.
Формулы для метода наименьших квадратов можно найти, например, здесь.

 
 
 
 
Сообщение03.04.2009, 15:51 
Почему именно прямую? При не слишком высоких степенях -- можно использовать полиномиальную модель, а потом тупо её продифференцировать.

 
 
 
 
Сообщение03.04.2009, 16:19 
Аватара пользователя
Это уже будет не самое простое :) Для человека, "не настолько хорошо подкованного в математике" систему уравнений будет посложнее решать...

 
 
 
 
Сообщение08.04.2009, 12:00 
но зачем тогда мучиться и с МНК если можно построить просто хорды? ведь соотношения углов "соседствующих" хорд будет таким же как и у касательных, с допустимой степенью точности, разве нет?

 
 
 
 
Сообщение08.04.2009, 12:26 
Аватара пользователя
Aneto писал(а):
но зачем тогда мучиться и с МНК если можно построить просто хорды? ведь соотношения углов "соседствующих" хорд будет таким же как и у касательных, с допустимой степенью точности, разве нет?

Проблема в том, что
Aneto писал(а):
Данные, к сожалению как и все экспериментальные, имею небольшой местный разброс.

Даже небольшая погрешность в исходных данных может приводить (и на практике часто приводит) к большой погрешности в вычислении производных. МНК (или какой-нибудь другой метод) нужен как раз для "сглаживания" этих погрешностей.

 
 
 
 
Сообщение13.04.2009, 12:18 
хм, спасибо
Но метод касательных в седиментационном анализе, как раз и нужен для того, чтоб не как можно меньше интерполировать исходные данные. Просто делается он издавна графически (на глаз)и уже тогда зарекомендовал себя.
Я думаю, учитывая этот факт, можно быть уверенным, что к большим погрешностям это не приведет.
И кстати наоборот, наткнулся тут на программку, которая сначала интерполирует все данные, а затем строит касательные, так результат выходит более чем странный, хотя делает она все правильно и несколькими методами... и каждый метод дает свои результаты, как так(((

 
 
 
 
Сообщение13.04.2009, 13:15 
Аватара пользователя
Зачем интерполировать данные с погрешностями? Конечно, при таком подходе будут более чем странные результаты :)
Чтобы сгладить погрешности, нужно аппроксимировать.

 
 
 
 
Сообщение14.04.2009, 13:47 
хм, а в чем глубокое различие в этих методах?

 
 
 
 
Сообщение14.04.2009, 16:30 
Аватара пользователя
Задача интерполяции заключается в том, чтобы найти функцию, проходящую в точности через заданные точки. При этом из-за особенностей задачи численного дифференцирования (чем меньше шаг между соседними точками, тем более результат чувствителен к погрешностям) результат оказывается далёк от ожидаемого.
Задача аппроксимации требует лишь "не очень большого" отклонения искомой функции от заданных точек, что позволяет добиться гораздо более устойчивого поведения решения.

 
 
 
 
Сообщение17.04.2009, 13:17 
А можно пару примеров алгоритмов аппроксимации? Ссылки например? буду очень благодарен.
:wink:

 
 
 
 
Сообщение17.04.2009, 13:36 
Метод Наименьших Квадратов.

 
 
 
 
Сообщение05.05.2009, 13:24 
:) Спасибо :)
Кстати, а еще какие бывают?

 
 
 
 
Сообщение05.05.2009, 14:11 
Аватара пользователя
Ну, например, Reduced Major Axis (RMA) Regression. К моему удивлению, в Google не нашёл подробного описания этого метода, хотя его идея очень проста: в нём минимизируется сумма квадратов расстояний от точек до аппроксимирующей кривой (в отличие от МНК, в котором минимизируется сумма квадратов разностей ординат точек и аппроксимирующей функции в попарно различных абсциссах точек). Метод более предпочтителен в случаях, когда погрешность могут иметь не только результаты измерений функции в какой-либо точке, но и сама координата этой точки (например, истинная температура в момент времени 10.01 сек была 12.99 градусов, а измерили 13.00 градусов, и приписали её моменту времени 10.00 сек). Однако есть в нём свои сложности. Метод RMA может выдать кривую, принимающую более одного значения в точке, т.е. не являющуюся графиком функции. Например, в линейном случае RMA вполне может выдать вертикальную линию, даже в случае, когда абсциссы всех точек попарно различны.

Добавлено спустя 17 минут 20 секунд:

Оказывается, метод RMA здесь уже обсуждался:
http://dxdy.ru/topic15175.html
Вот склероз! :D
Aneto, посмотрите, там много ссылок на похожие задачи.

 
 
 [ Сообщений: 15 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group