资源简介

这是一个matlab对梯度下降的实现,模拟的是x^2+y^2最小值的取得

资源截图

代码片段和文件信息

function [] = gradient(step threadhold)
%在这里主要是演示对z=x^2+y^2的用梯度下降算法
%设置x和y的初始值%
x = 100;
y = 100;
%先计算前两个步骤的值
last_step_result = x*x + y*y;
x = x - step*2*x;
y = y - step*2*y;
this_step_result = x^2 + y^2;

%设置最大迭代次数%
max_count = 1000000000;
index = 0;
while (abs(this_step_result -last_step_result) >threadhold) && (index < max_count)
  %计算此时的结果%
  current_dx = 2*x;
  current_dy = 2*y;
  %计算新的x和y
  x = x - step*curre

评论

共有 条评论