Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Yupas
0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 9
#1

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

22.05.2014, 13:23. Просмотров 2299. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2014, 13:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод наименьших квадратов (C++):

Метод наименьших квадратов - C++
В коде реализован метод наименьших квадратов. Помогите переделать в метод полиномов Чебышева. #include <tchar.h> #include <iostream>...

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

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

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

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

Линейный Метод Наименьших Квадратов, ошибка в расчетах - C++
Разработка программы аппроксимации табличной функции степенным рядом( линейный метод наименьших квадратов). использование глобальных...

7
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
22.05.2014, 13:27 #2
у Вас был курс по решению задач поиска минимума(максимума) ф-ций?
можно градиентным методом, но Вам будет проще покоординатный спуск
0
Yupas
0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 9
22.05.2014, 13:31  [ТС] #3
Да,учили как искать минимум и максимум.
Но тема курсовой работы "интерполяция функции методом наименьших квадратов". я взял обычную линейную зависимость,взял табличные данные. текстотавая часть курсового впорядке,нужно только написать программу,а тут я этими циклами,суммами вешаться готов...
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
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
Yupas
0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 9
22.05.2014, 16:56  [ТС] #5
дело в том,что мне нужно написать программу, которая соответствует моему примеру в Курсовом...вот в чем беда)
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
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
Yupas
0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 9
23.05.2014, 19:26  [ТС] #7
Спасибо большое. сегодня попробую.
0
Yupas
0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 9
25.05.2014, 21:03  [ТС] #8
не работает.......что то видно у меня не так выходит...
то не может обратиться к б.д. программы,то не может преобразовать......
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2014, 21:03
Привет! Вот еще темы с ответами:

Линейная аппроксимация: метод наименьших квадратов (МНК) - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; // Задание начального набора значений double **...

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

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

Метод Рауз-Болла построения магических квадратов N-ого порядка - C++
Здравствуйте! Занялся проблемой построения всех возможных магических квадратов N-ого порядка. Пока работаю над N = 3 и N = 4. Для N = 3 -...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
25.05.2014, 21:03
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru