simpson

Реклама
Задание:
2
1) Вычислить интеграл

dx
по формуле трапеций с тремя десятичными знаками.
2x 2  1.3
tg ( x 2 )
2) Вычислить интеграл  2
dx по формуле Симпсона при n=8.
0.2 x  1
1
1
Теоретические сведения:
1.
Метод трапеций
1.1. Блок-схема метода:
Начало
a, b, n,
f(x)
h=(b-a)/n
I = h(f(a)+f(b))/2,
i=0
I = I + f(a+hi)
i ++
hi<b
I
Конец
+
2.
Метод Симпсона
2.1. Блок-схема метода:
Начало
a, b, E
I=0, n = 4
h = (b-a)/4
I2 = 0, i = 2
x2=a+ih
x1=x2-h
x0=x1-h
y0=f(x0)
y1=f(x1)
y2=f(x2)
S=y0+y1+y2
i =i+2
I1=I2, n = 2n
h = h/2
i<n
I2 = I2*h/3
|I1-I2|<E
+
I2
Конец
Пояснение хода работы программы
Программа выполняет все действия, описанные в блок-схеме и выводит результат.
Приложение:
Листинг программы
#include
#include
#include
#include
#include
#define
#define
#define
#define
#define
#define
<conio.h>
<stdio.h>
<stdlib.h>
<math.h>
<string.h>
n1
n2
a1
b1
a2
b2
20
8
1
2
0.2
1
#define E 0.001
double I1,I2;
void Copyright();
void Rachet();
void main (void)
{
int FlagExit;
textmode(64);
textbackground(7);
textcolor(8);
while(FlagExit!='q' && FlagExit!='Q')
{
clrscr();
gotoxy(1,3);
Copyright();
printf("\näá¡δ ¿¡ΓÑúαá½δ:\n");
printf("
2
1\n");
printf("
%c
%c%c%c%c%c%c%c%c
%c\n",218,196,196,196,196,196,196,196,191,218
);
printf("1) %cdx/%c2x*x+1.3
2)
%ctg(x*x)*dx/(x*x+1)\n",217,251,217);
printf("
1
0.2\n");
Rachet();
FlagExit=getch();
}
}
void Rachet()
{
double h1;
double h2;
double x;
double F;
double Tmp;
Tmp=n1;
h1=(b1-a1)/Tmp;
Tmp=((1/sqrt(2*a1*a1+1.3))+(1/sqrt(2*b1*b1+1.
3)));
I1=(float)(h1/2)*Tmp;
x=a1+h1;
for(int t=1;t<n1;t++)
{
I1=I1+h1*(1/sqrt(2*x*x+1.3));
x=x+h1;
}
h2=(b2-a2)/n2;
I2=h2/3*((tan(a2*a2)/(a2*a2+1))+(tan(b2*b2)/(
b2*b2+1)));
x=a2+h2;
for( t=1;t<n2;t++)
{
if(fmod(t,2))
F=4;
else
F=2;
I2=I2+h2/3*F*(tan(x*x)/(x*x+1));
x=x+h2;
}
printf("\n\nÉÑΦÑ¡¿Ñ:");
printf("\n1)Å« Σ«α¼π½Ñ Γαá»Ñµ¿⌐:\n");
printf(" %.3f ",I1);
printf("\n\n2)Å« Σ«α¼π½Ñ 濼»ß«¡á\n");
printf(" %.5f ",I2);
}
void Copyright()
{
int x,y;
x=wherex();
y=wherey();
gotoxy(1,1);
printf("Exit - q");
gotoxy(20,1);
printf(" Copyright by Well!");
gotoxy(x,y);
}
Скачать