Доставка цветов в Севастополе: SevCvety.ru
Главная -> Справочник по алгоритмам

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

Программа 4.39. •

10 PRINTЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ МЕТОДОМ УЭДДЛЯ 20 ХНРиТВВЕДИТЕ НИЖНИЙ ПРЕДЕЛ ИНТЕГРИРОВАНИЯ A=Q 30 INPUTBBEAHTE ВЕРХНИЙ ПРЕДЕЛ ИНТЕГРИРОВАНИЯ В=В 40 INPUTBBEAHTE ЧИСЛО ИНТЕРВАЛОВ ИНТЕГРИРОВАНИЯ М=М 58 LETA=0.;LETH=<B-A)>-M!L.ETX=A!&0SUB 170 55 LETI=F!LETL=H.6 60 FOR Е=1 ТО М

78 LETX=X+L!&OSUB 170:LEtl=I+5!*F 80 LETX=X+L:&0SUB 170!LETI=I+F 40 LETX=X+L:&0SUB 170:ЬЕТ1=1+6жР 100 LETX=X+L:60SUB 170!LETI=I+F 110 LETX=X+L:GOSUB 170:LETI=I+5*F 120 LETX=X+L:GOSUB 170:LETI=I+2*F 138 LETA=X: NEXT E 140 LETI=a-F)«3*L/10

158 PRINTДЛЯ A=QB=BM M=M •

168 PRINTЗНАЧЕНИЕ ИНТЕГРАЛА I=l!GOTO 40

178 LETF=SQRa+2i«X)!RETURN!ENri

Программа 4.40.

18 PRINTЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ МЕТОДОМ HbHlTOHA-KOTECA

28 INPUTВВЕДИТЕ НИИНИй ПРЕДЕЛ ИНТЕГРИРОВАНИЯ А=А

25 INPUTBBEAHTE ВЕРХНИЙ ПРЕДЕЛ ИНТЕГРИРОВАНИЯ Б=В

38 INPUTBBEAHTE ЧИСЛО ИНТЕРВАЛОВ ИНТЕГРИРОВАНИЯ М=М .

35 LETH=<B-A>/M:LETE=H/6

40 LETX=A!GOSUB 130:LETI=41*F

50 FOR N=1 TO M:LETX=X+E

60 GOSUB 130:LETl=I+216!t;F:LETX=X+E

78 GOSUB 138!LETI=I+27!t;F:LETX=X+E

80 GOSLE 138!LETI=I+272*F:LETX=X+E

90 GOSLB 130:LETI=I+27*F:LETX=X+E

100 GOSUB 130sLETI-I+216*F:LETX=X+E

118 GOSUB 130:LETI=I+82»F:NEXT N

128 LETI=<I-4l!t;F>*E>-140

125 PR INTЗНАЧЕНИЕ ИНТЕГРАЛА 1=I:GOTO 38 130 LETF=SQR<2*X+l>!RETURN:ENri

Программа 4.41.

18 PRINT ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ МЕТОДОМ ЧЕБЫШЕВА

20 I FUTВВЕДИТЕ НИЖНИЙ ПРЕДЕЛ ИНТЕГРИРОВАНИЯ А=е

38 INPUTBBEAHTE ВЕРХНИЙ ПРЕДЕЛ ИНТЕГРИРОВАНИЯ В=В

40 INPUTBBEAHTE ЧИСЛО ИНТЕРВАЛОВ ИНТЕГРИРОВАНИЯ М=М

50 LETA=Q!LETT«SQR<2)/2:LETI=0!LETH=<B-A)/M

60 FOR Е=1 ТО M:LETW=A+H:LETC=<W+A)/2

70 LETD=<Ы-AV2:LETX=C-DЖT!GOSUB 120

80 LETI=I+F!LETX=C:C<ISUB 120

90 LETI=I+F!LETX=X+Ii*T!&OSUB 120

100 LETI=I+F!LETA=Ы:NEXT E

110 LETI=I*H/3:PRINTЗНАЧЕНИЕ ИНТЕГРАЛА I=I:&OTO 40 120 LETF=SeR<2*X+l):RETURN:END

Программа 4.42.

05 PRINTЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ МЕТОДОМ ГАУССА

18 INPUTBBEAHTE НИМНИй ПРЕДЕЛ ИНТЕГРИРОВАНИЯ А=е

12 INPUTBBEAHTE ВЕРХНИЙ ПРЕДЕЛ ИНТЕГРИРОВАНИЯ В=В

15 INPUTBBEAHTE ЧИСЛО ИНТЕРВАЛОВ ИНТЕГРИРОВАНИЯ M=M!LETA=0

20 LETT=SQR< 8.6 >:LETI=0!LETH=< В-А)/М

38 FOR Е=1 ТО М! LETB1=A+H

40 LETC=<Bl+A)/2: LETIi=>;B1-A)/2

58 LETX=C-I)*T! GOSUB 130

60 LETV=Ii*5*F/9: LETI=I+V

70 LETX=C: GOSUB 130

80 LETV=D*8»F/9: LETI=I+V

90 LETX=C+D«T! GOSUB 130

180 LETV=D*5*F/9! LETI=I+V

lie LETA=B1! NEXT E

115 PRINTДЛЯ A=QB=BH M=M:PRINT"

120 PRINT ЗНАЧЕНИЕ ИНТЕГРАЛА I=I: GOTO 15

130 LET F=SQR<2*X+l>!RETURN:ENIi



10 PRINTЧИСЛЕННОЕ ЙНТЕГРИРОВЙНИЕ С ЗйДйННОй ТОЧНОСТЬЮ

15 PRINT МЕТОДОМ ГЙУССА

20 INPUTВВЕДИТЕ НИЖНИЙ ПРЕДЕЛ ИНТЕГРИРОВАНИЯ ftО

22 INPUTВВЕДИТЕ ВЕРХНИЙ ПРЕДЕЛ ИНТЕГРИРОВАНИЯ ВВ

25 INPUTВВЕДИТЕ ПОГРЕШНОСТЬ РЕЗУЛЬТАТА E=N

30 LETN=N)ii60:LETM=l:LETK=0

40 ЬЕТМ=2»М:кЕТА=0

45 LETT=SQR <. 6 ) ! LET 1=0: LETH=< B-A ) /"M

50 FOR J=l TO M!LETU=A+H:LETC=*;U+A)/2

55 LETD=<W-A)/2:LETE=Ii*5/9

60 LETL=D«8/9:LETIi=D*T

70 LETX=C-Ii:60SUB 150:ЬЕТ1=1+ЕжР

80 LETX=C:60SUB 150!LETI=I+L*F

90 LETX=C+ri!60SUB 150: LETI=I+E*F

100 LETA=U:NEXT J

110 LETL=K:LETK=I

120 IF ABS<I-L)>N THEN 40

130 PRINTЗНАЧЕНИЕ ИНТЕГРАЛА 1=I:STOP

150 LETF=S6R<2i«X+l): RETURN: END

10-"

Для погрешнос 1» f = l-10-" вычисление интеграла (4.26) дает /=1,398717485 при /c«s8 с. Подпрограмма вычисления /(х) записывается со строки 150.

§4.9. Вычисление определенных интегралов специального вида

Несобственными интегралами называются интегралы, у которых / (х) оо на отрезке [о, Ь] либо / (о) оо или / (fc) оо.

Вычисление несобственных интегралов с f (х) оо на. концах отрезка [а, Ь] в принципе осуществляется методами Гаусса и Чебышева, так как у них в ходе вычислений узлы интерполяции / (х) не совпадают с пределами интегрирования. Наличие особенности может повлиять на точность интегрирования.

Методы Ньютона - Котеса (в частности, метод Симпсона) удобно применять, если f (хс) ->- оо при хг), принадлежащем интервалу (а,Ь). Равномерное расположение узлов интерполяции у этих методов облегчает контроль за их положением и исключение в ходе вычислений значений х; = хс. Если f (х) имеет на концах предела интегрируемости устранимую особенность, например неопределенность О/О или оо/оо, можно использовать эти методы с отдельным вводом значений /(о) и /(Ь).

Программа 4.44.

Пример. При е=ЫО- получим для интеграла (4.26) значение /=1,3987 при ия;4 с.

Сходящиеся несобственные интегралы с бесконечными пределами интегрирования вычисляются различными приемами [4]. Так, интеграл вида

/= \ f (X) rfx=S / (X) dx+ \ I (х) dx (4.30)

а а Ь ,

может вычисляться как обыкновенный при выборе вспомогательного промежуточного предела интегрирования из условия

1=\ f (х) rfx<e, 6

где е - заданная погрешность интегрирования. Другой прием заключается в автоматическом изменении Ь, например как bo, 26с, 4fcc, 8/bc и т. д., где 6с - начальное значение b с контролем на каждой /-Й стадии условия

!/,-/, , <е = £.

При выполнении этого условия счет прекращается. Последний способ реализован в программе 4.45, где вычисляются несобственные интегралы вида (4.30) методом Гаусса. Программа 4.45.

Пример. Для функции / (х) =хе~, а = = 0 при £=1-10 и 6с=10 получим /=1,000457964 при fx2Q с. Отметим, что при малых £ время счета может резко возрастать, а из-за погрешностей вычисления /; и /,-1 программа может зациклиться. В строке 150 записана подпрограмма, вычисляющая f (х).

Двойные (кратные) интегралы вида 6 d

l=\\f(x, y)dxdy

могут вычисляться по кубатурной формуле Симпсона. При этом область интегрирования в плоскости X, у разбивается на четыре квадрата (рис. 4.11, о), а значение / вычисляется по формуле- [7]

~-Q-iU (0. №) +/ (Х2, I/O) +f (Хс, У2) + + М2,1/2)]+4 и (Х,,1/с)+/(Х0,1/,) +

+ / (Х2,1/,)+/ (X,, 1/2)] +16/ (Х,, У,)},

Программа 4.46.

Пример. Для интеграла (подпрограмма записана со строки 140)

4 4 2 6

/ = \ \ iL = In 3• In 1,1 = 0,02500598522, 3 i xy

" 2 (4.31)

введя о = 4, 6 = 4,4, с = 2 и rf = 2,6, получим / = 0,02500698577. Для повышения точности область интегрирования можно разбить на



Программа 4.45.

05 PRINTBfclHHCfl. HECOECTB. ИНТЕГРАЛА МЕТОДОМ ГАУССА

10 INPUTBBEAHTE НИМНИй ПРЕДЕЛ ИНТЕГРИРОВАНИЯ A=Gi

15 INPUTBBEAHTE НАЧАЛЬНЫЙ ВЕРХНИЙ ПРЕДЕЛ ИНТЕГР. B8=Z

20 INPUTЗАДАЙТЕ ПОГРЕШНОСТЬ РЕЗУЛЬТАТА E=N

25 LETM=l!LETK=0!LETB=Z/2!LETT=seR(.6)!LETU=0

30 LETB=B*2

35 LETM=M*2!LETA=G!LETI=0!LETH=*;B-A)/M

48 FOR j=l TO M!LETC=A+H/2!LETIi=H/2

50 LETE=Ii*5/9!LETL=Ii*8/9!LETD=Ii!t;T

68 LETX=C-I)!60SUB 150!LETI=I+E*F

78 LETX=C!60SUB 150!LETI=I+L*F

80 LETX=C+Ii!60SUB 158!LETI=I+E*F

90 LETA=A+H!HEXT j

100 LETL=K!LETK=I

110 IF ABS<I-L)>N*38 THEN 35

120 LET1J=U:LETU=I

138 IF ABS<I-U)>N/2 THEN 38

140 PRINTЗНАЧЕНИЕ ИНТЕГРАЛА 1=I:STOP

150 LETF=X*EXP<-X)!RETURN!END

Программа 4.46:

10 PRINTВЫЧИСЛЕНИЕ ДВОЙНОГО ИНТЕГРАЛА ПО ПРОСТОЙ

15 PRINT ФОРМУЛЕ СИМПСОНАsLETS=e

20 INPUTВВЕДИТЕ ПРЕДЕЛЫ А/В/С/И А/В/С/П

30 LETH=<B-A)/2! LETK=<Ii-C)/2

40 LETX=A! LETV=C! 60SUB 140: LETS=S+F

50 LETX=B: GOSUB 140: LETS=S+F

68 LETX=ft!LETV=D! GOSUB 140: LETS=S+F

70 LETX=Ei! GOSUB 140: LETS=S+F

80 LETX=A+H! LETV=C! GOSUEi 140: LETS=S+4!t;F

90 LETV=Ii: GOSUB 148: LETS=S+4!tf

188 LETX=A: LETV=C+K! GOSUB 140: LETS=S+4!t;F

110 LETX=B! GOSUB 148! LETS=S+4!t;F

120 LETX=A+H! GOSUB 148: LEtS=S+16!t;F

138 PR INTЗНАЧЕНИЕ ИНТЕГРАЛА 1=ЗжНжК>9!80Т0 28

140 LETF=1/X>-V: RETURN: END

10 PRINTЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ МЕТОДОМ СИМПСОНА С ЗАДАЖОЙ 15 PRINTTOHHOCTbW Е И Р(>0 С ОСОБЕННОСТЯМИ ПРИ Х=А И Х=В 20 PRINT"!INPUTBBEAHTE НИМНИй ПРЕДЕЛ ИНТЕГРИРОВАНИЯ А=А 25 INPUTBBEAHTE ВЕРХНИЙ ПРЕДЕЛ ИНТЕГРИРОВАНИЯ В=В 30 INPUTBBEAHTE ПОГРЕШНОСТЬ РЕЗУЛЬТАТА E=E!LETM=1 40 PRINTBBEAHTE 0 ЕСЛИ НЕТ ОСОБЕННОСТИ ПРИ Х=А 45 INPUTИ 1 ЕСЛИ ЕСТЬ ОСОБЕННОСТЬ ПРИ Х=А S 50 IF S=0 THEN 65

60 INPUTBBEAHTE ЗНАЧЕНИЕ F<A)=C!60TO 70 65 LETX=A!60SUB 218!LETC=F

70 PRINTBBEAHTE 0 ЕСЛИ НЕТ ОСОБЕННОСТИ ПРИ Х=В 75 INPUTИ 1 ЕСЛИ ЕСТЬ ОСОБЕННОСТЬ ПРИ Х=В S 80 IF S=0 THEN 188

90 INPUTВВЕДИТЕ ЗНАЧЕНИЕ F<B)=D!60T0 118

188 LETX=B!60SUB 210!LETIi=F!LETJ=8

110 LETM=M*2!LETH=<B-A)/M/-2

128 LETN=8:LETI=0!LETX=A

130 LETX=X+H!60SUB 210

140 LETI=I+4*F!LETN=N+2

150 IF Н=2жм THEN ISO

160 LETX=X+H!60SUB 210

170 LETI=I+2*F!G0T0 138

188 LET I=a +C+ii) ЖН/З! LETK=j: LET J= I

190 IF ABS<I-k)>E*15 THEN 118

200 PRINT" !PRINT3HA4EHHE ИЦТЕГРАЛА I=l!STOP 205 REMПОДПРОГРАММА ВЬНИСЛЕНИЯ F<X) 210 LETF=SIN<X>/X!RETURN!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



0.0086
Яндекс.Метрика