Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Алгоритм аппроксимации
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
AndreyVN
Всем привет!

Никому не попадался алгоритм интерполяции кривой Rho(x) по заданным точкам R(x_i), при наличии дополнительного условия – интерполированная кривая должна иметь заданную площадь на сеточных интервалах \Int _x_i ^x_i+1 Rho(x)dx = S_i.

Пока додумался до следующего – площадь трапеции определяется ее высотой, значит, если поставить точки по середине интервалов на которых определена площадь Si, можно провести через них прямые, и затем крутить вокруг этих точек (зеленые кружочки), чтобы получить более-менее гладкую кривую. Проблема в том, что такой алгоритм может приводить к пилообразным аппроксимациям (рисунок).

Нужно что-то более гладкое, типа сплайнов.

PS: Еще мыслишка пришла, задача может быть рассмотрена как обратная по отношению к задаче численного интегрирования. Можно метод Симпсона в обратную сторону раскрутить от площадей к коэффициентам полиномов. А то, что на картинке соответствует обратной задаче интегрирования методом трапеций.

Нажмите для просмотра прикрепленного файла
Onkel
Цитата(AndreyVN @ Mar 3 2015, 09:48) *
Всем привет!

Никому не попадался алгоритм инт..

Нажмите для просмотра прикрепленного файла

или не очень четко поставлена задача, или я что недопонял. Я бы начал с того, что написал бы в явном виде "гладкость" как функцию, и оптимизировал бы сумму весовых функций по гладкости, по отклонениям от площадей и по сумме квадратов отклонений.
_pv
ну так сплайн и берите, второй степени
f(x_i)=y_i;
f(x_i+1)=y_i+1;
\Int_x_i^x_i+1 f(x)dx = S_i
f(x) = a0 + a1 * x + a2 * x^2
три уравнения три неизвестных.

ну или четвёртой степени и с непрерывностью производной.

AndreyVN
Цитата(_pv @ Mar 5 2015, 01:39) *
ну так сплайн и берите, второй степени
f(x_i)=y_i;
f(x_i+1)=y_i+1;
\Int_x_i^x_i+1 f(x)dx = S_i
f(x) = a0 + a1 * x + a2 * x^2
три уравнения три неизвестных.

ну или четвёртой степени и с непрерывностью производной.


Первый вариант приведет к серии "горбов" на каждом интервале сетки. То есть, функция привязана к узлам сетки, а площадь регулируется величиной горба.
Второй вариант тоже не гарантирован от "грбатости". На одном сеточном интервале функция может метаться вверх вниз - чтобы и производные уровнять и площадь обеспечить. Формально решение будет найдено, но благодаря сложному виду функции на каждом интервале.

В силу физики задачи я могу игнорировать значения функции на сетке. Просто они имеются и ими можно воспользоваться. Физически осмысленным является требование на площади интервалов. В таком контексте любой из алгоритмов численной интегрирования разрешается в обратную сторону. Пока мыслю в этом направлении....
К стати, линейная аппроксимация вполне устроила бы, если удалось бы победить пилообразной поведение.
_pv
так условие прохождения функции через экспериментальные точки f(x_i)=y_i обязательное или нет?
Hose
Может фильтрануть перед интерполяцией?
Hose
И предварительно имеет смысл посмотреть осциллографом что творится на входе ацп, дабы знать к чему стремиться, а то может и не честно будет маскировать колебательный процесс, поскольку он может указывать на неоптимальность работы системы авторегулирования.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.