Задание: 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); }