matlab畫二維梯度下降
时间: 2023-11-19 08:53:26 浏览: 121
【路径规划-二维路径规划】基于梯度下降算法求解自定义起点终点障碍路径规划问题附matlab代码.zip
在Matlab中画二维梯度下降可以通过以下步骤实现:
1. 定义目标函数和其偏导数函数;
2. 定义初始位置、精度和步长;
3. 使用Gradient_Descent函数求解最优解,并返回迭代过程中的点;
4. 绘制目标函数的等高线图和迭代过程中的点。
下面是一个简单的例子:
引用:梯度下降法(Gradient descent)或最速下降法(steepest descent)是求解无约束最优化问题的一种常用方法。 。
引用:matlab代码:
% 目标函数为 z=f(x,y)=(x^2+y^2)/2
close all; clear all; clc
fun = inline('(x^2+y^2)/2','x','y'); % 函数(x^2+y^2)/2'
dfunx = inline('x','x','y'); %对x的导数
dfuny = inline('y','x','y'); %对y的导数
x0 = 3; % 初始位置
y0 = 3;
Epsilon1 = 0.00000000001; % 精度
Lambda1 = 0.01; % 步长/更新率
%求解
[x,y,n,point] = Gradient_Descent(fun,dfunx,dfuny,x0,y0,Epsilon1,Lambda1)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 画图
x = -0.1:0.1:4;
y = x;
[x,y] = meshgrid(x,y);
z = (x.^2+y.^2)/2;
contour(x,y,z,20) %绘制等高线图形
xlabel('X');
ylabel('Y');
hold on
scatter(point(:,1),point(:,2),'r','*'); %绘制迭代过程中的点
阅读全文