Апроксимаціія функцій методом найменших квадратів

Автор: Пользователь скрыл имя, 27 Февраля 2013 в 22:32, курсовая работа

Описание работы

В данной курсовой работе выполняется разработка алгоритма и программы на языке программирования С, для решения задачи методом наименьших квадратов.
К данной программе также разработанна математическая модель решения, приведена блок-схема порядка решения программой поставленной задачи, текст программы и инструкцию пользователя, в которой описано для чего назначенная программа и как ею пользоваться, начиная с запуска.

Содержание

Вступ………………………………………………………………………...……………6
1 Математичні аспекти методу найменших квадратів ……...………….……..…......7
1.1 Область застосування задачі…………………………………………………7
1.2 Математичне обґрунтування задачі….………………………………………9
2 Розробка алгоритму роботи обчислювальної задачі…………………….…...…....14
2.1 Розробка функціональної структури програми…………………………....14
2.2 Розробка алгоритму виконання задачі найменших квадратів …………...14
3 Розробка програми за запропонованим алгоритмом……………………....……...18
3.1 Розробка програми за методом найменших квадратів …...…...……….…18
3.2 Результати роботи програми………………………………………………..20
3.3 Розробка програми в Math Cad……………………………………………..21
4 Інструкція користувача………………………………..………………...……….….22
Висновки……………………………………………………………..……….………....24
Перелік посилань ………………........................................................……………..…..25
Додаток А. Блок-схема апроксимації за методом найменших квадратів
Додаток Б. Текст програми апроксимації за методом найменших квадратів

Работа содержит 1 файл

Serg.doc

— 497.00 Кб (Скачать)

   }

   temp = b[j];

   b[j] = b[i];

   b[i] = temp;

   break;

       }

   }

       }

   }

}

void cls(){

   for(int i=0; i<25; i++) printf("\n");

}

void main(){

   int i=0,j=0, k=0;

   cls();

   do{

       printf("\nInput filename: ");

       scanf("%s", filename);

       InFile = fopen(filename, "rt");

   }while(InFile==NULL);

   count_num_lines();

   printf("\nNumber of points: N=%d", N);

   do{

       printf("\nInput power of approximation polinom K<N: ");

       scanf("%d", &K);

   }while(K>=N);

   allocmatrix();

   rewind(InFile);

   //read data from file

   readmatrix();

   //check if there are 0 on main diagonal and exchange rows in that case

   diagonal();

   fclose(InFile);

   //printmatrix();

   //process rows

   for(k=0; k<K+1; k++){

       for(i=k+1; i<K+1; i++){

   if(sums[k][k]==0){

       printf("\nSolution is not exist.\n");

       return;

   }

   float M = sums[i][k] / sums[k][k];

   for(j=k; j<K+1; j++){

       sums[i][j] -= M * sums[k][j];

   }

   b[i] -= M*b[k];

       }

   }

   //printmatrix();

   for(i=(K+1)-1; i>=0; i--){

       float s = 0;

       for(j = i; j<K+1; j++){

   s = s + sums[i][j]*a[j];

       }

       a[i] = (b[i] - s) / sums[i][i];

   }

   printresult();

   freematrix();

}


Информация о работе Апроксимаціія функцій методом найменших квадратів