Студопедия — Метод стохастической аппроксимации.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Метод стохастической аппроксимации.

График функции

 

Используем сетку значений x1 и x2, выведем график зависимости y от x1 и x2:

 

[x1, x2] = meshgrid(-10:0.1:10)

y = 2.*x1.^2+5.*x2.^2+4.*x1.*x2-3.*x2+100*sin(x2);

mesh(x1,x2,y)

 

 

 

Метод пошаговой регрессии.

 

aa = ones(1000,2);

 

u = ones(1000,2);

u(:,2) = -50 + 100*rand(1000,1);

n = -20 + 40*rand(1000,1);

 

x = 345.3 + 23.5*u(:,2) + n;

 

eps = 1/100000;

I = [1 0; 0 1];

P = (1/eps)*I;

A = [0;0];

 

for j = 1:1000

H = u(j,:)';

P = P - P*H*((1+H'*P*H)^(-1))*H'*P;

A = A + P*H*(x(j)-H'*A);

aa(j,:) = A';

end;

 

for i = 1:2

figure(i);

plot(aa(:,i));

end;

 

 

Метод стохастической аппроксимации.

aa = ones(1000,2);

 

u = ones(1000,2);

u(:,2) = -50 + 100*rand(1000,1);

n = -1 + 2*rand(1000,1);

 

x = 345.3 + 23.5*u(:,2) + n;

 

A = [300;10];

p1 = 1/(u(1,:)*u(1,:)');

 

for j = 1:1000

aa(j,:) = A';

g = u(j,:)';

pk = p1/j;

A = A - pk*(A'*g - x(j))*g;

end;

 

for i = 1:2

figure(i);

plot(aa(:,i));

end;

 

3.1 Градиентный метод:

function y = grmet(x1,x2,e)

k=[0.2 0.02];

tr1=1;

sg=[1 1];

sgo=sg;

gro=[1 1];

cnt=0;

while tr1 == 1

gr=grd(x1,x2);

cnt=cnt+1;

 

for i=1:2

sg(i)=gr(i)/abs(gr(i));

sgo(i)=gro(i)/abs(gro(i));

if sg(i)~=sgo(i)

k(i)=k(i)/2;

end;

end;

x1=x1-k(1)*gr(1);

x2=x2-k(2)*gr(2);

 

tr1=0;

for i=1:2

if abs(gr(i))>e

tr1=1;

end;

end;

gro=gr;

end;

cnt=cnt;

x1=x1;

x2=x2;

y=fnc(x1,x2);

 

grd.m:

function y = grd(x1,x2)

y=zeros(1,2);

dx = 0.01;

y(1)=(fnc(x1+dx,x2)-fnc(x1,x2))/dx;

y(2)=(fnc(x1,x2+dx)-fnc(x1,x2))/dx;

 

Результат:

>> grmet(-1,1,0.01)

 

cnt =

 

 

 

x1 =

 

1.4528

 

 

x2 =

 

-1.4583

 

 

ans =

 

-88.6130

 

3.2 Метод случайного поиска.

function y = slmet(x11,x12,x21,x22,e,eps)

k=1000;

kk=50;

ll=k/kk;

pp=zeros(k,3);

pb=zeros(kk,3);

pp(:,1)=random('Uniform',x11,x12,k,1);

pp(:,2)=random('Uniform',x21,x22,k,1);

for i=1:k

pp(i,3)=fnc(pp(i,1),pp(i,2));

end;

pps=sortrows(pp,3);

for i=1:kk

pb(i,:)=pps(i,:);

end;

pbb=pb;

 

ee=eps+1;

for jj=1:30

for i=1:kk

x1=pb(i,1);

x2=pb(i,2);

for j=1:ll

ii=20*(i-1)+j;

pp(ii,1)=random('Uniform',x1-e,x1+e);

pp(ii,2)=random('Uniform',x2-e,x2+e);

pp(ii,3)=fnc(pp(ii,1),pp(ii,2));

end;

end;

 

pps=sortrows(pp,3);

for i=1:kk

pb(i,:)=pps(i,:);

end;

ee=pb(kk,3)-pb(1,3)

e=e/2;

end;

pbb1=pb(1,:)

 

 

Результат:

>> slmet(2,2,1,3,0.00001,0.1)

 

ee =

 

0.3171

 

 

ee =

 

3.2815e-04

 

 

ee =

 

1.7234e-04

 

 

ee =

 

1.1234e-04

 

 

ee =

 

6.1348e-05

 

 

ee =

 

3.3949e-05

 

 

ee =

 

1.1029e-05

 

 

ee =

 

2.9950e-06

 

 

ee =

 

1.2780e-06

 

 

ee =

 

7.9049e-07

 

 

ee =

 

5.7580e-07

 

 

ee =

 

2.4792e-07

 

 

ee =

 

1.5398e-07

 

 

ee =

 

8.2611e-08

 

 

ee =

 

3.9961e-08

 

 

ee =

 

1.4813e-08

 

 

ee =

 

6.4421e-09

 

 

ee =

 

3.4250e-09

 

 

ee =

 

2.3881e-09

 

 

ee =

 

1.5482e-09

 

 

ee =

 

9.5352e-10

 

 

ee =

 

3.8213e-10

 

 

ee =

 

1.3775e-10

 

 

ee =

 

5.9032e-11

 

 

ee =

 

3.5627e-11

 

 

ee =

 

1.9384e-11

 

 

ee =

 

1.0374e-11

 

 

ee =

 

5.3717e-12

 

 

ee =

 

2.8990e-12

 

 

ee =

 

1.4637e-12

 

 

pbb1 =

 

2.0000 2.9990 82.1775


 

3.3 Метод циклического покоординатного спуска:

function [x1,x2] = cps(x11,x12,x21,x22,e)

x1=(x11+x12)/2;

x2=(x21+x22)/2;

fo=fnc(x1,x2);

tr1=1;

cnt=0;

while tr1 == 1

cnt=cnt+1;

x1=dih(x2,x11,x12,1);

x2=dih(x1,x21,x22,0);

ff=fnc(x1,x2)

tr1=0;

if abs(ff-fo)>e

tr1=1;

end;

fo=ff;

end;

cnt=cnt

xx1=x1

xx2=x2

 

dih.m:

function x = dih(X,X1,X2,tr)

d=0.01;

while (abs(X1-X2)>d)

s1=(X1+X2-d)/2;

s2=(X1+X2+d)/2;

 

if tr>0

f1=fnc(s1,X);

f2=fnc(s2,X);

else

f1=fnc(X,s1);

f2=fnc(X,s2);

end;

 

if f1>f2

X1=s2;

else

X2=s1;

end;

end;

x=(X1+X2)/2;

 

Результат:

>> cps(-13,24,-13,43,0.001)

 

ff =

 

312.9746

 

 

ff =

 

176.9161

 

 

ff =

 

96.6952

 

 

ff =

 

96.5437

 

 

ff =

 

96.5435

 

 

cnt =

 

 

 

xx1 =

 

7.3704

 

 

xx2 =

 

-7.3643

 

 

ans =

 

7.3704


 

3.4 Эволюционный метод:

function s_code = gen_code(xx1,xx2,bx11,bx21)

xd1=(xx1-bx11)*100000;

xd2=(xx2-bx21)*100000;

xb1=dec2bin(xd1,22);

xb2=dec2bin(xd2,22);

for hi=1:11

sp1t(hi)=xb1(hi);

sp1b(hi)=xb1(hi+11);

sp2t(hi)=xb2(hi);

sp2b(hi)=xb2(hi+11);

end;

s_code=struct('t1',sp1t,'b1',sp1b,'t2',sp2t,'b2',sp2b);

 

Код fen_code.m:

function f_code = fen_code(g_code,bx11,bx21)

f_code = zeros(1,3);

f_code(1,1) = bx11+bin2dec(g_code.h1)/100000;

f_code(1,2) = bx21+bin2dec(g_code.h2)/100000;

f_code(1,3) = fnc(f_code(1),f_code(2));

 

 

Код mutate.m:

function ss = mutate(s,bd,m)

for mi=1:m

rd=round(random('Uniform',bd,22,1,1));

if s(rd)=='0'

s(rd)='1';

else

s(rd)='0';

end;

end;

ss=s;

 

Код slmet_ga.m:

function y = slmet_ga(x11,x12,x21,x22,eps)

k=1250;

kk=50;

ll=k/kk;

pp=zeros(k,3);

pb=zeros(kk,3);

pp(:,1)=random('Uniform',x11,x12,k,1);

pp(:,2)=random('Uniform',x21,x22,k,1);

for i=1:k

pp(i,3)=fnc(pp(i,1),pp(i,2));

end;

pps=sortrows(pp,3);

for i=1:kk

pb(i,:)=pps(i,:);

end;

pbb=pb;

 

ee=eps+1;

for jj=1:5

ni=0;

for i=1:kk

 

sp=gen_code(pb(i,1),pb(i,2),x11,x21);

 

for j=i+1:kk

 

sm=gen_code(pb(j,1),pb(j,2),x11,x21);

 

ni=ni+1;

gc=struct('h1',strcat(sp.t1,sm.b1),'h2',strcat(sp.t2,sm.b2));

gc.h1=mutate(gc.h1,6,5);

gc.h2=mutate(gc.h2,6,5);

pp(ni,:)=fen_code(gc,x11,x21);

 

end;

end;

 

pps=sortrows(pp,3);

for i=1:kk

pb(i,:)=pps(i,:);

end;

ee=pb(kk,3)-pb(1,3)

pbb1=pb

end;

pbb1=pb(1,:)

 

Результат:

>> slmet_ga(1,4,2,3,0.001)

 

ee =

 

7.0862

 

 

pbb1 =

 

1.0499 3.3036 44.6068

1.0312 3.2933 44.9477

1.0908 3.3087 44.9974

1.0746 3.2976 45.4236

1.0361 3.2686 46.6395

1.1162 3.2876 46.7981

1.1228 3.2840 47.1469

1.1924 3.3007 47.3112

1.1212 3.2805 47.3499

1.1017 3.2749 47.3695

1.1201 3.2788 47.4371

1.0109 3.2491 47.4886

1.0900 3.2687 47.5653

1.0568 3.2576 47.7151

1.1665 3.2860 47.7937

1.2386 3.3051 47.8699

1.0361 3.2453 48.1708

1.1942 3.2877 48.1796

1.1472 3.2707 48.4388

1.0668 3.2466 48.6097

1.0256 3.2332 48.7915

1.1614 3.2672 48.9206

1.0948 3.2459 49.1426

1.2758 3.2926 49.3435

1.1532 3.2572 49.4249

1.0750 3.2352 49.5009

1.2187 3.2672 49.9430

1.0110 3.2096 50.1044

1.1226 3.2382 50.1342

1.1994 3.2567 50.2739

1.0566 3.2161 50.4490

1.1039 3.2266 50.5707

1.1453 3.2368 50.6176

1.3851 3.3032 50.6925

1.2571 3.2656 50.7336

1.4055 3.3082 50.7641

1.2612 3.2651 50.8442

1.1738 3.2394 50.9477

1.0343 3.2014 51.0455

1.0622 3.2085 51.0506

1.0567 3.2066 51.0799

1.1725 3.2365 51.1151

1.3746 3.2902 51.3173

1.3680 3.2863 51.4465

1.3403 3.2782 51.4500

1.2287 3.2462 51.4837

1.2846 3.2605 51.5649

1.3852 3.2894 51.5692

1.4440 3.3062 51.6152

1.3885 3.2884 51.6931

 

 

ee =

 

2.0627

 

 

pbb1 =

 

1.0320 3.3088 43.9599

1.0351 3.3067 44.1469

1.0380 3.3062 44.2285

1.0523 3.3067 44.4461

1.0332 3.2989 44.6180

1.0304 3.2979 44.6330

1.0160 3.2916 44.7993

1.0793 3.3075 44.8678

1.0364 3.2947 44.9448

1.0889 3.3087 44.9628

1.0907 3.3091 44.9653

1.0627 3.3010 44.9991

1.0404 3.2935 45.0902

1.0950 3.3079 45.1179

1.0166 3.2855 45.2053

1.0959 3.3068 45.2078

1.1001 3.3078 45.2146

1.0315 3.2891 45.2267

1.0891 3.3043 45.2451

1.0684 3.2981 45.2864

1.0796 3.3010 45.2933

1.0294 3.2875 45.2943

1.0605 3.2952 45.3302

1.0488 3.2917 45.3549

1.0803 3.2999 45.3752

1.0440 3.2894 45.4213

1.1052 3.3059 45.4291

1.0374 3.2874 45.4386

1.0139 3.2801 45.5088

1.0337 3.2849 45.5387

1.0360 3.2855 45.5401

1.0227 3.2813 45.5813

1.0292 3.2827 45.6001

1.0240 3.2807 45.6386

1.1272 3.3086 45.6466

1.1228 3.3066 45.6951

1.0498 3.2865 45.7088

1.0516 3.2868 45.7191

1.1062 3.3012 45.7473

1.0745 3.2918 45.7976

1.0695 3.2903 45.8051

1.0681 3.2884 45.9031

1.0670 3.2880 45.9117

1.0681 3.2882 45.9184

1.0880 3.2935 45.9233

1.0410 3.2808 45.9304

1.1425 3.3082 45.9435

1.0221 3.2754 45.9578

1.0116 3.2718 46.0128

1.0844 3.2910 46.0226

 

 

ee =

 

1.2658

 

 

pbb1 =

 

1.0090 3.3084 43.5884

1.0142 3.3087 43.6584

1.0254 3.3103 43.7460

1.0249 3.3098 43.7719

1.0191 3.3076 43.8120

1.0320 3.3104 43.8568

1.0321 3.3104 43.8575

1.0162 3.3056 43.8895

1.0079 3.3026 43.9474

1.0076 3.3012 44.0294

1.0026 3.2993 44.0675

1.0445 3.3099 44.1072

1.0267 3.3049 44.1221

1.0152 3.3018 44.1227

1.0340 3.3066 44.1354

1.0361 3.3068 44.1598

1.0465 3.3087 44.2156

1.0483 3.3092 44.2168

1.0123 3.2990 44.2523

1.0366 3.3052 44.2706

1.0215 3.3009 44.2865

1.0438 3.3064 44.3192

1.0502 3.3076 44.3540

1.0227 3.2999 44.3735

1.0539 3.3081 44.3844

1.0297 3.3013 44.4023

1.0180 3.2979 44.4221

1.0002 3.2928 44.4445

1.0239 3.2985 44.4840

1.0600 3.3079 44.5040

1.0259 3.2975 44.5823

1.0534 3.3048 44.5927

1.0444 3.3014 44.6537

1.0167 3.2939 44.6607

1.0773 3.3099 44.6821

1.0022 3.2896 44.6889

1.0089 3.2910 44.7131

1.0293 3.2964 44.7171

1.0508 3.3020 44.7266

1.0616 3.3048 44.7356

1.0500 3.3015 44.7467

1.0426 3.2993 44.7570

1.0732 3.3075 44.7610

1.0685 3.3061 44.7692

1.0068 3.2893 44.7832

1.0015 3.2878 44.7949

1.0327 3.2954 44.8361

1.0407 3.2974 44.8433

1.0526 3.3006 44.8468

1.0786 3.3075 44.8543

 

 

ee =

 

1.2224

 

 

pbb1 =

 

1.0009 3.3104 43.3204

1.0070 3.3090 43.5156

1.0073 3.3089 43.5268

1.0069 3.3086 43.5392

1.0093 3.3089 43.5595

1.0065 3.3077 43.5925

1.0003 3.3058 43.6077

1.0020 3.3062 43.6090

1.0007 3.3058 43.6114

1.0045 3.3060 43.6624

1.0216 3.3105 43.6733

1.0073 3.3065 43.6827

1.0070 3.3061 43.7033

1.0053 3.3043 43.7874

1.0097 3.3043 43.8676

1.0100 3.3037 43.9110

1.0097 3.3035 43.9147

1.0167 3.3050 43.9403

1.0271 3.3077 43.9455

1.0242 3.3068 43.9533

1.0011 3.3006 43.9553

1.0220 3.3061 43.9581

1.0092 3.3025 43.9712

1.0357 3.3094 43.9843

1.0144 3.3030 44.0276

1.0301 3.3063 44.0859

1.0114 3.3011 44.1040

1.0079 3.2999 44.1175

1.0456 3.3095 44.1538

1.0033 3.2979 44.1659

1.0372 3.3067 44.1867

1.0120 3.2998 44.1936

1.0024 3.2966 44.2387

1.0476 3.3086 44.2470

1.0509 3.3093 44.2595

1.0066 3.2973 44.2645

1.0273 3.3025 44.2872

1.0038 3.2961 44.2906

1.0249 3.3014 44.3151

1.0268 3.3018 44.3204

1.0180 3.2990 44.3511

1.0533 3.3084 44.3573

1.0207 3.2992 44.3842

1.0031 3.2945 44.3881

1.0636 3.3107 44.3892

1.0359 3.3029 44.4073

1.0279 3.3002 44.4425

1.0242 3.2990 44.4557

1.0398 3.3027 44.4886

1.0236 3.2975 44.5429

 

 

ee =

 

1.1061

 

 

pbb1 =

 

1.0036 3.3094 43.4315

1.0091 3.3090 43.5522

1.0047 3.3076 43.5610

1.0004 3.3060 43.5945

1.0070 3.3072 43.6324

1.0194 3.3103 43.6424

1.0106 3.3075 43.6749

1.0024 3.3053 43.6752

1.0131 3.3076 43.7089

1.0145 3.3077 43.7284

1.0245 3.3081 43.8726

1.0049 3.3020 43.9323

1.0168 3.3046 43.9682

1.0273 3.3073 43.9774

1.0035 3.3008 43.9826

1.0196 3.3051 43.9841

1.0057 3.3005 44.0428

1.0438 3.3106 44.0476

1.0205 3.3042 44.0588

1.0110 3.3016 44.0623

1.0300 3.3064 44.0801

1.0137 3.3013 44.1291

1.0173 3.3019 44.1480

1.0307 3.3051 44.1766

1.0175 3.3015 44.1835

1.0150 3.3005 44.2040

1.0057 3.2975 44.2354

1.0471 3.3086 44.2361

1.0061 3.2974 44.2507

1.0269 3.3026 44.2688

1.0519 3.3087 44.3158

1.0029 3.2955 44.3160

1.0408 3.3056 44.3204

1.0567 3.3099 44.3214

1.0326 3.3033 44.3278

1.0465 3.3069 44.3326

1.0537 3.3084 44.3647

1.0198 3.2992 44.3704

1.0220 3.2995 44.3874

1.0076 3.2954 44.4043

1.0082 3.2954 44.4136

1.0171 3.2977 44.4170

1.0380 3.3031 44.4292

1.0082 3.2946 44.4665

1.0177 3.2971 44.4698

1.0429 3.3031 44.5140

1.0661 3.3093 44.5221

1.0476 3.3042 44.5264

1.0331 3.3002 44.5371

1.0438 3.3030 44.5375

 

 

pbb1 =

 

1.0036 3.3094 43.4315

 

>>

 




<== предыдущая лекция | следующая лекция ==>
Профилактика наследственных заболеваний. | Стройфирмы.

Дата добавления: 2015-08-11; просмотров: 501. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Особенности массовой коммуникации Развитие средств связи и информации привело к возникновению явления массовой коммуникации...

Тема: Изучение приспособленности организмов к среде обитания Цель:выяснить механизм образования приспособлений к среде обитания и их относительный характер, сделать вывод о том, что приспособленность – результат действия естественного отбора...

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия