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

Апроксимация линейной функции С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Владимир***
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 18
17.06.2012, 16:37     Апроксимация линейной функции С++ #1
люи помогите кто знает этот метод,и как его реализовать в с++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fast_tony
Сообщений: n/a
17.06.2012, 18:16     Апроксимация линейной функции С++ #2
Если вы имели ввиду аппроксимацию линейной функциЕЙ, то это называется линейной регрессией, здесь хорошо расписан алгоритм (в разделе про метод наименьших квадратов, N=2):
http://ru.wikipedia.org/wiki/%D0%A0%...BB%D0%B8%D0%B7
Владимир***
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 18
17.06.2012, 19:56  [ТС]     Апроксимация линейной функции С++ #3
А вы можете реализовать этот метод в с++
AAA-
13 / 13 / 1
Регистрация: 14.02.2012
Сообщений: 46
17.06.2012, 20:16     Апроксимация линейной функции С++ #4
что именно тебе нужно из регрессии?
писал для лабораторной работы парный регрессионный анализ
с разными проверками модели
Владимир***
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 18
18.06.2012, 10:07  [ТС]     Апроксимация линейной функции С++ #5
мне нужно в с++ написать:1 записать массив точек; 2найти k и b из уравнения y=kx+b
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
18.06.2012, 10:52     Апроксимация линейной функции С++ #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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include "iostream.h"
#include "windows.h"
 
int main(int argc, char* argv[])
{
 
    double *X, *Y;
    int i,n;
 
    double SX,SY,SX2,SXY,Det,Dk,Db,k,b;
 
    SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
    
    cout << "Введите число точек: ";
 
    cin >> n;
 
    X=new double[n];
    Y=new double[n];
 
    cout << "Вводим массив X" << endl;
 
    for (i=0; i < n; i++)
    {
        cout << "X[" << i << "]=";
        cin >> X[i];
    }
 
    cout << "Вводим массив Y" << endl;
 
    for (i=0; i < n; i++)
    {
        cout << "Y[" << i << "]=";
        cin >> Y[i];
    }
 
    SX=0;
    SY=0;
    SX2=0;
    SXY=0;
 
    for (i=0; i < n; i++)
    {
        SX=SX+X[i];
        SY=SY+Y[i];
        SX2=SX2+X[i]*X[i];
        SXY=SXY+X[i]*Y[i];
    }
 
    Det=SX2 * ((double)n)-SX*SX;
    Dk=SXY *  ((double) n)-SX*SY;
    Db=SX2*SY-SX*SXY;
 
    k=Dk/Det;
    b=Db/Det;
 
    cout << "k=" << k << endl;
    cout << "b=" << b << endl;
 
    delete [] X;
    delete [] Y;
 
    return 0;
}
Владимир***
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 18
23.06.2012, 16:09  [ТС]     Апроксимация линейной функции С++ #7
Catstail' можете если не сложно написать какая строчка за что отвечает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2012, 17:43     Апроксимация линейной функции С++
Еще ссылки по теме:

C++ Построить график линейной функции
Аппроксимация МНК для линейной, квадратической и экспоненциальной функции C++
C++ Программы линейной структуры. Математические функции

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

Или воспользуйтесь поиском по форуму:
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
23.06.2012, 17:43     Апроксимация линейной функции С++ #8
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include "iostream.h"
#include "windows.h"
 
int main(int argc, char* argv[])
{
 
    double *X, *Y; // указатели на динамические массивы X и Y
    int i,n;
 
    double SX,SY,SX2,SXY,Det,Dk,Db,k,b;
 
    SetConsoleCP(1251);               // установка русских букв в консоли
    SetConsoleOutputCP(1251);
    
    cout << "Введите число точек: ";
 
    cin >> n;  // Ввод размеров массивов
 
    X=new double[n];   // создание массива X
    Y=new double[n];    // создание массива Y
 
    cout << "Вводим массив X" << endl;
 
    for (i=0; i < n; i++)
    {
        cout << "X[" << i << "]=";
        cin >> X[i];
    }
 
    cout << "Вводим массив Y" << endl;
 
    for (i=0; i < n; i++)
    {
        cout << "Y[" << i << "]=";
        cin >> Y[i];
    }
 
    SX=0;   // Здесь будет Сумма X
    SY=0;   // Здесь будет Сумма Y
    SX2=0; // Здесь будет Сумма X*X
    SXY=0; // Здесь будет Сумма X*Y
 
 
    for (i=0; i < n; i++)
    {
        SX=SX+X[i];           // подсчет Суммы X
        SY=SY+Y[i];           // подсчет Суммы Н
        SX2=SX2+X[i]*X[i]; // подсчет Суммы X*X
        SXY=SXY+X[i]*Y[i]; // подсчет Суммы X*Y
    }
 
    Det=SX2 * ((double)n)-SX*SX;  // главный определитель системы лин. уравнений
    Dk=SXY *  ((double) n)-SX*SY; // определитель для k
    Db=SX2*SY-SX*SXY;               // определитель для b
 
    k=Dk/Det;
    b=Db/Det;
 
    cout << "k=" << k << endl;
    cout << "b=" << b << endl;
 
    delete [] X; // удаление массивов
    delete [] Y;
 
    return 0;
}
Yandex
Объявления
23.06.2012, 17:43     Апроксимация линейной функции С++
Ответ Создать тему
Опции темы

Текущее время: 21:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru