Пользовательского поиска

По отношению к предыдущему значению

По отношению к аналитическому значению

Критерий точности

Количество итераций

Критерий точности

Количество итераций

-0,0000381

2

-0,0000666

2

-0,0000191

3

-0,0000335

3

-0,000008

4

-0,0000141

4

-0,000004

5

-0,0000069

5

-0,0000002

6

-0,0000004

6

-0,0000019

7

-0,0000033

7

0,000005

8

0,0000088

8

-0,0000458

9

-0,0000802

9

0,0002983

10

0,000522

10

-0,0005711

11

-0,0009997

11

-0,0021415

12

-0,0037465

12

0,0164377

13

0,0286955

13

-0,0540677

14

-0,0959378

14

-0,0750288

15

-0,1259331

15

-0,1127271

16

-0,1750124

16

 

Сравнение результатов

Таблица 9

Сравнительные результаты

Метод трапеции n = 1000000

Метод Симпсона

n = 1000000

Аналитический результат

Функция

Пределы

4,5051475

4,5240183

4,49980967

f(x) = 1/x

0,1 – 9

1,7491462

1,7500761

1,791756469

f(x) = 1/x*x

0,3 – 5

1,9991885

1,9999505

2

f(x) = sin(x)

0 – π

-0,0000512

0,000003

0

f(x) = sin(2*x)

0 – π

0,2857157

0,2856935

0,285714285

f(x) = sin(7*x)

0 – π

0,2222053

0,2222133

0,222222222

f(x) = sin(9*x)

0 – π

 

Таблица 10

Влияние увеличения верхнего предела на точность интегрирования

Аналитическое значение

Практическое значение

Верхний предел

Погрешность

4,49980967

4,5217996

9

-0,02198993

4,605170186

4,624969

10

-0,019798814

4,787491743

4,8039412

12

-0,016449457

4,941642423

4,9557843

14

-0,014141877

5,075173815

5,0875444

16

-0,012370585

5,192956851

5,2039275

18

-0,010970649

5,298317367

5,3082042

20

-0,009886833

 

Следовательно, увеличение верхнего предела приводит к увеличению точности интегрирования.

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

/* Курсовая работа по информатике

"Исследование точности численного интегрирования"

"Research of Accuracy of Numerical Integration"

Преподаватель:

Студенты: Степанов А. Г.

Черепанов К. А

Группа: Р-207

*/

# include <stdio.h>

# include <io.h>

# include <stdlib.h>

# include <iostream.h>

# include <string.h>

# include <math.h>

int main ()

{

FILE *fp; /*указатель на поток*/

int n,i,t,j,N;

float a,b,h,Sum[100],x,y,coa;

printf("Research of Accuracy of Numerical Integration\n");

/*Ввод точности вычисления*/

printf("Enter accuracy of calculation n= ");

scanf("%d",&n);

/*Ввод начала интегрирования*/

printf("Enter beginnings of integration= ");

scanf("%f",&a);

/*Ввод предела интегрирования*/

printf("Enter limit of integration= ");

scanf("%f",&b);

 

/*Открытие файла-источника*/

while((fp=fopen("data3.xls","w"))==NULL)

{

puts("Error!!! Can't open file \nInput name of file\n");

}

/*Ввод количества итераций*/

printf("Enter number of Itteration N= ");

scanf("%d",&N);

/*Вычисление шага интегрирования*/

h=(a+b)/n;

printf("Step=%.3f\n",h);

/*******Вычисление интеграла методом трапеций*******/

for(j=1;j<=N;j++)

{

h=(a+b)/(int(pow(2,j-1))*n);

Sum[j]=0;

for(i=0;i<=(int(pow(2,j-1))*n);i++)

{

x=a+i*h;

if(i==0)

t=1;

else

t=2;

y=t*(h/2)*(sin(2*x));

Sum[j]=Sum[j]+y;

}

if (j>1)

{

coa=(Sum[j]-Sum[j-1])/Sum[j-1];

printf("Criterion of accuracy=%.5f Number of iteration=%d\n",coa,j);

fprintf(fp,"%.7f\t",coa);

fprintf(fp,"%d\t\n",j);

}

}

printf("The sum by a method of trapezes=%.7f\n",Sum[1]);

fprintf(fp,"The sum by a method of trapezes=%.7f\n",Sum[1]);

/*******Вычисление интеграла методом Симпсона*******/

for(j=1;j<=N;j++)

{

h=(a+b)/(int(pow(2,j-1))*n);

Sum[j]=0;

for(i=0;i<=(int(pow(2,j-1))*n);i++)

{

x=a+i*h;

if(i==0||i==n)

t=1;

else

{

if(i%2==0)

t=2;

else

t=4;

}

y=t*(h/3)*(sin(2*x));

Sum[j]=Sum[j]+y;

}

if (j>1)

{

coa=(Sum[j]-Sum[j-1])/Sum[j-1];

printf("Criterion of accuracy=%.5f Number of iteration=%d\n",coa,j);

fprintf(fp,"%.7f\t",coa);

fprintf(fp,"%d\t\n",j);

}

}

printf("The sum by a Simpson's method= %.7f\n",Sum[1]);

fprintf(fp,"The sum by a Simpson's method=%.7f\n",Sum[1]);

scanf("%d",&b);

}

Яндекс цитирования Rambler's Top100

Главная

Тригенерация

Новости энергетики

Сочи-2014,новости спорта