二维梯度下降算法基于matlab并画出其图像
时间: 2023-09-12 07:07:44 浏览: 321
MATLAB梯度下降法优化线性函数-求解多元函数最小值.zip
二维梯度下降算法是一种优化算法,可以用来求解多元函数的最小值。以下是基于MATLAB实现的二维梯度下降算法,并画出其图像的代码。
```
% 设置初始点和步长
x0 = [1; 1];
alpha = 0.1;
% 定义函数及其梯度
f = @(x) (x(1)^2 + x(2)^2);
grad = @(x) [2*x(1); 2*x(2)];
% 迭代求解
for i = 1 : 100
x0 = x0 - alpha * grad(x0);
end
% 画出最终结果
[X, Y] = meshgrid(-10:0.1:10, -10:0.1:10);
Z = X.^2 + Y.^2;
contour(X, Y, Z, 50);
hold on;
scatter(x0(1), x0(2), 'r', 'filled');
```
在上述代码中,首先设置了初始点 `x0` 和步长 `alpha`,然后定义了目标函数 `f` 和其梯度 `grad`。接着进行迭代求解,最后画出函数的等高线图以及最终结果的点。通过不断迭代求解,可以逐步接近函数的最小值点,从而达到优化的目的。
运行上述代码后,将得到一个函数的等高线图,以及最终结果的点。其中,红色点即为算法求解得到的最小值点,如下图所示。
![二维梯度下降算法图像](https://img-blog.csdn.net/20180523154714503?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dpbmRvd3MxMjM=)
阅读全文