2014 dxdy logo

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

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




На страницу 1, 2  След.
 
 МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение18.05.2015, 14:10 
Добрый день!

Есть таблица значений x и y.
С помощью МНК c базисной

$f_1=A\sin x+b$

умею находить амплитуду (систему уравнений решаю матричным методом),

подскажите какими методами решается система уравнений, в случае если в базисной функции появится частота и фаза

$f_2=A\sin(2\pi f t + \varphi) + b$

ведь теперь неизвестные будут не только в виде коэффициентов, но еще и в функциях $\sin x$, \cos x$

 
 
 
 Posted automatically
Сообщение18.05.2015, 14:42 
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
по следующим причинам:

- неправильно набраны формулы (краткие инструкции: «Краткий FAQ по тегу [math]» и видеоролик Как записывать формулы);

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.


\sin \pi и т.д.

 
 
 
 Posted automatically
Сообщение18.05.2015, 20:51 
 i  Тема перемещена из форума «Карантин» в форум «Помогите решить / разобраться (М)»

 
 
 
 Re: МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение18.05.2015, 21:11 
Аватара пользователя
Что-то похожее было topic55558.html

 
 
 
 Re: МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение18.05.2015, 22:10 
Аватара пользователя
1. Что является независимой переменной, $t$ или $x$? Раз функция такая $f_2=A\sin(2\pi f t + \varphi) + b$, значит, в таблице уже не пары $(x_i, y_i)$, а пары $(t_i, y_i)$, правильно?

2. Сколько у Вас таких базисных функций, одна или много? Почему Вы про неё говорите в единственном числе?

3. Шаг независимой переменной ($t_i$ ?) постоянный?

 
 
 
 Re: МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение18.05.2015, 22:37 
1. Да, в таблице тогда пары $(t_i, y_i)$,

2. Одна $f_1=A\sin x+b$ , но хочу перейти к $f_2=A\sin(2\pi f t + \varphi) + b$ , или вы имеете в виду, что точек $n$ и я не написал суммы в формулах?

3. Да, шаг постоянный

Цитата:
Что-то похожее было topic55558.html


Спасибо, буду вникать

 
 
 
 Re: МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение18.05.2015, 22:56 
Аватара пользователя
kolchenkov в сообщении #1016944 писал(а):
2. Одна $f_1=A\sin x+b$ , но хочу перейти к $f_2=A\sin(2\pi f t + \varphi) + b$ , или вы имеете в виду, что точек $n$ и я не написал суммы в формулах?
Одна — хорошо.
Суммы? А про какие суммы Вы говорите?

Я вот о чём спрашиваю. Часто задача ставится так: для $N$ синусоид подобрать их амплитуды $A_k$, частоты $\omega_k$ и фазы $\varphi_k$ (где $k=1..N$), так, чтобы сумма этих синусоид
$y(t)=\sum\limits_{k=1}^N A_k \sin(\omega_k t+\varphi_k)$
наилучшим образом соответствовала табличным данным. Например, точек у Вас $n=1000$, а синусоид $N=5$, и их параметры надо подобрать. Вот я и хочу быть уверенным, что это не Ваш случай, что у Вас только одна синусоида с неизвестными параметрами.

 
 
 
 Re: МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение18.05.2015, 23:33 
Цитата:
Я вот о чём спрашиваю. Часто задача ставится так: для $N$ синусоид подобрать их амплитуды $A_k$


Нет, это не мой случай, как раз наоборот, синусоида одна и таким образом хочу выделить так сказать основную гармонику.

 
 
 
 Re: МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение19.05.2015, 00:49 
Аватара пользователя
Самое трудное — определить частоту. Удобнее работать с циклической частотой $\omega=2\pi f$, от неё потом легко перейти к $f$.
Пусть $\tau$ — шаг по $t$, тогда $t_k=t_0+k\tau$.
Поэтому $\omega t_{k\pm 1}=\omega t_{k}\pm\omega\tau$.

Попробуйте такой подход.
Возьмём значения $y$ для трёх последовательных временных отсчётов:
$\begin{array}{lll}y_{k-1}&=A\sin(\omega t_k+\varphi-\omega\tau)&+b\\y_{k}&=A\sin(\omega t_k+\varphi)&+b\\y_{k+1}&=A\sin(\omega t_k+\varphi+\omega\tau)&+b\end{matrix}$

Для $y_{k-1}, y_{k+1}$ применим формулу синуса разности/суммы:
$y_{k-1}=A\sin(\omega t_k+\varphi)\cos\omega\tau-A\cos(\omega t_k+\varphi)\sin\omega\tau+b$
$y_{k+1}=A\sin(\omega t_k+\varphi)\cos\omega\tau+A\cos(\omega t_k+\varphi)\sin\omega\tau+b$

Сложим, разделим на $2$.
$\begin{array}{l}\frac 1 2(y_{k-1}+y_{k+1})=A\sin(\omega t_k+\varphi) \cos\omega\tau+b=\\=(y_{k}-b) \cos\omega\tau+b=y_{k}\cos\omega\tau+b(1-\cos\omega\tau)\end{array}$

Обозначим $p=\cos\omega\tau,\;\;q=b(1-\cos\omega\tau)$. Тогда
$y_{k}p+q=\frac 1 2(y_{k-1}+y_{k+1})$ для всех $k$, кроме крайних.
Получили сильно переопределённую систему линейных алгебраических уравнений относительно неизвестных $p, q$.

 
 
 
 Re: МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение19.05.2015, 13:45 
Аватара пользователя
Если есть частота - остальное легко получается линейной регрессией (чтобы избежать нелинейности, связанной с фазой, лучше преобразовать
$A\sin(2\pi ft+\varphi)=A_1\sin(2\pi ft)+A_2\cos(2\pi f t)$
и тогда оценивается чисто линейная модель, переход к амплитуде и фазе очевиден)
Сложность лишь в оценке частоты. Фурье даёт обычно недостаточную точность, поскольку искомая частота может не попасть на "зуб гребёнки частот". Можно использовать авторегрессионные оценки, максимальной энтропии, метод Прони и др.
Много материала есть, например, в книге Дж. Марпл-мл. "Цифровой спектральный анализ".

 
 
 
 Re: МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение19.05.2015, 14:04 
Аватара пользователя
Точно, метод Прони. То, что я выше написал, — по его мотивам. Идея метода в том, что дискретная синусоида $y_k=A\sin(\omega t_k+\varphi)$ удовлетворяет линейному рекуррентному соотношению
$2y_{k}\cos\omega\tau=y_{k-1}+y_{k+1}$
Изначально метод Прони разрабатывался для экспонент, которые тоже удовлетворяют рекуррентным соотношениям. Но синусоида — сумма двух комплексных экспонент.
Значит, для оценки частоты (или частот) надо выявить в сигнале рекуррентные соотношения. Марпл, глава 11.

 
 
 
 Re: МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение19.05.2015, 17:10 
Аватара пользователя
Причём если у нас, как выписано у топикстартера, вовсе нет составляющей ошибки, достаточно четырёх точек. Сначала переходим к разностям соседних отсчётов, убирая b, полученный сигнал будет синусоидой той же частоты, но отличающийся амплитудой и фазой (как именно отличается - легко выписать, но зачем?), остаётся три точки, потом из
$\cos\omega\tau=\frac {y_{k-1}+y_{k+1}} {2y_{k}}$
находим частоту, далее линейно.
Но в реальной задаче появляется случайная ошибка, и всё становится грустно...

 
 
 
 Re: МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение19.05.2015, 18:28 
Аватара пользователя
Евгений Машеров в сообщении #1017279 писал(а):
Сначала переходим к разностям соседних отсчётов, убирая b
Метод очень простой, но, боюсь, численное дифференцирование будет усиливать шум.
Евгений Машеров в сообщении #1017279 писал(а):
Но в реальной задаче появляется случайная ошибка, и всё становится грустно...
Так на то и переопределённая система. Точек $100$, неизвестных две.

 
 
 
 Re: МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение19.05.2015, 19:18 
Аватара пользователя
Если время наблюдения за колебаниями много больше чем период, можно оценить $A$ и $b$, затем путем замены переменной перейти к линейной функции с коэффициентами $\omega$ и $\varphi$. Затем обратно вернуться к линейной функции с $A$ и $b$ и уточнить их. И т.д., пока не устаканется. В случае со временем наблюдения много меньше чем период, придется репу чесать.

 
 
 
 Re: МНК для f=A*sin(2*pi*f*t + phi) + b
Сообщение19.05.2015, 19:52 
Аватара пользователя
В общем,всё упирается в величину ошибки. Чем больше, тем сложнее оценивание. При очень малой - как изложено выше, при большой нужны общие методы нелинейной регрессии.

 
 
 [ Сообщений: 24 ]  На страницу 1, 2  След.


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