Android-приложение для поиска дешевых авиабилетов: play.google.com
Главная -> Справочник по алгоритмам

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

чисел- xi и yi с наименьшей среднеквадратичной погрешностью.

Сведение нелинейной регрессии к линейной выполняется с помощью линеаризирующих преобразований в ходе ввода Xi, yi и при выводе 6о и Ь\ (см. табл. 5.1). Такое сведение целесообразно, если ПЭВМ имеет микропрограммное вычисление параметров 6о и 6 линейной регрессии или в распоряжении пользователя имеется только такая программа.

Пример. Зависимость у, (xi), заданная числами 21,4(6,9); 15,7(12,9); 12,1(19,8); 8,5(26,7) и 5,2(35,1) близка к экспоненциальной у=Ае". Для нахождения Л и В ввод Xi и yi проводим по схеме (для ПЭВМ FX-702P)

Xi LN у, STAT

т. е. вместо у,- вводим In у,. Тогда константу /4 =0,2388010829 получим, введя команды EXPLRAEXE, а константу 5=2,771866148 получим, введя команды LRB ЕХЕ.

В общем случае для нелинейной регрессии более удобно использовать специальные программы, ие требующие специальных преобразований при вводе л:,, у,-, а также при выводе результатов вычислений.

Гиперболическая регрессия заключается в нахождении параметров функции

у {x)=bo-\-bi/x

из решения системы уравнений

boN + b, Y. 1А-.= Z № i=l 1=1

N N N

bo X lA-i-f 6i Z iAf= Z y,/xi.

i=! (=! i=!

6o=exp

Та.блица 5.1

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

Функция </ (л;)

</

bo + bix

!/(6о + 6.х)

Ьо + Ь,/х

x/(bo + btx)

fcofcf

IgJ/

1066

1061

6с ехр (bi/x)

In X

ехрбб

Ь„ 10"

lg</

10*°

l/v.

box*"

IgJ/

10*"

bo + b, \gx

60 + 61 In л:

In X

bo/{b,+x)

l/6t

66/61

b„x/{bi+x)

1/6,

66/61

60 ехр (61/л;)

In X..

ехр 66

b„ lO""

10*°

60-l-feix"

x"

S5 PRINTГИПЕРБОЛИЧЕСКАЯ РЕГРЕССИЯ

10 INPUTВВЕДИТЕ N=N

20 LETft=0". LETB=0! LETC=0: LETIi=0

30 PRINTВВЕДИТЕ ПОПАРНО X<I>/V<:i>

40 FOR 1=1 TO N: PRINTIS.O!I=I

50 INPUTX<I)=X:INPUTV<I>=V

60 LETA=A+1/X! LETB=B+1/<X~2>

70 LETC=C+V! LETII=I1+V/XSNEXT I

80 LETE=Ni«B-A-2! LETF=Ci«B-Di«A

90 LETK=N!«Ii-A*C: LETF=F/E: LETK=K/E

100 PRINT!F1.9!V«)=F+K/X

110 INPUTВВЕДИТЕ X=X

128 PRINTV<X)=F+K/X!GOTO liesEND

Пример. Для N=8 и t/, (x,), заданных значениями 12,2(1); 6,8(2); 5,2(3); 4,6(4); 3,9(5); 3,7(6); 3,5(7) и 3,2(8), получим 6о= 1,935761896 и 6, = 10,16017523. При х=2 получим {/=7,015849511.

Степенная регрессия обеспечивает нахождение параметров функции

i/=6o/

по формулам

N N N

\nxi £ \nyi - N Y. inxilny,

. i=l i=i i=)

0=--, .

. N 2 N



1=1 1=1

g° I x, + lg6 X = I (*lgy.)- 6.о=ехр -{ У \ny,-bi У xi ) .

1 = 1 1 = 1 i=, «- /J

Программа 5.2i.

05 PRINTПОКАЗАТЕЛЬНАЯ РЕГРЕССИЯ

18 INPUTBBEAHTE N=N

20 LETA=0:LETB=0:LETC=0!LETD=0

38 PRINTBBEAHTE ПОПАРНО xa>,va>

40 FOR 1=1 TO N:PRINT!3.0!I=I 50 IhPUT X<I>=X: INPUTV<I>=V 60 LETA=A+X: LETB=B+X2: LETCsC:+LGT<V> , • • 78 LETD=D+X»;LGT<V>: NEXT I

80 LETE=N*B-A"2: LETF=C*B-D*A

98 LETK=H*D-A*G: LETF=EXTСF.E>: LETK=EXTi K--E.i

100 PRINT!F1.9!V<:X>=F*K"X

110 INPUTBBEAHTE X=X

128 PRINTV<X>=F*K"X:GOTO 118:END

Пример. Для N = b и (/,-(x,), равных К программе 5.22.

6(1), 7(2), 8,7(3), 10,4(4) и 12,4(5), полу- Пример. Для N=9 и (/, (х,), заданных

чим 0 = 4,941990005 и 6 = 1,202950112. Для значениями 3,5(2), 5(3), 6,2(4) 9(5) 13(6)

х=2, (/=7,151499236. 16(7), 23(8), 30(9) и 40(10), получим 6о=

Программа 5.22.

05 PRINTЭКСПОНЕНЦИАЛЬНАЯ РЕГРЕССИЯ

10 INPUTBBEAHTE N=N

20 LETA=0:LETB=0:LETC=0!LETD=0

30 PRINTBBEAHTE ПОПАРНО X<I>fV<:i)

40 FOR 1=1 TO N!PRINT!3.0!I=I

50 INPUT X<I>=X: INPUTV<I>=V

60 LETA=A+X:LETB=B+LOG<:V)sLETC=C+X"2

70 LETD=D+X*LCe<V>: NEXT I

80 LETB1=<A*B-N*D>/(A2-N*C)

90 иЕТВ8=ЕХР<<В-В1ЖА>/Н>

100 РК1НТ!Г1.9!У<:Х)=В0жЕХР<В1жХ)-

110 INPUTBBEAHTE X=X

120 PRINTV<X)=B0ii:EXP<Bl*X>!GOTO llBsEHD

05 PRINTСТЕПЕННАЯ РЕГРЕССИЯ

10 ШРиТВВЕДИТЕ N=N

20 LETA=0:LETB=0!LETC=0!LETD=0

30 PRINTBBEAHTE ПОПАРНО X<I>,V<I>

40 FOR 1=1 to N! PRINT!3.0!I=I

50 IHPUTX<:i>=X!lNPUTvci>=v

60 LETA=A+L06<X)!LETB=B+LCe<V>

70 LETC=C+L0G<X>J*L06<V>!LETD=D+L0G<X>"2:NEXT I

80 ьете=<ажв-нжс>/<а2-н*11> 90 letf=exp<<:b-e*a)/N)

100 PRINTi.F1.9!v<X>=f*X"E

110 INPUTBBEAHTE X=X

120 printv<:X)=f*XE:GOTO 110:END

Пример. Для yV = 6 и (/, (x,), заданных Экспоненциальная регрессия обеспечивает

числами 3(1), 12(2), 27(3), 48(4), 75(5) и получение параметров функции 108(6), получим 6о = 2,999999987 и 6,=

=2,000000004. Для х = 2 получим (/= (/ = 6о ехр (6,х)

= 11,99999998. по формулам

Показательная регрессия обеспечивает f j получение параметров а и Ь показательной функции

n n n

у(х)=аЬ xi X inyi-N xiiuy,

из решения системы уравнений Ь[=----



= 1,939481364 и 6i =0,305283305. При jc=5 из решения системы из трех уравнений получим {/=8,924828629.

Логарифмическая регрессия дает параметры а к Ь функции

уа + Ь\х

из решения системы уравнений

n n

aN+b X lg.= Z У<,

boN+b, I Х; + б2 I х,?= I у,. 1=1

;v IV IV

x>+b, X xf+b2 X i= Z 1=1 /=1 1=1 1=1

I 1=1

n n n

1=1 1=1 i=l

6o Z Z Z = Z

Программа 5.23.

65 PRINTПСГйРИФМИЧЕСКАЯ РЕГРЕССИЯ Ш INPUTВВЕДИТЕ N=N

£6 LETA=esLETB=e:LETC-0!LETD=e зе PRINTВВЕДИТЕ ПОПАРНО x<i>,va) 46 FOR 1=1 TO N:PRINT!3.e!I=I 56 INPUT X<I>=X! INPUTVa)=V

66 LETA=A+LGTCX>5LETB=B+LGT«:X>2:LETC=C+V 76 LETD=1)+V*LGT<X)! NEXT I

86 ЬЕТЕ=НжВ-А2: LETF=C*B~D»;A

96 иЕТК=НжВ-АжС: LETF=F.E: LETK=KrE

186 PRINT!Fl.9! V«:X)=F*(.k )жибТ(ХJ

116 INPUTВВЕДИТЕ X=X

126 PRINTV<X>=F+K*LGT<X>!GOTO liesEHB

Пример. Для Л/=6 и yi{xi), равных 1(1); 1,451(2); 1,716(3); 1,903(4); 2,048(5) и 2,167(6) получим 0 = 0,999931767; 6 = = 1,499793742 и для х=4 получим у= = 1,902897575.

Параболическая регрессия обеспечивает получение трех параметров Ьо, Ь\ и Ьг приближения параболической функцией

</(0=6o+6.Jc+62X

Пример (к программе 5.24). Для N = 7 и (/i(xj), заданных значениями 3,76(2); 4,44(4); 5,04(6); 5,56(8); 6(10); 6,36(12) и 6,64(14), получим 6о=3, 6i=0,4 и Ьг = = -0,01. jЗ,ля х=7 получим (/ = 5,31.

Полиномиальная регрессия (аппроксимация) обеспечивает нахождение коэффициентов полинома

у (х) = Со+ aix+ 02X4- ... +а„х" (5.25)

Программа 5.24.

65 PRINTПAPAEOЛИЧECKAЯ РЕГРЕССИЯ 10 INPUT ВВЕДИТЕ N=N: LETA=N

20 DATA 0,0,0,07 0/0j0

30 READ B,C,F,M/P7R/S

40 PRINT ВВЕДИТЕ ПОПАРНО X<:i>/V<I>

50 FOR 1=1 TO Hi PRINT !3.0! I=I

60 IHPUT x<i)=X! INPUT va)=v

70 LETB=B-X: LETC=C+X2! LErf=+ir2

80 LETM=I1+X"4! LETP=P+V! LETR=R+X*V

90 LETS=S+V*X2! NEXT I

100 LETD=BSLETE=CSLETK=C!LETL=F

110 LETQ=D-A!LET E=E-Q*:B!LETF=F-QiisC

120 LETR=R-Qsi!P:LETQ=K/AsLETL=L-Q*B

130 LETM=M-Q«DSLETS=S-Q*P! LETe=L/E

140 LETB2=<S-R*G>-«:M-F«Q>! LETB1=<R-F»B2)E

150 иЕТВе=<Р-ВжВ1-СжБ2>/А! PRINT!F1.9!B0=B0

160 PRINT Bl=Bl:PRINT B£=B2

170 INPUT ВВЕДИТЕ X=X

180 PRINTV<X>=B0-»-Bl*X+B2*X"2!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.0046
Яндекс.Метрика