Лабораторная работа n 5 по \"Численным методам\" icon

Лабораторная работа n 5 по "Численным методам"



НазваниеЛабораторная работа n 5 по "Численным методам"
Дата конвертации17.07.2012
Размер42.03 Kb.
ТипЛабораторная работа
1. /Аппроксимация/1/lab5.doc
2. /Аппроксимация/2/CHM5.DOC
3. /Аппроксимация/3/cm5.doc
4. /Аппроксимация/4/CM5.DOC
5. /Аппроксимация/5/cm5.doc
6. /Аппроксимация/6/CH_MET_4.DOC
7. /Аппроксимация/7/6_3.txt
8. /Аппроксимация/7/lab6.doc
9. /Аппроксимация/9/cm6.doc
10. /Нахождение собственных чисел и собственных векторов матрицы/1/lab3.rtf
11. /Нахождение собственных чисел и собственных векторов матрицы/3/DATA.TXT
12. /Нахождение собственных чисел и собственных векторов матрицы/4/cm3.doc
13. /Нахождение собственных чисел и собственных векторов матрицы/5/CM3.DOC
14. /Нахождение собственных чисел и собственных векторов матрицы/5/L3_EXAMP.TXT
15. /Нахождение собственных чисел и собственных векторов матрицы/6/CH_MET_3.DOC
16. /Нахождение собственных чисел и собственных векторов матрицы/6/L3_EXAMP.TXT
17. /Оптимизация/1/cm7.doc
18. /Оптимизация/3/cm7.doc
19. /Оптимизация/5/cm7.doc
20. /Решение ДУ/1/LAB4_RES.TXT
21. /Решение ДУ/1/lab4.doc
22. /Решение ДУ/2/CHM4.DOC
23. /Решение ДУ/3/LAB4.DOC
24. /Решение ДУ/4/cm4.doc
25. /Решение нелинейных уравнений/2/lab1.doc
26. /Решение нелинейных уравнений/3/CH_MET_1.DOC
27. /Решение системы линейных и нелинейных уравнений/1/LAB2_RES.TXT
28. /Решение системы линейных и нелинейных уравнений/1/lab2.rtf
29. /Решение системы линейных и нелинейных уравнений/2/DATA.TXT
30. /Решение системы линейных и нелинейных уравнений/2/LABA2.DOC
31. /Решение системы линейных и нелинейных уравнений/3/cm2.doc
32.
/Решение системы линейных и нелинейных уравнений/5/CH_MET_2.DOC
33. /Решение системы линейных и нелинейных уравнений/5/L2_EXAMP.TXT
Лабораторная работа n 5 по "Численным методам"
Теория: Полином Лагранжа
Нижегородский Государственный Технический университет
Нижегородский Государственный Технический университет
Лабораторная работа
Нижегородский Государственный Технический университет
Лабораторная работа n 6 по "Численным методам"
Лабораторная работа №5
Лабораторная работа n 3 по "Численным методам"
Лабораторная работа
Нижегородский Государственный Технический университет
Нижегородский Государственный Технический университет
Лабораторная работа
Лабораторная работа №7
Лабораторная работа №7
Лабораторная работа n 4 по "Численным методам"
Цель работы
Лабораторная работа
Лабораторная работа
Лабораторная работа n 1 по "Численным методам"
Нижегородский Государственный Технический университет
Лабораторная работа n 2 по "Численным методам"
Лабораторная работа №2
Нижегородский Государственный
Нижегородский Государственный Технический университет



НГТУ


Кафедра "Вычислительная техника"


Лабораторная работа N 5


по "Численным методам"


Выполнил:

ст. гр. 98-В-2

Шатухин Л.И.


Принял:


г.Н.Новгород.

2000г.

Задание: Написать программу выполняющую аппроксимацию заданных точек полиномом Лагранжа и методом наименьших квадратов.


1. Описание методов:


Полином Лагранжа

Аппроксимационную функцию запишем в виде:

L(x)=y0*l0(x)+ y1*l1(x)+…+yn*ln(x)

Каждая базисная функция li должна обращаться в ноль во всех узлах за исключением i-го, и в этом узле она должна быть равна 1.

Т




…………………….





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

f(x)=a0*0(x)+ a1*1(x)+…+ an*n(x)

Где i –базисные функции.

Необходимо найти коэффициенты ai.

Они находятся решением системы:






……………………………………………………………………………..





2. Алгоритм программы:

1. Начало

2. Ввод точек

3. Аппроксимация

4. Конец

3. Текст программы:

#include

#include

#include

#include

#include

#include

#include"mouse.cpp"


float *x=new float[100],*y=new float[100];

float *sx=new float[100];

float *a=new float[1];

double s2(double);double s3(double);double s4(double);double s5(double);double s6(double);

double (*fi[])(double)={sin,s2,s3,s4,s5,s6,};

float am[36],b[6],c[6];

int n=0,m,ff;


double s2(double arg){return sin(.1*arg);}

double s3(double arg){return sin(.5*arg);}

double s4(double arg){return sin(2*arg);}

double s5(double arg){return sin(50*arg);}

double s6(double arg){return sin(200*arg);}


float l(float arg)

{int i,j;

float sum=0,s;

for(i=0;i
{s=1;

for(j=0;j
if(j!=i)s*=(arg-x[j])/(x[i]-x[j]);

sum+=s*y[i];

}

return sum;

}


void show(void){

int gdriver = DETECT, gmode=VGAHI, errorcode,xm,ym;

closegraph();

initgraph(&gdriver, &gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error: %s\n", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch(); exit(1);

}

line(0,240,639,240);line(320,30,320,450);

line(0,30,639,30);line(0,30,0,450);

line(0,450,640,450);line(639,30,639,450);

gotoxy(1,1);

printf("Л. р. N5. Аппроксимация полиномом Лагранжа и МНК. Выполнил: 98-В-2 Шатухин Л.И.\n");

for(ff=0;ff
}


void lagr()

{show();

float i;

float maxy=fabs(l(x[0]));float maxx=x[0];

float miny=fabs(l(x[0]));float minx=x[0];

for(ff=1;ff
if(x[ff]>maxx)maxx=x[ff];

if(x[ff]
}

for(i=0;i<100;i++)

{sx[i]=l((x[n-1]-x[0])/100*i+x[0]);

if(fabs(sx[i])>maxy)maxy=fabs(sx[i]);

if(fabs(sx[i])
}

setcolor(LIGHTRED);

for(i=1;i<100;i++)

{line(minx+(i-1)*(maxx-minx)/100,sx[i-1],minx+i*(maxx-minx)/100,sx[i]);

}

setcolor(15);

getch();

}


float f(float arg)

{int i;

float sum=0;

for(i=0;i
return sum;

}


void mnk(void)

{show();


int i,j,k;

float qi,maxy,miny;


for(ff=0;ff
if(fabs(y[ff])>maxy)maxy=fabs(y[ff]);

if(fabs(y[ff])
}

//printf("%f %f",miny,maxy);


float maxx=x[0];

float minx=x[0];

for(ff=1;ff
if(x[ff]>maxx)maxx=x[ff];

if(x[ff]
}


m=6;

for(i=0;i
{b[i]=0;

for(j=0;j
{am[i*m+j]=0;

for(k=0;k
{am[i*m+j]+=(*fi[i])(x[k])*(*fi[i])(x[k]);

if(j==0)b[i]+=y[k]*(*fi[i])(x[k]);

}

}

}


for(k=0;k
{qi=am[k*m+k];

for(j=0;j
b[k]/=qi;

for(i=k+1;i
{qi=am[i*m+k];

for(j=k;j
b[i]/=qi;

if(i!=k) {for(j=k;j
b[i]-=b[k];

}

}

}

for(j=m-1;j>=0;j--)

{qi=0;

for(i=m-1;i>j;i--)qi+=am[j*m+i]*c[i];

c[j]=b[j]-qi;

}

for(i=0;i<100;i++)

{sx[i]=f((x[n-1]-x[0])/100*i+x[0]);

}


/*char s[10];sprintf(s,"%f",max);

outtextxy(0,0,s);

line(0,240,640,240);*/

setcolor(LIGHTRED);

for(i=1;i<100;i++)

{line(minx+(i-1)*(maxx-minx)/100,(miny+maxy)/2-sx[i-1]/50,minx+i*(maxx-minx)/100,(miny+maxy)/2-sx[i]/50);

}

setcolor(15);

/*for(i=0;i
circle((x[i]-x[0])/(x[n-1]-x[0])*630,230*(1-y[i]/max)+10,2);*/

getch();

}


void main(void){

int gdriver = DETECT, gmode=VGAHI, errorcode,xm,ym,bm;

char c;


clrscr();

initgraph(&gdriver, &gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error: %s\n", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch(); exit(1);

}

//setcolor(LIGHTBLUE);

line(0,240,639,240);line(320,30,320,450);

line(0,30,639,30);line(0,30,0,450);

line(0,450,640,450);line(639,30,639,450);

gotoxy(1,1);

printf("Л. р. N5. Аппроксимация полиномом Лагранжа и МНК. Выполнил: 98-В-2 Шатухин Л.И.\n");

outtextxy(50,17,"Left mouse button - set new point, Right mouse button - end set/menu");

mousesetpos(320,240);mouseshow();

do{mouseread(&xm,&ym,&bm);

if(ym<30)mousesetpos(xm,30);

if(ym>450)mousesetpos(xm,450);

if(bm==1){x[n]=xm;y[n]=ym;n++;mousehide();line(xm-2,ym,xm+2,ym);line(xm,ym-2,xm,ym+2);mouseshow();delay(500);}

}while(bm!=2||n<2);

mousehide();setcolor(0);for(ff=265;ff<390;ff++)line(ff,225,ff,250);setcolor(15);

line(265,225,390,225);line(265,225,265,250);line(265,250,390,250);line(390,225,390,250);

outtextxy(270,230,"1-Lagrange");

outtextxy(270,240,"2-MHK");

do{c=getch();

if(c=='1'){lagr();closegraph();exit(1);}

if(c=='2'){mnk();closegraph();exit(1);}

}while(1);

}


4. Резултьтат выполнения программы:

Аппроксимация полиномом Лагранжа:





Аппроксимацая методом наименьших квадратов:






Похожие:

Лабораторная работа n 5 по \"Численным методам\" iconДокументы
1. /Задачи по численным методам.doc
2. /Э-БИЛЕТЫ...

Лабораторная работа n 5 по \"Численным методам\" iconДокументы
1. /OOP/Лабораторная работа ь00-Введение.doc
2. /OOP/Лабораторная...

Лабораторная работа n 5 по \"Численным методам\" iconЛабораторная работа: создание мини-презентации «Памятники Кремля»
Лабораторная работа проводится в компьютерном классе, с подключением к сети Internet
Лабораторная работа n 5 по \"Численным методам\" iconДокументы
1. /Lab1/Лабораторная работа 1.doc
2. /Lab2/Лабораторная...

Лабораторная работа n 5 по \"Численным методам\" iconИ я забуду Покажи мне и я запомню, Дай мне действовать самому и я научусь. Китайская мудрость Тема: Лабораторная работа
Тема: «Лабораторная работа «Измерение работы и мощности тока в электрической лампочке»
Лабораторная работа n 5 по \"Численным методам\" iconДокументы
1. /Nash/lab1/Лабораторная работа ь1.doc
2. /Nash/lab10/Лабораторная...

Лабораторная работа n 5 по \"Численным методам\" iconЛабораторная работа №2 «Система безопасности Windows xp»
Лабораторная работа №2 «Система безопасности Windows xp» Цель работы: Изучить систему безопасности Windows xp
Лабораторная работа n 5 по \"Численным методам\" iconЛабораторная работа «Работа в Windows c помощью основного меню. Использование технологии ole»
Запишите размер папки, выраженный в Мб (мегабайтах) в текстовый редактор блокнот
Лабораторная работа n 5 по \"Численным методам\" iconЛабораторная работа «Работа с текстовыми фрагментами без помощи мыши»
Скопируйте последнее слово получившегося текста и вставьте его в начало текста один раз
Лабораторная работа n 5 по \"Численным методам\" iconДокументы
1. /Базовые задачи на обработку массива.doc
2. /ЗадачиНаЛиниВетвление.doc
Лабораторная работа n 5 по \"Численным методам\" iconДокументы
1. /laba/Лабораторная работа ь1.doc
2. /laba/Лабораторная...

Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов