資源簡介
這是一個可以手工設(shè)置步長的matlab對梯度下降算法的演示,可以看到每次迭代到的點,非常直觀的觀看梯度下降算法的工作原理
代碼片段和文件信息
%繪制出來最原始的方程的圖像,方程為f=x^2+y^2;定義域分別設(shè)置成為[-10?10],然后隨便的設(shè)置一個初始點以及迭代的值和步長,來查看使用梯度下降算法的迭代過程%
[x?y]?=?meshgrid(-10:0.5:10?-10:0.5:10);
z?=?x.^2?+?y.^2;
mesh(x?y?z);
%分別求x和y的偏導(dǎo)數(shù)%
%dx?=?2*x;
%dy?=?2*y;
%設(shè)置x,y的初始值,并且每步驟更新的值都加入到這個記錄中來,第一個是初始值,為了迭代方便設(shè)置下第二個元素的值
record_values?=?[-9;-9];?
%設(shè)置每次更新的步長%
step?=?0.2;
%設(shè)置迭代次數(shù)%
count?=?20;
%開始迭代%
for?i=1:count
????current_x?=?record_values(1i);
????current_y?=
評論
共有 條評論