梯度下降法的matlab代码
时间: 2023-06-30 18:12:30 浏览: 99
以下是一个简单的梯度下降法的 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$。最后,我们打印出当前迭代的结果。
请注意,这个示例只是一个简单的示例,实际使用时需要根据具体问题进行调整。
相关问题
梯度下降算法matlab代码
以下是一个简单的梯度下降算法的 Matlab 代码示例:
```matlab
% 初始化变量
theta = zeros(2,1); % 参数向量
alpha = 0.01; % 学习速率
num_iters = 1500; % 迭代次数
% 加载数据
data = load('ex1data1.txt');
X = data(:, 1); % 特征向量
y = data(:, 2); % 目标值向量
m = length(y); % 样本数量
% 梯度下降算法
for iter = 1:num_iters
% 计算假设函数的预测值
h = X * theta;
% 计算误差
error = h - y;
% 更新参数向量
theta = theta - (alpha / m) * X' * error;
end
% 显示结果
fprintf('最终的参数向量为:\n');
fprintf('%f\n', theta);
```
在这个示例中,我们使用梯度下降算法来拟合一个线性回归模型。我们首先加载数据,然后初始化参数向量、学习速率和迭代次数。在每次迭代中,我们计算假设函数的预测值,计算误差,并使用误差来更新参数向量。最后,我们输出最终的参数向量。
梯度下降法matlab代码
梯度下降法是一种让模型参数尽可能快地收敛到最优值的优化算法,它可以用Matlab实现。Matlab代码如下: syms x % 定义变量x
f(x) = x^2 % 定义函数f(x)
derivative_f(x) = diff(f, x) % 计算f(x)的导数 x_0 = 0 % 初始值
alpha = 0.1 % 学习率
epsilon = 0.001 % 精度 while abs(derivative_f(x_0)) > epsilon
x_0 = x_0 - alpha * derivative_f(x_0)
end fprintf('The minimum point is %f\n', x_0)
阅读全文
相关推荐















