梯度下降法的matlab代码
时间: 2023-06-30 18:12:30 浏览: 82
梯度下降法matlab程序
5星 · 资源好评率100%
以下是一个简单的梯度下降法的 Matlab 代码示例:
```
% 定义函数
f = @(x) (x(1)^2 + x(2)^2);
% 定义梯度函数
grad_f = @(x) [2*x(1); 2*x(2)];
% 初始点
x0 = [1; 1];
% 学习率
alpha = 0.1;
% 迭代次数
max_iter = 100;
% 迭代过程
for i=1:max_iter
% 计算梯度
grad = grad_f(x0);
% 更新参数
x0 = x0 - alpha * grad;
% 打印当前迭代结果
fprintf('Iteration %d: x = (%f, %f), f(x) = %f\n', i, x0(1), x0(2), f(x0));
end
```
在这个示例中,我们定义了一个简单的二次函数 $f(x) = x_1^2 + x_2^2$,并使用梯度下降法来最小化这个函数。我们使用初始点 $x_0 = (1, 1)$,学习率 $\alpha = 0.1$,和最大迭代次数为 100。在每次迭代中,我们计算梯度 $\nabla f(x)$,然后更新参数 $x$。最后,我们打印出当前迭代的结果。
请注意,这个示例只是一个简单的示例,实际使用时需要根据具体问题进行调整。
阅读全文