2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему На страницу 1, 2, 3  След.
 
 Производные табличной функции
Сообщение23.12.2014, 19:20 
Аватара пользователя


26/05/12
1700
приходит весна?
Помогите, пожалуйста, решить следующую (классическую?) задачу.

Функция одной переменной задана таблицей значений $\left( {{x}_{k}},{{y}_{k}} \right)$. Эти значения являются результатами эксперимента и содержат какие-то погрешности. Шаг по иксу не является фиксированным и может меняться в довольно широких пределах, хотя обычно два соседних шага не отличаются между собой более чем в 3 раза. В каждом конкретном случае таблица фиксирована и у меня нет возможности перемерить меющиеся или домерить недостающие точки. Про функцию $y=f\left( x \right)$ известно, что она непрерывная и бесконечно дифференцируемая.

В этих условиях хотелось бы рассчитать первую и вторую (и, возможно третью) производную функции $f\left( x \right)$ в разных точках. О погрешности значений ${x}_{k}$ и ${y}_{k}$ ничего толком не известно, и хотелось бы их оценить в процессе расчётов. Для простоты, думаю, можно считать, что значения ${x}_{k}$ точны, а вся случайная погрешность заключена в значениях ${y}_{k}$ (что весьма хорошо согласуется с действительностью).

Вообще, мой излюбленный способ решения таких задач — найти адекватную аналитическую модель, с помощью МНК подогнать параметры модели, а производные (или значения самой функции) считать уже у модели. Но в данном случае модель не известна, а производные найти надо. Как мне действовать?

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение23.12.2014, 19:42 
Заслуженный участник
Аватара пользователя


13/08/08
14495
А что если посчитать все производные в узловых точках по самой простой формуле $y'_k=(y_{k+1}-y_k)/(x_{k+1}-x_k)$
Если про функцию ничего априори не известно, да ещё измерения с погрешностями, то оптимизации не будут иметь особого смысла.

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение23.12.2014, 19:47 
Аватара пользователя


26/05/12
1700
приходит весна?
Разве оптимизация не усредняет случайные значения, увеличивая тем самым точность конечного результата? Я всегда этим пользовался: стремился набраться по-больше измерений, чтобы получилось по-точнее. А предложенная вами формула как раз самая чувствительная к случайным погрешностям. Даже простая линейная аппроксимация ещё одной-двух пар соседних точек даст более точный результат.

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение23.12.2014, 19:49 


17/10/08

1313
Имеем некорректно поставленную задачу. Классика жанра – это регуляризация.
При поиске функции, регуляризация может состоять в минимизации квадрата какой-либо производной. Например, 4-ой, т.к. есть желание вычислять 3-ю производную.

Результирующую функцию можно представить таблично на достаточно мелкой сетке, не обязательно равномерной. Для простоты положим, что узлы сетки точно попадают в измеренные $x_k$.

Нужно минимизировать сумму отклонений экспериментальных данных от искомой функции, плюс, с некоторым регуляризующим коэффициентом, сумму квадратов аппроксимации 4-ой производной в узлах сетки.

После получения значений функции в узлах, с помощью аппроксимации можно получить 1-ю, 2-ю и 3-ю производную.

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение23.12.2014, 19:57 
Аватара пользователя


26/05/12
1700
приходит весна?
mserg, ваш подход требует вычисления производных регуляризованной функции, заданной таблично, то есть фактически та же задача, что и у меня, только значения функции (хоть они и не известны) являются точными и не содержат погрешность (на то она и регуляризована). Как вычислять эти производные (есть много разных схем разной точности, какая именно нужна), как выбрать регуляризующий коэффициент? Как-то не очень прозрачно.

Кроме того, интуиция подсказывает, что эта схема будет давать большую систематическую погрешность "отрезая" или "занижая" те разумные слагаемые исходных данных, которые хотелось бы оставить. Может быть есть какие-то другие подходы?

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение23.12.2014, 21:10 
Заслуженный участник


09/05/12
25179
Универсального решения нет, поэтому надо бы понять, для чего потом будут использоваться производные и можно ли наложить на них какие-нибудь дополнительные ограничения.

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение23.12.2014, 21:32 
Аватара пользователя


26/05/12
1700
приходит весна?
В дальнейших расчётах. Поэтому получение максимальной точности — это первостепенное требование. Я правильно понимаю, что погрешность будет складываться из двух неизбежных компонент: погрешности той или иной аппроксимации и погрешности исходных данных? В случае наложения адекватной модели (которой у меня нет) на эти данные первое слагаемое было бы равно нулю, а второе максимально усреднилось бы, верно?

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение23.12.2014, 22:15 
Заслуженный участник


09/05/12
25179
B@R5uk в сообщении #951331 писал(а):
В дальнейших расчётах.
Ну поняно, что не для получения эстетического удовольствия. Вопрос в том, какими будут расчеты: разные варианты ошибок в разных случаях будут более или менее значимы, и ответ на исходный вопрос надо подбирать с учетом этой информации.

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение23.12.2014, 23:22 


17/10/08

1313
B@R5uk в сообщении #951284 писал(а):
mserg, ваш подход требует вычисления производных регуляризованной функции, заданной таблично, то есть фактически та же задача, что и у меня, только значения функции (хоть они и не известны) являются точными и не содержат погрешность (на то она и регуляризована). Как вычислять эти производные (есть много разных схем разной точности, какая именно нужна), как выбрать регуляризующий коэффициент? Как-то не очень прозрачно.

Кроме того, интуиция подсказывает, что эта схема будет давать большую систематическую погрешность "отрезая" или "занижая" те разумные слагаемые исходных данных, которые хотелось бы оставить. Может быть есть какие-то другие подходы?


Речь идет о задаче на сетке. Скажем, экспериментальных данных 100, а сетка может иметь 1000 узлов. Из них 100 есть $x_k$, а оставшиеся 900 где-то между. Соответственно, на сетке в 1000 узлов получится 1000 производных (но, для задачи оптимизации концевые точки сетки для производных можно не рассматривать).

Для нахождения функции во всех узлах нужно решить задачу оптимизации (это выпуклая задача).

Чем больше регуляризующий коэффициент, тем суть плавнее будет результирующая функция. Т.к. задача некорректна, нет однозначного способа выбрать коэффициент.

P.S. У меня есть специальная программа для подбора вида функции. Если выложите данные, то можно попытаться подобрать функцию.

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение23.12.2014, 23:53 
Аватара пользователя


26/05/12
1700
приходит весна?
mserg в сообщении #951375 писал(а):
Скажем, экспериментальных данных 100, а сетка может иметь 1000 узлов.
Нет, это откровенный перебор. У меня порядка нескольких тысяч значений в рабочем примере.

mserg в сообщении #951375 писал(а):
Если выложите данные, то можно попытаться подобрать функцию
Нет, сейчас задача немного другая.

Значит, кроме регуляризации ничего нету? Не может быть!

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение24.12.2014, 00:37 


17/10/08

1313
B@R5uk в сообщении #951389 писал(а):
mserg в сообщении #951375 писал(а):
Скажем, экспериментальных данных 100, а сетка может иметь 1000 узлов.
Нет, это откровенный перебор. У меня порядка нескольких тысяч значений в рабочем примере.

И что? Метод внутренней точки берет миллионы.

Можно аппроксимировать (не интерполировать) сплайнами. Но для этого тоже придется немного пошаманить.

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение24.12.2014, 01:16 
Заслуженный участник
Аватара пользователя


15/10/08
30/12/24
12599
Численное дифференцирование - процедура некорректная. Посему, смотрите Тихонова-Арсенина.

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение24.12.2014, 02:08 
Аватара пользователя


26/05/12
1700
приходит весна?
Утундрий, скачал Методы решения некорректных задач, 2-е издание 1979 года. Просмотрел оглавление, не нашёл ничего про производную. Есть ещё какая-то книжка тех же авторов?

mserg в сообщении #951405 писал(а):
Можно аппроксимировать (не интерполировать) сплайнами.
Я правильно понимаю, что вы хотите охватить все данные целиком за один присест? Я вот больше склоняюсь к локальному анализу данных вблизи точки, в которой меня интересует производная.

mserg в сообщении #951405 писал(а):
Метод внутренней точки берет миллионы.
Есть какие-нибудь формулы для оценки погрешности метода?

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение08.01.2015, 00:55 
Аватара пользователя


26/05/12
1700
приходит весна?
Если на время забыть про то, что исходные ${{y}_{k}}$ содержат погрешности и считать их точными (такое тоже часто бывает), то как тогда можно по таблице посчитать производные функции и оценить их ошибки? Я вот знаю интерполяционный многочлен Лагнранжа и теорему об интерполировании функции этим полиномом:

Пусть $f\left(x\right)$ — функция из $C^{n+1}\left[a,b\right]$ и пусть $p\left(x\right)$ — полином степени меньшей или равной $n$, который интерполирует функцию $f\left(x\right)$ в различных точках ${{x}_{0}},{{x}_{1}},\ldots ,{{x}_{n}}\in \left[ a,b \right]$. Тогда для каждого $x\in \left[ a,b \right]$ существует точка ${{\xi }_{x}}\in \left[ a,b \right]$ такая, что
$$f\left( x \right)-p\left( x \right)=\frac{1}{\left( n+1 \right)!}{{f}^{\left( n+1 \right)}}\left( \xi_x  \right)\prod\limits_{k=0}^{n}{\left( x-{{x}_{k}} \right)}$$

Что если интерполяционный полином продифференцировать и производную функции оценивать как значение этой производной полинома? Какая будет ошибка? Существует ли подобная теорема на этот случай?

 Профиль  
                  
 
 Re: Производные табличной функции
Сообщение08.01.2015, 07:41 
Заслуженный участник


16/02/13
4214
Владивосток
Таки ещё и ещё раз: из ничего невозможно извлечь ничего (кроме, как где-то слышал, высокого о себе мнения). Через точки можно провести бесчисленное множество функций с любыми в этих точках производными. Кстати говоря, помнится, есть развитие задачи интерполяционного многочлена для случая, когда в некоторых точках заданы значения функция и/или нескольких производных. Не вспомню подробностей, но полином таки имеется при любом наборе данных.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2, 3  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group