Перейти к содержанию
    

Алгоритм аппроксимации

Всем привет!

 

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

 

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

 

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

 

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

 

post-18458-1425365252_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет!

 

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

 

post-18458-1425365252_thumb.jpg

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну так сплайн и берите, второй степени

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

три уравнения три неизвестных.

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну так сплайн и берите, второй степени

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

три уравнения три неизвестных.

 

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

 

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

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

 

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

К стати, линейная аппроксимация вполне устроила бы, если удалось бы победить пилообразной поведение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так условие прохождения функции через экспериментальные точки f(x_i)=y_i обязательное или нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...