Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аппроксимация функции sin(x) методом МНК, Подскажите как сгладить синусоиду 
:(
    Опции темы
Lutfen
Дата 1.4.2010, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.12.2007

Репутация: нет
Всего: нет



Есть таблично заданные данные:
Xi=[0,20, ..., 360]
Yi=[1261,1204,993,654,321,-236,-580,-1050,-1302,-1406,-1350,-1139,-800,-373,105,534,804,1157,1261]

Если построить график, то получается синусоида. 
Как мне ее правильно аппроксимировать, методом МНК, используя функцию sinX ? 
PM MAIL ICQ   Вверх
GoldFinch
Дата 1.4.2010, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



для МНК функцию надо представить как 
  y = a*f(x)+b, 
где a, b - коэффициенты которые определит МНК,
f - известная функция

соответственно тут 
y = a sin(x) + b
значит надо найти {Ti} = {sin(Xi)}
затем применить линейный регрессионный анализ к точкам {Ti}  и {Yi}

В Excel'е это функция ЛИНЕЙН(), 
если надо - в справке к ней написаны формулы которые она использует.
PM MAIL ICQ   Вверх
VictorTsaregorodtsev
Дата 1.4.2010, 15:31 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 28.7.2006

Репутация: 3
Всего: 8



GoldFinch правильно подсказал, что если линеаризировать, то будет проще всего (и екселем можно будет проверить).
Lutfen, если нужны другие варианты (перед преподом, например, извилины растопырить) - то вот:
1) можно записать МНКшный критерий типа Сумма[(y-y')^2], т.е. сумма (по всем эталонным парам "аргумент-значение") квадратов ошибок аппроксимации, продифференцировать этот критерий по параметрам идентифицируемой функции, приравнять производные к нулю и решить систему уравнений.
2) с некоторым малым шагом топать вдоль вектора антиградиента (градиент - вектор частных производных, в данном случае, МНКшного критерия, антиградиент - градиент со знаком "минус") до тех пор, пока не придем в минимум критерия (где первые производные равны нулю). Будет ли минимум глобальным или локальным - будет зависеть от вида оптимизируемой функции (при y=a*sin(x)+b все минимумы вроде должны быть глобальными, а вот если вводим еще и частоту-фазу, т.е. y=a*sin(zx+w)+b, то могут появиться и локальные минимумы).


PM MAIL WWW   Вверх
GoldFinch
Дата 1.4.2010, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



del.

Это сообщение отредактировал(а) GoldFinch - 1.4.2010, 16:18
PM MAIL ICQ   Вверх
Lutfen
Дата 1.4.2010, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.12.2007

Репутация: нет
Всего: нет



То есть, я так понимаю, нахожу коэффициенты а и b как для линейной регрессии

b=[n*Sum(Y*X)-Sum(X)*Sum(Y)]/[n*Sum(X^2)-Sum(X)^2];

a=[Sum(Y)-b*Sum(X)];

Затем подставляю в функцию Y(x)=a*sin(x)+b и у меня должно получится моя синусоида?

Добавлено через 6 минут и 16 секунд
VictorTsaregorodtsev, а можно про второй вариант более подробно(по проще в понимании), так как в первым вариантом у меня не получается моя синусоида, выходит прямая((( 
PM MAIL ICQ   Вверх
Akina
Дата 1.4.2010, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Можно тупо Экселем... см. аттач. Главное - правильно подобрать начальные значения.

Присоединённый файл ( Кол-во скачиваний: 48 )
Присоединённый файл  1.JPG 153,29 Kb


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
GoldFinch
Дата 1.4.2010, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



Цитата(Lutfen @  1.4.2010,  16:20 Найти цитируемый пост)
То есть, я так понимаю, нахожу коэффициенты а и b как для линейной регрессии

b=[n*Sum(Y*X)-Sum(X)*Sum(Y)]/[n*Sum(X^2)-Sum(X)^2];

a=[Sum(Y)-b*Sum(X)];

вместо X - sin(X)
PM MAIL ICQ   Вверх
Lutfen
Дата 2.4.2010, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.12.2007

Репутация: нет
Всего: нет



Цитата(GoldFinch @ 1.4.2010,  17:19)
Цитата(Lutfen @  1.4.2010,  16:20 Найти цитируемый пост)
То есть, я так понимаю, нахожу коэффициенты а и b как для линейной регрессии

b=[n*Sum(Y*X)-Sum(X)*Sum(Y)]/[n*Sum(X^2)-Sum(X)^2];

a=[Sum(Y)-b*Sum(X)];

вместо X - sin(X)


Сделал так, получилось не то...smile 



Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  11.JPG 139,94 Kb
PM MAIL ICQ   Вверх
Pavia
Дата 2.4.2010, 10:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Lutfen, У тебя не sin(x), а cos(x).
PM MAIL   Вверх
Lutfen
Дата 12.4.2010, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.12.2007

Репутация: нет
Всего: нет



Подскажите где можно найти информацию об этом!!! ну очень нужно....
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0765 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.