![]() | |
|
Главная Радио и связь 300 приложения { noat у; у = eip(z»x); return у; ); ОСНОВНАЯ ПР0ГР]иШ «/ void main О { Int l,n; tloat a,b,h,s1,s2,s3,x,x1,x2; clrscr(); prlntf ("Введите значения концов отрезка [a.blXn"); scanf ("%f%f",&a,&b); prlntf ("Введите число разбиений отрезка n\n"); scanf ("%1",&п); h = (b - a) / n; x1 = a + h / 2; x2 = a; si = f(x1); s2 = (f(x2) + f(b)) / 2; for (1 = 1; 1 <= n - 1; 1++) { xl += h; x2 += h; si += f(xl); s2 += f(x2); si *= h; s2 *= h; s3 = (2 * si + s2) / 3; prlntf ("\ns1 = %f s2 = %t S3 = %f",s1,s2,s3); prlntf("ЧпЧпНазшите любую клавишу для продолжения..."); getchO; 1 . Блок-схема вычисления определенного интеграла методом двойного пересчета по формуле Симпсона Вычисления интеграла по формуле Симпсона h , fix) йх~[у~у +е Vi-uz ведут с увеличением числа разбиений п вдвое до окончания приближений при выполнении условия -j3(n) - 3(2;г) < е. 15 При этом полагают 3 w 3(2fi) с точностью е. /ввод а.Ь.е/ J0=f(B); fl=f(b); s=tO-fl; 81=(b-a)•(fOff1+4.f((a+b)/2))/6 n = 2 h=(b-a)/n; z1=a+h/2; x2=a+h; s2=s < 1=1.n > s2=s2+4.f(xl)+2.I(x2); Xl=x1+li; x2=x2+b
s2=s2.h/6; cl=js1-s2j/15 d<e / Вывод s2,d [ End ] 2}. Программа вычисления определенного интеграла методом двойного пересчета по фошуле Симпсона на языке BASIC 1 НЕМ %*ч%%%п%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ч%%%п%%%*%%%%%%ш%% 2 REM ВЫЧИСЛЕНИЕ ИНТЕГРАЛА С ЗАДАННОЙ ТОЧНОСТЬЮ epsilon 3 REM МЕТОДОМ ДВОЙНОГО ПЕРЕСЧЕТА ПО ФОРМУЛЕ СИМПСОНА 4 К£Ж 10 DEPINT I, N: CLS 20 PRINT "Введите через запятую значения концов отрезка Ca.bl" 30 INPUT а, b 40 PRINT "Введите точность вычисления epsllon" 50 INPUT е 60 DEP fnf (X) = ЕХР(Х * X) ТО fO = fnf (а): f1 = fnf(b): s = fO - f1 80 s1 = (b - a) * (fO + f1 + 4 * fnf((a + b) / 2)) / 6 90 n = 2 100 h = (b - a) / n: xl = a + h / 2: x2 = a + h: s2 = s 110 POR 1 = 1 TO n 120 s2 = s2 + 4 * fnf(xl) + 2 * fnf(x2) 130 xl = x1 + h: x2 = x2 + h 140 NEXT 1 150 s2 = s2 * h / 6: d = ABS(s1 - s2) / 15 160 IP d < e THEN GOTO 180 170 si = s2: n - 2 * n: GOTO 100 180 PRINT "Величина интеграла s s2; " Погрешность d = "; d 190 PRINT : PRINT "Для продолжения нажмите любую клавишу..." 200 IF 1ЖЕ¥$ = "" THEN 300 210 END 3. Программа вычисления определенного интеграла методом двойного пересчета по формуле Симпсона на языке PASCAL program IntegratlonBySimpson; ВЫЧИСЛЕНИЕ ИНТЕГРАЛА С ЗАДАННОЙ ТОЧНОСТЬЮ epsllon МЕТОДОМ ДВОЙНОГО ПЕРЕСЧЕТА ПО ФОРМУЛЕ СИМПСОНА uses Grt; var l,n:Integer; a,b,d,e,fO,f1 ,h,s,s1 ,s2,x,x1 ,x2:real; clircliar; <----------------------------------------------------- ПОДПРОГРАММЫ ПОДЫНТЕГРАЛЬНАЯ ФУНКЦИЯ ) function f(x:real):real; BEGIN f exp(x*x) END; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 [ 99 ] 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 0.0062 |