Вход

Методы аппроксимации функции

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 187638
Дата создания 2015
Страниц 24
Источников 5
Мы сможем обработать ваш заказ (!) 29 марта в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 700руб.
КУПИТЬ

Содержание

Оглавление
Введение 3
1 Методические указания 4
1.1 Методические рекомендации по аппроксимации методом наименьших квадратов 4
1.2 Методика выбора аппроксимирующей функции 4
1.3 Общая методика решения 5
1.4 Аппроксимация прямой 7
2 Математическая постановка задачи аппроксимации функции 8
2.1 Задание на курсовой проект 8
2.2 Аппроксимация полиномом 8
3 Нахождение аппроксимирующей функции методом наименьших квадратов 12
3.1 Определение аппроксимирующей функции в виде линейной функции 12
3.2 Определение аппроксимирующей функции в виде квадратичной функции 14
3.3 Определение аппроксимирующей функции в виде гиперболического уравнения 17
3.4 Определение аппроксимирующей функции в виде экспоненциального уравнения 19
Заключение 22
Список использованной литературы 23
Приложение А 24

Фрагмент работы для ознакомления

Полученная величина свидетельствует о том, что фактор x существенно влияет на y.2. Средняя ошибка аппроксимации:3. F-критерии Фишера:– критический (табличный) – фактический Так какигде это число параметров при переменных уравнения регрессии.Рисунок 8. Построение точек и аппроксимирующей функции в виде экспоненциального уравненияИсходя из всего вышеизложенного наиболее рациональным для аппроксимации функции заданной по условию задания, является ее аппроксимация в виде экспоненциального уравнения, так как при этом сохраняется невысокая ошибка аппроксимации, что соответсвует достаточно хорошему подбору уравнения.ЗаключениеВ процессе выполнения курсовой работы я практически освоил типовые вычислительные методы прикладной математики, совершенствовал навыки разработки алгоритмов и построения программ на языках высокого уровня. Получил навыки, являющиеся основой для использования вычислительных методов прикладной математики и техники программирования в процессе изучения всех последующих дисциплин при выполнении курсовых и дипломных проектов.Список использованнойлитературы1. Кириллова С.Ю. Вычислительная математика/Кириллова С.Ю. Изд-во Владим. гос. ун-та, 2009. -102с.2. Справочное пособие по приближенным методам решения задач высшей математики/ Л.И. Бородич, А.И. Герасимович, Н.П. Кеда и др.; под ред. Л.И. Бородич.- М.: Высшая школа, 1996. -189с.3. Тюканов, А.С. Основы численных методов: учеб. пособие для студентов. Изд-во РГПУ им. А.И. Герцена, 2007. -226с.4. Тишина Н.А. Численные методы в прикладных задачах: методические указания к курсовой работе. Оренбург: ОГУ, 2007. -64с.5. Беляев В.В. Информатика. Аппроксимация методом наименьших квадратов. Методическое указание по выполнению курсовой работы студентов всех специальностей./ В.В. Беляев, Г.Н. Журов. СПб.: СПГГИ(ТУ), 2005.Приложение АЛистинг кода выполнения аппроксимации функции методом наименьших квадратов на языке программирования C.#include <windows.h>#include <conio.h>#include <stdio.h>#include <math.h>void p1();void p2();double * MNK(double *x, double *y, int n, int k);void PryamoiHod(int n, double **a, double *b);void ObratniHod(int n, double **a, double *b, double *x);double F(double x, double *c, int k);void main(){SetConsoleOutputCP(1251);int key;printf("\t\tАппроксимация методом НК\r\n");printf("\tМеню:\r\n");printf("1 - Диалоговый ввод\r\n");printf("2 - Данные из файла\r\n");scanf("%d", &key);if(key == 1)p1();if(key == 2)p2();if(key!=1 && key!=2){ printf("Неверныйввод!"); exit(0);}}void p1(){int nCount;double *x, *y;int k;double a,rez, *c;printf("Введите число эксперементальных точек\r\n");scanf("%d", &nCount);x=(double *)malloc(nCount*sizeof(double));y=(double *)malloc(nCount*sizeof(double));for(int i=0; i<nCount; i++){printf("\tТочка %d:\r\n", i+1);printf("Аргумент\t"); scanf("%f", &x[i]);printf("Функция \t");scanf("%f", &y[i]);}printf("Вводокончен\r\n");printf("Данные введены\r\n");printf("Введите степень разложения\r\n");printf("Большие значения степени (более 10) увеличивают точность расчёта\r\n");scanf("%d", &k);c=MNK(x,y,nCount,k);printf("Введите значение аргумента\t");scanf("%f", &a);rez = F(a,c,k);printf("Расчётное значение функции :\t%f\r\n", rez);}void p2(){FILE *f;double *x, *y, *c;int k;if((f=fopen("dannie.txt","rb")) ){fseek(f,0,SEEK_END);long fLen=ftell(f);fseek(f,0,SEEK_SET);char s1[16], s2[16];int nCount=0;x=(double *)malloc((nCount + 1)*sizeof(double));y=(double *)malloc((nCount + 1)*sizeof(double));while(!strstr(s2,"y"))fscanf(f,"%s%s",s1,s2);while(!strstr(s1,"EOF")){fscanf(f,"%s%s",s1,s2);x[nCount]=atof(s1);y[nCount]=atof(s2);nCount++;x = (double *)realloc((void *)x,(nCount + 1)*sizeof(double));y = (double *)realloc((void *)y,(nCount + 1)*sizeof(double));}nCount--;fclose(f);printf("Данныевведены\r\n");printf("Введите степень разложения\r\n");printf("Большие значения степени (более 10) увеличивают точность расчёта\r\n");scanf("%d",&k);c = MNK(x, y, nCount, k);double a,rez;printf("Введите значение аргумента\t");scanf("%f",&a);rez = F(a,c,k);printf("Расчётное значение функции :\t%f\r\n", rez);}}double * MNK(double *x, double *y, int n, int k){double **a =new double *[k];double *b=new double [k];double *c=new double [k];for(int m=0,i,j; m < k; m++){a[m]=new double[k];for(j=0; j<k; j++){a[m][j]=0;for(i=0; i<n;i++)a[m][j]+=pow(x[i],m+j);}b[m]=0;for(i=0; i<n; i++)b[m]+=pow(x[i],m)*y[i];}PryamoiHod(k,a,b);ObratniHod(k,a,b,c);return c;}void PryamoiHod(int n, double **a, double *b){double v;for(int k=0,i,j,im; k<n-1; k++){im=k;for(i=k+1; i<n; i++){if(fabs(a[im][k]) < fabs(a[i][k])){im=i;}}if(im!=k){for(j=0; j<n; j++){v=a[im][j];a[im][j]=a[k][j];a[k][j]=v;}v=b[im];b[im]=b[k];b[k]=v;}for(i=k + 1; i<n; i++){v=a[i][k]/a[k][k];a[i][k]=0;b[i]=b[i]-v*b[k];for(j=k+1; j<n; j++){a[i][j]=a[i][j]-v*a[k][j];}}}}void ObratniHod(int n, double **a, double *b, double *x){double s=0;x[n-1]=b[n-1]/a[n-1][n-1];for(int i=n-2,j; 0<=i; i--){s=0;for(j=i+1; j<n; j++){s=s+a[i][j]*x[j];}x[i]=(b[i]-s)/a[i][i];}}double F(double x, double *c, int k){double RetVal=1;for(int i=0; i<k; i++)RetVal+=c[i]*pow(x,i);return RetVal;}

Список литературы [ всего 5]

Список использованнойлитературы
1. Кириллова С.Ю. Вычислительная математика/Кириллова С.Ю. Изд-во Владим. гос. ун-та, 2009. -102с.
2. Справочное пособие по приближенным методам решения задач высшей математики/ Л.И. Бородич, А.И. Герасимович, Н.П. Кеда и др.; под ред. Л.И. Бородич.- М.: Высшая школа, 1996. -189с.
3. Тюканов, А.С. Основы численных методов: учеб. пособие для студентов. Изд-во РГПУ им. А.И. Герцена, 2007. -226с.
4. Тишина Н.А. Численные методы в прикладных задачах: методические указания к курсовой работе. Оренбург: ОГУ, 2007. -64с.
5. Беляев В.В. Информатика. Аппроксимация методом наименьших квадратов. Методическое указание по выполнению курсовой работы студентов всех специальностей./ В.В. Беляев, Г.Н. Журов. СПб.: СПГГИ(ТУ), 2005.
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00599
© Рефератбанк, 2002 - 2024