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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск элемента в queue http://www.cyberforum.ru/cpp-beginners/thread422721.html
Доброе утро! Такой вопрос, можно ли как то осуществлять поиск элемента в очереди? В алгоритмах нашел функцию поиска find, но у queue нет итератора....Может кто знает алгоритм поиска именно в очереди?Буду признателен.
C++ STL(C++ Builder 6) Ребят, я только недавно начала изучать С++, пытаюсь в Builder 6 писать. И у меня такой вопрос (громко не смеяться) что такое STL ? где его брать, как им пользоваться:-[ http://www.cyberforum.ru/cpp-beginners/thread422719.html
Неправильно вводится дата C++
Вот задача: Создайте структуру типа date, содержащую три поля типа int: месяц, день и год. Попросите пользователя ввести день, месяц и год в формате 31/12/2002, сохраните введенное значение в структурной переменной, а за¬тем извлеките данные из этой переменной и выведите их на экран в том же формате, в каком они вводились. Вот код который я написал: #include <iostream> using namespace std;...
C++ Из двоичной в десятичную+разворот
Дано число, нужно перевести её в двоичную систему счисления, а затем перевернуть полученное двоичное число, и вывести его!
C++ Переставить строки файла http://www.cyberforum.ru/cpp-beginners/thread422687.html
#include <iostream> #include <fstream> void main () { // открывает файл для чтения std::fstream inputFile ("D:\\a.txt", std::fstream::in); // открывает файл для записи результата std::fstream outputFile ("D:\\b.txt", std::fstream::out | std::fstream::trunc); // проверяем открылся ли файл
C++ Ошибка при выполнении Логического решения... #include <iostram> #include <conio.h> #include <cmath> using namespace std; int main(int argc, char *argv){ int x, correct, counter; srand(static_cast<unsigned int>(time(0))); подробнее

Показать сообщение отдельно
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
05.01.2012, 11:53     Метод наименьших квадратов
помогите прокоментировать каждую строчку.. мне нужно составить алгоритм..что бы любому человеку было понятно ) .. кто сможет и блок схему желательно
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
// 12.cpp: главный файл проекта.
 
#include "stdafx.h"
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<iostream>
#define len 50//степень аппроксиамации,размер матрицы& ...;
/*******************************Тестовая функция***************************/
double Tfunc(double a) //Паробола;
 {return (a*a);}
/***************************************************************************/
int i,j,k;         //для организации циклов;
int n;             //степень аппроксимации МНСП;
int m;             //Число разбиений ,m+1 число точек на [A,B];
double a[len][len+1];      //решаемая система - расширенная матрица;
double A,B;            //орезок-[A,B];
double c0[len];        //массив коэффициентов;
double cnst,h,x;
double Fn(double x,int n);//возращает знач.МНСП в точке X,n-степень апроксимации;
void pogrech(void);
void ipMatr(void);     //ввод матрицы;
void opMatr(void);     //вывод матрицы;
 
void main(void)
{double aa,bb;
ipMatr();
for(opMatr(),k=0;k<=n;k++)        //прямой ход метода Гаусса;
 {for(aa=fabs(a[k][k]),i=k,j=k+1;j<=n;j++)//поиск макс. ел-та;
    if(fabs(a[j][k])>aa){i=j;aa=fabs(a[j][k]);};
    if(aa<0)
      {printf("Система не имеет единственного решения!!!");
       getch();
   
      }
  for(j=k;(j<=n+1)&&(i!=k);j++)       //перестановка i-ой строки;
      {bb=a[k][j];
       a[k][j]=a[i][j];
       a[i][j]=bb;
      }
  for(aa=a[k][k],a[k][k]=1,j=k+1;j<=n+1;j++)//преобразование ведущей строки;
     a[k][j]=a[k][j]/aa;
  for(i=k+1;i<=n;i++)                   //метод Гаусса;
    for(bb=a[i][k],a[i][k]=0,j=k+1;(j<=n+1)&&(bb!=0);j++)
     a[i][j]=a[i][j]-bb*a[k][j];
 }
for(opMatr(),i=n;i>=0;c0[i]=aa,i--)     //Обратный ход метода;
   for(aa=a[i][n+1],j=n;j>=i+1;j--)
      aa=aa-a[i][j]*c0[j];
for(i=0;i<=n;printf("c%d=%10.15lf\n",i,c0[i]),i++);//вывод коэффициентов;
pogrech();
system("PAUSE");
 
}
void ipMatr(void)
 {
 setlocale(LC_ALL,"Russian");
 printf("Определите степень аппроксимации MNK\n n=");scanf("%d",&n);
 printf("Задайте отрезок [A,B]:\n A=");scanf("%lf",&A);
 printf(" B=");scanf("%lf",&B);
 cnst=B-A;
 printf("Введите число разбиений отрезка[A,B](min=1)\n m=");
 scanf("%d",&m);
 h=cnst/m;          //шаг разбиения;
 for(i=0;i<=n;i++)
    for(j=0;j<=n+1;j++)     //формирование a[i][j];
       {if(j<=n) a[i][j]=(pow(B,i+j+1)-pow(A,i+j+1))/(cnst*(i+j+1));
    else            //формирование B[i];
//поиск интеграла на дискретном множеств;
     {for(a[i][j]=0,x=A,k=0;(k<=m);k++,x=x+h)//формирование B[i];
         {a[i][j]=a[i][j]+Tfunc(x)*pow(x,i);}//сумма;
      a[i][j]=(a[i][j])/(m+1);       //нормировка;
     }
 
       }
 }
 
void opMatr(void)
 {for(i=0;i<=n;i++,printf("\n"))
     for(j=0;j<=n+1;j++)
       {if(j==n+1)printf("=%10.6lf",a[i][j]);else printf(" %10.7lf",a[i][j]); };
  printf("\n");
 }
 
double Fn(double x,int n)
 {double F=0;
  for(i=0;i<=n;i++)
   {F=F+c0[i]*pow(x,i);}
  return F;
  system("PAUSE");
 }
 
void pogrech(void)
 {double max,p,ps,del;
  max=fabs(Tfunc(A)-Fn(A,n));
  ps=pow(max,2);
  del=pow(Tfunc(A),2);
  for(x=A+h;x<=B;x+=h)
    {p=fabs(Tfunc(x)-Fn(x,n));
     if(p>max)max=p;
     ps=ps+pow(p,2);
     del=del+pow(Tfunc(x),2);
    }
  printf("\Погрешность приближения=%10.10lf\n",sqrt(ps/del));
  ps=sqrt(ps/(m+1));
  printf("Средняя практическая погрешность=%10.10lf\n",ps);
  printf("Maxимальная практическая погрешность=%10.10lf\n",max);
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru