梯度下降法matlab程序
时间: 2024-06-29 18:01:10 浏览: 11
梯度下降法是一种常用的优化算法,在机器学习和数据分析中用于寻找目标函数的最小值。在MATLAB中,你可以使用内置的函数或者自定义函数实现梯度下降。这里是一个简单的例子,展示如何使用MATLAB的基本语法来执行梯度下降:
```matlab
% 假设我们有一个一元二次函数作为目标函数
function J = quadratic_obj(x)
J = 0.5 * (x - 2)^2; % x^2 - 4x + 4 的形式
end
% 初始参数
x0 = 5; % 假设从5开始搜索
learning_rate = 0.01; % 学习率
max_iterations = 1000; % 最大迭代次数
% 梯度下降函数
[x, J_history] = gradient_descent(quadratic_obj, x0, learning_rate, max_iterations);
% 自定义的梯度下降函数
function [x, J_history] = gradient_descent(obj_func, initial_x, lr, max_iters)
x = initial_x;
J_history = zeros(max_iters, 1);
for iter = 1:max_iters
% 计算梯度
grad = obj_func(x);
% 更新参数
x = x - lr * grad;
% 记录损失值
J_history(iter) = obj_func(x);
end
end
% 打印最终结果和损失函数历史
disp(['Minimum found at x = ', num2str(x)]);
disp('Loss history:');
plot(1:length(J_history), J_history);
xlabel('Iterations');
ylabel('Loss');
%
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)