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

Метод наименьших квадратов, решение системы Гауссом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удалить строку http://www.cyberforum.ru/cpp-beginners/thread203326.html
Нужно удалить первою строку с бинарного файла. Прога должна быть на С. помогите кто может.
C++ Рекурсивный метод для вывода на экран последовательности Дано натуральное число n. Разработать рекурсивный метод для вывода на экран следующей последовательности чисел: 1 2 2 3 3 3 … n n n … n http://www.cyberforum.ru/cpp-beginners/thread203325.html
Количество слов C++
Нужна узнать количество слов в текстовом файле. в текстовом файле должно быть как минимум 2 строки. Прога должна быть написана С. помогите кто может.
Списки C++
Я написал прогу, которая создаёт 2 списка и печатает их. Помогите создать функцию, которая создаст новый список, который будет содержать элементы, которые входят хотя бы в один из предыдущих списков #include<conio.h> #include<iostream.h> struct List { int value; List* next; List* prev; };
C++ Передача ключей и значений http://www.cyberforum.ru/cpp-beginners/thread203301.html
Как корректно (в хорошем стиле) обрабатывать ключи и параметры передаваемые программе? Потому что ключей будет много (и хотелось бы что бы читающий код не сломал глаза.) Если не затруднит на примере: my_time -h Page должно вывести справку, аmy_time -l сответсвенно локальное время. #include<iostream> #include<time.h> void show_help(); void show_time();
C++ Функции и процедуры.Паскаль. Даны два массива чисел.Найти сумму элементов того массива,в котором больше положительных чисел. Помогите,пожалуйста,решить) подробнее

Показать сообщение отдельно
5209
Сообщений: n/a
04.12.2010, 18:21     Метод наименьших квадратов, решение системы Гауссом
подскажите, пожалуйста, где ошибка. матрицу Грамма вычисляю правильно, а вот когда после вычисления прямого хода гаусса, пытаюсь вывести треугольную матрицу, чем выше порядок полинома u, тем больше ненулевых коэффициентов в нижних строках

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
124
125
126
127
128
129
130
131
132
#include <stdio.h>                                      
#include <conio.h>                                     
#include <math.h>
void main (void)
{
   int n,k,i,j,u;
   float a[54][54],x[54],y[54],w,koef[54],t,m[54][54],a0,a1,a2,b[54],h,R,sum,sig[54],pogr[54],ob[54]; 
   FILE *z,*s,*q,*det,*das,*frei;
   frei=fopen("fr.txt","w");
   det=fopen("del.txt","w");
   das=fopen("pr.txt","w");
   z=fopen("x.txt","w");
   s=fopen("y.txt","w");
   q=fopen("rez.txt","w");
printf("kolichestvo uzlov 50\n");
printf("koeffizienti: a0=1, a1=1, a2=0.1\n ");
a0=1;x[0]=1;n=50;a1=1;a2=0.01;h=0.1;w=0.01;
printf("nachalnoe znachenie argumenta funkzii x0=1\n ");
printf("schag setki h=1\n ");
for ( k=0; k < n; k++)
{
y[k]=a0+a1*pow(cos(x[k]),4)+a2*pow((x[k]),3);
fprintf(z,"%.4f\n",x[k]);
fprintf(s,"%.4f\n",y[k]);
x[k+1]=x[k]+h;
}
for(i=0; i<n; i++)
{
    for(j=0; j<n+1; j++)
    {
        a[i][j]=0;
    }
        koef[i]=0;
}
for(u=1; u<21; u++)
{   
fprintf(q,"Porjadok polinoma=%.d\n",u);
sum=0; 
for(k=0; k<=u; k++)
{
    for(i=0; i<=u; i++)
    {
        for(j=0; j<n; j++)
        {
            R=pow((x[j]),i+k);
            sum+=R;
        }
        a[k][i]=sum;
        a[0][0]=n;
        sum=0;
    }
}
 
sum=0;        
for(k=0; k<=u; k++)
{
    for(i=0; i<n; i++)
    {
        R=(y[i])*(pow((x[i]),k));
        sum+=R;
    }
    a[k][u+1]=sum;
    fprintf(z,"%.2e\n",a[k][u+1]);
    sum=0;
}
for(k=0; k<=u; k++)
{
    for(i=0; i<=u+1; i++)
    {
                fprintf(q,"%.2e  ",a[k][i]);
    }
    fprintf(q,"\n");
}
for(k=0;k<=u;k++)
{
    b[k]=a[k][u+1];
}
 for (k=0; k<u; k++)
    {
        for (i=k+1; i<u+1; i++)
        {
            m[i][k]=a[i][k]/a[k][k];
            for (j=k; j<u+1; j++)
            {
            a[i][j]=a[i][j]-a[k][j]*m[i][k];
            }
            b[i]=b[i]-b[k]*m[i][k];
        }
    }
for(i=0; i<u+1; i++)
{
    for(j=0; j<=u+1; j++)
    {
        fprintf(det,"%.3f ",a[i][j]);
    }
    fprintf(det,"%.3f\n",b[i]);
}
 
    for (k=u; k>=0; k--)
    {
        t=0;
        for (j=k+1; j<u+1; j++)
        {
            t=t+a[k][j]*koef[j];
        }
        koef[k]=(b[k]-t)/a[k][k];
        printf("a[%d]=%.3e \n",k, koef[k]); 
     }
     pogr[u]=0;
              for (j=0;j<n;j++)
         {
             sig[j]=0;
         for(i=0;i<=u;i++)
          {
              sig[j]+=koef[i]*pow(x[j],i);
          }
          pogr[u]+=pow(((y[j]-sig[j])*100/y[j]),2);
          fprintf(frei,"%.2f\n",((y[j]-sig[j])*100/y[j]));
         }
           ob[u]=pow((pogr[u]/n),0.5);   
           fprintf(det,"pogresch[%d]=%.2e\n",u,ob[u]);
           
}
 
fclose(frei);
fclose(das);
   fclose(det);
   fclose(z);
   fclose(s);
   fclose(q);
   getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru