0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 9
1

Метод наименьших квадратов

22.05.2014, 13:23. Показов 7249. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят,вот в чем беда. нужно для курсового решить задачу.
нужно апроксимировать данные линейной зависимостью y=ax+b.
В ручную все уже решил,нужно написать программу на языке с++.(ну,если напишете на другом,постараюсь перевести)

Есть табичные значения:
i=1 i=2 i=3 i=4 i=5
0 1 2 4 5
2,1 2,4 2,6 2,8 3

нужно найти а и б.Находиться как сумма от 1до n (yi-(axi+b))^2.

Метод наименьших квадратов


помогите пожалуйста....очень нужно)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2014, 13:23
Ответы с готовыми решениями:

Метод наименьших квадратов
В коде реализован метод наименьших квадратов. Помогите переделать в метод полиномов Чебышева. ...

Метод наименьших квадратов
Задание такое, составить программу аппроксимации функции f(x) в интервале , n неизвестных...

Метод наименьших квадратов
Можете около сложных строчек написать что там происходит(комментарии) #include "stdafx.h"...

МНК (Метод наименьших квадратов)
Помогите с реализацией аппроксимации МНК. Есть экспериментальные данные, хочу аппроксимировать их...

7
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
22.05.2014, 13:27 2
у Вас был курс по решению задач поиска минимума(максимума) ф-ций?
можно градиентным методом, но Вам будет проще покоординатный спуск
0
0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 9
22.05.2014, 13:31  [ТС] 3
Да,учили как искать минимум и максимум.
Но тема курсовой работы "интерполяция функции методом наименьших квадратов". я взял обычную линейную зависимость,взял табличные данные. текстотавая часть курсового впорядке,нужно только написать программу,а тут я этими циклами,суммами вешаться готов...
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
22.05.2014, 13:43 4
ну в 2х словах, у Вас есть ф-ция (yi-(axi+b))^2., необходимо найти ее минимум(по сути получим приближение некого распределения точек, линейной ф-цией)
какие параметры могут меняться? правильно а и b, что делаем берем какие то отрезки для a и b, например [-50 50] [-10 10]
для поиска минимум вдоль одного из параметров выберем золотое сечение
рассмотрим случай для параметра а:
есть отрезок [-50 50]
a1 = -50
a2 = 50;
считаем новые точки
a1_n = a1 - (a2-a1)/1.61(1.61 это число свойственное золотому сечению/, в инете инфы полно)
a2_n = a2 + (a2-a1)/1.61
смотрим значения ф-ции (yi-(axi+b))^2. в этих 2 точках, подставив a1_n и a2_n вместо а
и смотрим, если F(a1_n) больше F(a2_n) тогда вместо а1 использем a1_n
если F(a1_n) меньше F(a2_n) тогда вместо а2 использем a2_n
если F(a1_n) равно F(a2_n) тогда вместо а1 использем a1_n и вместо а2 используем a2_n
и возвращаемся к строке "считаем новые точки"
аналогично для параметра b
0
0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 9
22.05.2014, 16:56  [ТС] 5
дело в том,что мне нужно написать программу, которая соответствует моему примеру в Курсовом...вот в чем беда)
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
23.05.2014, 10:02 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
double Func(a,b,int * Y)
{
double g =  0;
for(size_t i = 0; i < 5; i++)
{
g+=(Y[i]-(a*i+b))*(Y[i]-(a*i+b));
}
return g;
}
int main()
{
int Y[5] = {2.1, 2.4, 2.6, 2.8, 3.};
double eps = 1.;
double a1 = -50.;
double a2 = 50.;
double b1 = -10.;
double b2 = 10.;
double tau = 1.618;
double a1_n=0, a2_n=0, b1_n=0,b2_n=0;
double F1,F2;
while(eps>0.001)
{
a1_n = a2-(a2-a1)/tau;
a2_n = a1+(a2-a1)/tau;
F1 = Func(a1_n, (b2-b1)/2., Y);
F2 = Func(a2_n, (b2-b1)/2., Y);
if(F2>F1)
{
a1 = a1_n;
}
else if(F2==F1)
{
a1 = a1_n;
a2 = a2_n;
}
else
{
a2 = a2_n;
}
//теже действия относительно b
eps = (a2-a1>b2-b1)?(a2-a1):(b2-b1);
}
}
Добавлено через 2 минуты
Золотое сечение
покоординатный спуск
0
0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 9
23.05.2014, 19:26  [ТС] 7
Спасибо большое. сегодня попробую.
0
0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 9
25.05.2014, 21:03  [ТС] 8
не работает.......что то видно у меня не так выходит...
то не может обратиться к б.д. программы,то не может преобразовать......
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2014, 21:03
Помогаю со студенческими работами здесь

Метод наименьших квадратов! (с Pascal на C++)
Писал прогу на Паскале, так как не владею должными знаниями по С++ приходится просить помочь вас!!!...

Метод наименьших квадратов(численные методы)
Совсем не знаю как сделать задачу, если кто то сможет сделать буду очень благодарен и отблагодарю....

Метод наименьших квадратов/лаба 3 - аппроксимация/ С++
Добрый день! Помогите исправить неисправность программы: #include &quot;stdafx.h&quot; #include...

Метод наименьших квадратов, решение системы Гауссом
подскажите, пожалуйста, где ошибка. матрицу Грамма вычисляю правильно, а вот когда после вычисления...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru