[繪圖] matlab梯度下降法 軌跡
上次問過
沒結果
這次貼一下程式
clear
x1=0.5; %x1初始值
x2=0.5; %x2初始值
alpha=0.01; %學習率
for i=1:1350
ax=[0.5 zeros(1,1350)];
bx=[0.5 zeros(1,1350)];
gradFx1=2*x1+2*x2+1; %計算x1梯度
gradFx2=2*x1+4*x2; %計算x2梯度
y1=x1-alpha*gradFx1; %x1迭代
y2=x2-alpha*gradFx2; %x2迭代
ax(i+1)=y1;
bx(i+1)=y2
x1=y1;
x2=y2;;
end
x1,x2
F=x1.^2+2*x2.^2+2*x1.*x2+x1+1
x=-2:0.1:2;
y=x;
[x1 x2]=meshgrid(x,y);
z=x1.^2+2*x2.^2+2*x1.*x2+x1+1;
contour(x1,x2,z)
plot(ax(:,1),bx(:,2),'r')
hold off
要畫出如
梯度法的迭代路徑
可是畫不出來只有等高圖
有人知道錯哪嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.226.111
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1498050102.A.C22.html
※ 編輯: Capital235 (118.160.226.111), 06/21/2017 21:28:45
推
06/21 22:53, , 1F
06/21 22:53, 1F
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章