|
Главная -> Справочник по алгоритмам 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 П p и M e p. erf (1) =0,842700793; erfc (1) = =0,1572992071 ((c«5 c), erf (2) =0,995322265 и erfc (2) =0,04677734976 (<c»12 c). Интеграл вероятности erf x находится также численным интегрированием. Так, используя программу 4.42 и вводя Л=0, B=x=0,5 и М=4, получим erf л;=0,5204998779 при «с»6 с (неверен лишь последний знак).- Гауссовское (нормальное) распределение BejjoHTHocTH характеризуется следующими основными функциями [36]: Q (х) = 1 - Р {х) =-4=- [ е" dt, V2jt j А {х)=2Р {x)-l=- [ е-dt. л/2л J Функцию Р {х) удобно вычислять разложением в следующий ряд: Р {X) =Y+2 (X) 1-3-5- (2«+1) Пример. Z (1) =0,2419707275, Р(1) = = 0,8413447461. Q (1) =0,158655239, А (1) = =0,6826894921 (l!c«4 с), Z (5) = 1,486719515Х X 10- Р (5)-=0,9999997133, Q (5) =2,86685Х Х10- и Л (5) =0,9999994266 (<с»20 с). Для уменьшения времени счета функции erf X и Р {х) могут вычисляться с помощью полиномиальной аппроксимации. Для функции erf А с погрешностью не выше 1,5-10~ справедлива аппроксимация erfx=l-(c,i-f asi-f ... +abt) e- где <=l/(l+px), р=0,3275911, а,= = 0,254829592, 02=-0,284496736, сз= = 1,421413741, 04=-1,453152027 и 05= = 1,061405429. С погрешностью менее 7,5-10 Р {х) вычисляется по формуле P(x) = l-Z(x) {b,t + b2t+ ... +W=). где t=\/{\+px), р = 0,2316419, 6,= = 0,31938153, 62=-0,356563782, 63 = = 1,781477937, 64= -1,821255978 и 65= = 1,330274429. С помощью программы 6.26 с применением этих аппроксимаций вычисляются следующие функции: Р {X)=Z [х), ф (А") = = erfx, П(Х)Р{х), Q{X)Q{x) и Л {Х)А (X). Пррграмма 6.26. 05 PRINT ВЫЧИСЛЕНИЕ ФУНКЦИЙ Р<Х>гФСОл ПСКХ-QCX) Н A<XV 10 INPLrr ВВЕДИТЕ Х=Х! LETV=Ь:l-.3275911:«Х) 20 LETZ=<С1.0614054*V-1.453152У«У-И.4214137):«V 30 LETZ=<<2S449673>*V-f.2548295):«V>-EXP<X-2) 40 LETF=1-Z! LETV=l--a-f.2316419*X> 50 LETP=EXP < -хг-г) -SQR С zmp I) 60 LETZ=< <: 1.3302744*V-1.821256)*V-H. 7814779 >*V 70 LETZ= < < <2-. 35656378 ) жV-f. 31938153 ) :«V ) :«P 80 PRINT! 1.7!Р<Х)=Р:РР1НТФ<Х)=РП ЕТ7=1-2 90 PRINTn<X)=Z-: PRINTQ<X)=1-Z 106 PRINTA<X>=2*2-l-.e0T0 10SEHII 10 PRINTБЫЧНСЯЕНИЕ ФУНКЦИЙ ERFCX) И ERFCaO 20 INPUTВВЕДИТЕ X=X!LETR=1!LETS=X!LETN=0 30 LETN=N+1:LETK=2*N+1: LETR=-RN 40 LETW=S!LETS=S+(:XK)*R-K 50 IF ABS<W-S>>=1E-10 THEN 30 m LETE=2*SSQR«:#PI):PRINTERFaO=E 70 LETF=1-E!PRINTERFC<X)F:60T0 26sEND В программе 6.24 вычисления заканчи- После этого находятся связанные с ней ваются, когда очередной член ряда по абсо- функции Q (х) .и А (х). лютиой величине становится меньше е= = ыо-". 05 PRINTВЫЧИСЛЕНИЕ ФУНКЦИЙ Zi.k>F<.k>>e<k> И А<Х> 10 PRINT С ломоть» РАЗЛОЖЕНИЯ РОО В РЯД 20 INPUTВВЕДИТЕ Х=X!LETZ=EXP<-X:«X-2)-SQR(:2**PI> 36 PRINTг < X >=Z!LETR=1!LETS=0:LETN=0 40 LETK=2*N+1s LETR=R*K s LETW=S 50 LETS=S+< X-K ) ! LETN=H+1 60 IF S-W>= IE-10 THEN 40 70 LETF-.5+S*Zs PRINTP< X) =P 80 LETQ=1-P!PRINTQ(X)=Q 90 LETA=2*P-l:PRINTA<X)=A!GnTn sOsEHD Пример. Я (I) =0,2419707245, Ф(1) = = 0,8413447497,П (!) =0,8413447497. Q (1) = =0,1586552503 и А (1) =0.6826894994. §6.15. Некоторые статистические функции К основным статистическим функциям относятся плотности вероятности и функции распределения для различных законов распределения. В большинстве своем эти фуик- Таким образом, для реализации этих вычислений необходимо вычисление гамма-функции Г {v/2). Поскольку указанные выше функции обычно вычисляются при целых v = l, 2, .... Г (Л) = Г (v/2) можно вычислить по следующему алгоритму. 1. .Если v=l. Л = 1/2 и Г (Л)=-. 2. Если v - четное число, то Г (Л) = = (Л-1)! 3. Если v - нечетное число, то Г (Л) = = (Л-1) (Л-2) ... (1/2) Vn- Программа 6.27. 05 PRINTБЫЧИСЯЕНИЕ ФУНКЦИЙ XS РАСПРЕДЕ.ПЕНИЯ 10 1НРиТБВЕДИТЕ УГг,1) XfUsLETft=U.2:LETB=:<,;?!LPTC=A 20 LETG=1!IF 1НТ<Й)=0 THEN 48 30 FOR 1=1 ТО ft-l:LETG=G-«l!NEXT i:GOTO 55 40 LETG=SGR<#PI)!IF С<1 THEN 55 50 LETIi=D*C!LETC=C-l!GOTO 40!LETG=G*Ii.X 55 LETF=<X"<ft-l)>.G/EXP«:ft>><2"A> 68 PRINTЗНАЧЕНИЕ F<X"-2,U5=F 70 LETS=0:LETK=0! LETW=e: LET2:=e! LETG=1 88 LETK=K+1! LETU)=U)+2!LET2=S! LETG=G*<U+W> 98 LETS=S+<X"K>>6: IF SOZ THEN 88 100 LETP=2!tsX*F*<l+S)/U!LETQ=l-P 110 PRINTЗНАЧЕНИЕ PCXS,U>=P 120 PRINTЗНАЧЕНИЕ ОХг,U)=Q!GnTO lesEHU ЦИИ выражаются через элементарные и специальные функции включая последние для нормального распределения (§ 6.14). В" первом случае вычисление основных статистических функций не представляет труда, а во втором требует применения некоторых специальных приемов. Распределение зс характеризуется плотностью вероятности 7 {X) {X) =х/=-7(2/=Г (v/2) е"") и функциями распределения (х=х) Р {х, v) : ! { 2"Г (v/2) J Q {x, v)=l-P (x/v) = 2) J Вычисление P (x/\) выполняется разложением в ряд: P(/v)=-7 W + Z (v (v + 2) (v-f4) ... (v + 2k) Пример. F (1,1) =0,2419707245, Р (1.1) =0,6826894921, Q (1.1) =0.05121793333 (гс«4 с) и f (30,30) =0,05121793333, Р (30,30) =0.534346291, Q (30,30) =0,465653709 (<с»20 с). «-распределение характеризуется функцией j2 4 -(v+1V2 } -slr(v/2): Для v четных функция / [х, v) вычисляется разложением в ряд: / [х, v) =sin 6 l+yCos=e+-icos-e+... 2.4<6... (v-2) " а для v нечетных (кроме v=l, когда / [х, \) =20/л) Ой 2 ( I (х, v)=-H--cosOi sine i+ycose-f., 2-4... (у-З) 1-3... (v-2) где 8=arctg [x/v). Програ1>!мй 6.28. 18 PRINTВЫЧИСЛЕНИЕ ФУНКЦИЙ KX..U) Т-РАСПРЕДРПЕНИЯ 20 INPUTВВЕДИТЕ X..U X.. U3! ЕТГ-,= 1!LETF=1:1 ЕТй=1:LETE=8 <е LETХ=йТН < X-SQR СU > >: LETC=CnS С X ) 48 IF U.2-INHU,.2>=8 THEN 98 58 LETB=2:*.X,*Pl! IF U=G THEH 148 t.8 LETG=U-l!LETli=3 ?8 LETE=E+2:1F t=fi THEH 80 LETF=F*E>Ii5<iCsLETA=ft+F!LETI!=I!+2:80TO 78 90 LET6*MILETI!=1 100 LETE=E+2iIF E=6. THEH 138 lie LETF=F!«D/E*C 128 LETft=A+FiLETD=D+2sG0T0 100 130 LET2=SINtX)*A!G0T0 160 140 LET2=B«G0T0 169 150 LET2=2/«Pl5<iCOS<X)«SINtX>!«A+B 160 PRINTЗНАЧЕНИЕ I<X,U>=Z!GOTO 2e!ENB Пример. Для x = 2,13 и v= 10 получим / (X, v) =0940978732. Функция распределения Q (x) для /-распределения QW = = [ . --:----..... (v-b-v2)/2 прицелых vi вычисляется разложением в ряд 1+(1-0 + Уг (v2-f 2) 2-4 Х(1-0+ - + V2 (V2-f 2)...(V2-f VI -4) 2.4...(v,-2) Х(1-0"-" а при целых vs Q(x) = l(l-0/ + 2-4...Ы-2). 2 2-4 где <=V2/(V2-f ViX). Если целыми являются vi и vs, берется ряд для меньшего из nmt. Программа 6.29. Пример. Для х = 2,71, vi=6 и V2 = 7 получим Q (х) =0,1090775999, а для х=4,12, Vi=4 и V2=10 получим Q (х)= 0,03158204352. В ряде случаев необходимо найти значение аргумента по заданному значению функции вероятности. Общим методом решения этой задачи является решение нелинейного уравнения F(x)-fn = 0, Де F (х)-функция и Fa - ее заданное значение. Однако значительное сокращение времени вычислений достигается, если использовать аппроксимацию для зависимости х от Fa. Например, значение х=Хр для заданной функции Q (х) с погрешностью менее 4,5-10~* вычисляется с помощью следующей аппроксимации .[36], справедливой для нормального распределения: Xp=t - X+bd+bif + bii P==Q(xp), 00 = 2,515517, a, =0,802853, 02 = 0,010328, 6, = 1,432788, 62 = = 0,189269 и 6з = 0,001308. Если задана функция P(xp)=po, то вычисляется Q (хр) = = 1-рп, после чего находится Хр. 18 PRINTВЫЧИСЛЕНИЕ ФУНКЦИИ Q<X) F-РйСПрЕИЕЛЕНИЯ 20 INPUTВВЕДИТЕ X,U1»U2 ХгВ,С 38 LETG=C-a:+X*B):LETA=15LETJ=l!LETK=1:LETK=1!LETI=e 46 LETF=C2!IF B2-INT«:B-2>=6 THEN 78 5Э IF F-INT<F>=0 THEN 138 68 LET2:=0!6OTO 220 70 IF F-INT«:F)=0 THEN 90 80 GOTO 100 90 IF B-C>=0 THEN 136 160 LETX=0sLETF=6:LFTE=C!LETH=1-G 118 IF<B-2)2=K THEH 198 1.20 LETK=<B-£)-2!G0T0 168 138 LETX=1:LETF=8!LETE=B:LFTH=& 140 IF<C-2>2=K THEH 196 150 LETK=<C-2>-2 166 LFTI=I+l!lF I=K THEN 190 178 LFTF=F+2! LETJ=J*E>F*H: LETA=A+J 188 LETE=E+2!G0T0 168 190 LETA=A+J*E-<F+2>*H!IF X=0 THEN 210 200 LETH= 1 -G! LETZ= 1 -АжН" <. Bj-Z >: GOTO 226 210 LETZ=A*G"«:Cv2) 220 PRINTQ<X..Ubl,i2>=-Z!60T0 20:ENIi 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.0154 |
|