梯度下降法matlab代码
时间: 2023-09-04 17:13:07 浏览: 102
梯度下降法matlab程序
以下是一个简单的梯度下降法的MATLAB代码示例:
```matlab
% 定义目标函数
f = @(x) x^2 + 2*x + 1;
% 定义目标函数的梯度
df = @(x) 2*x + 2;
% 初始点
x0 = 0;
% 学习率
alpha = 0.1;
% 迭代次数
max_iter = 100;
% 初始化迭代变量
x = x0;
iter = 0;
% 迭代更新
while iter < max_iter
% 计算梯度
grad = df(x);
% 更新参数
x = x - alpha * grad;
% 更新迭代次数
iter = iter + 1;
end
% 输出结果
fprintf('最终迭代次数:%d\n', iter);
fprintf('最优解:%f\n', x);
fprintf('目标函数最小值:%f\n', f(x));
```
这是一个简单的一元二次函数的例子,可以根据需要进行修改。
阅读全文