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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ C/C++ http://www.cyberforum.ru/cpp-beginners/thread415950.html
Здравствуйте. Что посоветуете для начинающего программиста (неплохо знаю паскаль) начать учить си или C++? склоняюсь больше к плюсам... но тогда возникает соответствующий вопрос, а какие книги лучше...
C++ [C++] Задача на структуры В Европе около 35 государств. По каждому государству имеется следующая информация: название, численность населения, площадь территории, доход на душу населения, среднегодовая температура,... http://www.cyberforum.ru/cpp-beginners/thread415948.html
C++ ошибка в коде.
вечер добрый. помогите найти ошибку. #include <iostream> template <class T> class stack { private: const static unsigned int size = 10; unsigned int top;
C++ Вычислить сумму
Помогите пожалуста с задачей C++ вычислить сумму 1!+2!+3!+...+n!, k!=1*2*3...*k (значение n вводится с клавиатуры 1<n<=10)
C++ Пустой оператор http://www.cyberforum.ru/cpp-beginners/thread415937.html
Интересно, а пустой оператор требует какого-либо времени на свое выполнение или же он просто ставится в качестве проформы, когда синтаксис языка требует наличия оператора, а логика программы нет (но...
C++ Работа с файлом(выделение текста) С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна превышать 70 символов). Имя файла должно иметь расширение DAT.... подробнее

Показать сообщение отдельно
greendzol
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 10

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

23.12.2011, 23:13. Просмотров 4462. Ответов 1
Метки (Все метки)

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

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include <tchar.h>
#include <iostream>
#include <cmath>
#include <iomanip>
 
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    double *a=NULL, *b=NULL, **sum=NULL;
    const int N=5;
 
    double  x[N]={  -2, -1, 013},
        y[N]=   {   -1, -4, -5, -4, 4};
    int K,i,j,k,m;
    double z,c;
    cout<<"porjadok k= ";
    cin>>K;
    cin.get();
    b= new double [K+1];
    a= new double [K+1];
    sum = new double *[K+1];
    for(int i=0; i<K+1; i++)
       sum[i] = new double[K+1];
    
    
 
    for(i=0; i<K+1; i++)
    {
        for(j=0; j<K+1; j++)
        {
            sum[i][j] = 0;
            for(k=0; k<N; k++)
            {
                sum[i][j] += pow(x[k], i+j);
            }
       }
    }
    for(i=0; i<K+1; i++)
    {
        b[i]=0;
        for(k=0; k<N; k++)
        {
            b[i] += pow(x[k], i) * y[k];
        }
    }
    for(int i=0;i<K+1;i++)
    {
        for(int j=0;j<K+1;j++)
            cout<<sum[i][j]<<"\t";
        cout<<endl;
    }
 
    for(int i=0;i<K+1;i++)
        cout<<b[i]<<"\t";
    cout<<endl;
    for(int i=0;i<K;i++)
    {
        m=i;
        for(int j=i+1;j<K+1;j++)
        {
            if(fabs(sum[m][i])<fabs(sum[j][i]))
                m=j;
        }
        for(int k=i;k<K+1;k++)
        {
            z=sum[m][k];
            sum[m][k]=sum[i][k];
            sum[i][k]=z;
        }
        z=b[m];  b[m]=b[i];  b[i]=z;
        for(int i=0;i<K+1;i++)
        {
            for(int j=0;j<K+1;j++)
            {
                cout<<sum[i][j]<<setw(15);
            }
            cout<<"b"<<i<<"= ";
            cout<<b[i]<<endl;
        }
        cin.get();
 
        for(int j=i+1;j<K+1;j++)
        {
            c=-sum[j][i]/sum[i][i];
            //cout<<"\n\n ! "<<c<<endl;
            for(int k=i;k<K+1;k++)
            {
                sum[j][k]=sum[j][k]+c*sum[i][k];
            }
            b[j]=b[j]+c*b[i];
        }
    }
    
            for(int i=0;i<K+1;i++)
            {
                for(int j=0;j<K+1;j++)
                {
                    cout<<sum[i][j]<<setw(15);
                }
                cout<<"b"<<i<<"=";
                cout<<b[i]<<endl;
            }   
            cin.get();
 
            a[K]=b[K]/sum[K][K];
 
            for(int i=K+1-2;i>=0;i--)
            {
                for(int k=i+1;k<K+1;k++)
                {
                    b[i]=b[i]-a[k]*sum[i][k];
                }
                a[i]=b[i]/sum[i][i];
            }
 
 
            for(int i=0;i<K+1;i++)
                cout<<"X"<<i<<"="<<a[i]<<endl;
            cin.get();
 
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru