Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

Как с помощью метода наименьших квадратов (или любого другого метода) сделать синусоидальную аппроксимацию?

Александр Титов Гений (51721), закрыт 2 месяца назад
Имеется набор точек с известными координатами (xi; yi), и все они очень хорошо ложатся на синусоиду. Требуется представить наилучшим образом эту синусоиду в виде графика функции y = Asin(wx + ф) + B, т.е. по известным координатам точек подобрать параметры A, w, ф и B. Например, таким образом, чтобы сумма квадратов расстояний от данных точек до соответствующих точек синусоиды была минимальной. Как это сделать?
Лучший ответ
Vladimir Высший разум (130947) 2 месяца назад
Простой способ (инженерный, без компа).
  1. Находим пару точек где значение y и рассчитываем: A = (y_max1 + y_max_2)/2
  2. Строим на миллиметровке график F(xi) = arcsin(yi/A), получается график близкий к прямой. (линеаризация)
  3. Линейкой строи прямую, находим w & ф.
Илия ИлитыПрофи (605) 2 месяца назад
Какой инженер сейчас без компа обходится?
Vladimir Высший разум (130947) Илия Илиты, Олдскул! - если можешь решить технологическую задачу с помощью логарифмической линейки, или простеньким графическим способом, то на компе тебе задачи любой сложности ни о чем. Был у нас на заводе старый цех - разложения руды серной кислотой, испарения - мама дорогая! только в респираторе с фильтрующими патронами ходить. Там любая электроника -кальк, телефон умирали за 3-5 дней. Прихожу, мастер: "Володь, а на сколько надо уменьшить загрузку серняги чтобы выйти на нужную по регламенту кислотность?" - из кармана достается логарифмическая линейка Reiss (подарок бати - инженера от бога), 2 клика - "на полшишки и еще на ноготь". Через час звонок из цеха - "С нас бутылка, у нас все зашибись!". Вот как-то так)
Остальные ответы
Мирослав Знаток (280) 2 месяца назад
Для аппроксимации синусоидальной функции с помощью метода наименьших квадратов, вам потребуется минимизировать сумму квадратов расстояний между вашими данными точек и соответствующими точками на синусоиде.

Алгоритм следующий:

1. Задайте начальные значения параметров A, w, ф и B.
2. Вычислите расстояние от каждой точки (xi, yi) до соответствующего значения синусоидальной функции для заданных параметров и получите сумму квадратов расстояний.
3. Используйте метод градиентного спуска или метод наименьших квадратов для изменения параметров A, w, ф и B с целью минимизации суммы квадратов расстояний. При этом вычисляйте градиент функции, чтобы определить направление наибольшего убывания.
4. Повторяйте шаг 2 и шаг 3 до получения наилучших значений параметров A, w, ф и B, при которых сумма квадратов расстояний минимальна.

Этот процесс будет итеративным, и вы сможете уточнять значения параметров, чтобы получить наилучшую аппроксимацию синусоиды для ваших данных. Обратите внимание, что начальные значения параметров могут оказать влияние на результат, поэтому важно выбрать их с учетом изначальной информации о синусоиде.
и лично Леонид Ильич Брежнев Мыслитель (5670) 2 месяца назад
Используйте аппроксимацию Фурье
Ряд Фурье — Википедия ( wikipedia.org )
М Х Знаток (313) 2 месяца назад
Вычислите квадратуру круга и успокойтесь.
Луис Альберто Просветленный (37137) 2 месяца назад
Для синусоидальной аппроксимации методом наименьших квадратов можно использовать следующую формулу:

```
y = A * sin(wx + ф) + B
```

где:

* A, w, ф - параметры аппроксимирующей функции;
* B - смещение;
* x - аргумент.

Для нахождения параметров A, w, ф необходимо решить систему линейных уравнений:

```
y1 = A * sin(w1x1 + ф) + B
y2 = A * sin(w2x2 + ф) + B
...
ym = A * sin(wmxm + ф) + B
```

где:

* yi - значение функции в i-й точке;
* xi - аргумент в i-й точке.

Решить эту систему можно, например, методом Гаусса.

После нахождения параметров A, w, ф можно вычислить смещение B следующим образом:

```
B = ym - A * sin(wmxm + ф)
```

Таким образом, с помощью метода наименьших квадратов можно найти параметры A, w, ф, минимизирующие сумму квадратов расстояний от данных точек до соответствующих точек синусоиды.

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

Для применения метода наименьших модулей необходимо решить систему линейных уравнений:

```
|y1 - A * sin(w1x1 + ф)| = |y2 - A * sin(w2x2 + ф)| = ... = |ym - A * sin(wmxm + ф)|
```

Эту систему можно решить, например, методом последовательных приближений.

Выбор метода синусоидальной аппроксимации зависит от конкретных задач. Метод наименьших квадратов обычно используется, когда необходимо получить аппроксимацию с наименьшей ошибкой. Метод наименьших модулей обычно используется, когда необходимо получить аппроксимацию с наименьшими выбросами.
Александр ТитовГений (51721) 2 месяца назад
Для нахождения параметров A, w, ф необходимо решить систему линейных уравнений:

Какие же это линейные уравнения, если переменная в них входит под знаком синуса?
Владислав Оракул (60145) 2 месяца назад
Есть такой математический пакет TableCurve, там есть множество функций апроксимации. Только берите 2д.
Похожие вопросы