Soru sormatlab optimizasyon
4HAN8 tarafından 5 yıl önce soruldu

clcclose allclear all f=@(w1,w2) ((w1^2+w2^2+1.6364*w1*w2)/2)-0.8182*w1-0.354*w2+0.1250; x0=0; N=150; k=1; e1=10^(-10);e2=10^(-10);e3=10^(-10);n=1; %step 2w1=0;w2=0;x0=0x1=[w1;w2] p_1=[0.8182; 0.354] %direction k=1;x(k)=1;p_k=-[\'w1_k+0.8182*w2_k-0.8182 ; w2_k+0.8182*w2_k-0.8182\'] while (x(k)>150) x(k)=[w1_k ; w2_k]p(k)=-[w1_k+0.8182*w2_k-0.8182 ; w2_k+0.8182*w2_k-0.8182] x(k+1)=x(k)+n*p(k) fminsearch(f,x(k)+n*p(k)) g(k)=@(w1,w2) [w1_k+0.8182*w2_k-0.8182 ; w2_k+0.8182*w1_k-0.8182] %gradient vector derivatine of vector function % p(k) direction is equal to negative gradientp(k)=-[w1(k)+0.8182*w2(k)-0.8182 ; w2(k)+0.8182*w2(k)-0.8182] %direction xnet=x(k+1)-x(k) lta xfnet=f(x(k+1))-f(x(k)) lta f if abs(fnet)<=e1breakendif norm(xnet)<=e2break end if norm(-(p_k))<=e3break end k=k+1 end plot(fnet,\'k\',\'linewidth\',2)hold onplot(xnet,\'k\',\'linewidth\',2)             sorudaki algoritmada her x_k degerini birer artirarak islem yapmamizi istiyor fakat yazdigim kodu calistirmaya kalktigimda fnet ve xnet fonksiyonlari tanimsiz  diyor yardimci olursaniz sevinirim.

1 Cevap
sayginer Yönetici tarafından 5 yıl önce cevaplandı