在MATLAB中,如何用grandient命令求函数的近似梯度

2020年12月7日10:19:11在MATLAB中,如何用grandient命令求函数的近似梯度已关闭评论

在MATLAB中,如何用grandient命令求函数的近似梯度

使用grandient函数求近似梯度格式如下。

·[fx,fy]=grandient(f)的命令返回矩阵f的函数梯度,fx相当于df/dx,即在x方向的差分值。fy相当于df/dy,即在y方向的差分值。各个方向的间隔设为1。当f是一个向量时, df=grandient(f)命令返回一个一维向量。

·[fx,fy]=grandient(f,h)命令使用h作为各个方向的间隔点,这里h是个数量。

·[fx,fy]=grandient(f,hx,hy)命令使用hx、hy为指定间距,其中f为二维函数。而hx、hy可以为向量或者数量,但是hx、hy为向量时,它们的维数必须和f的维数相匹配。

·[fx,fy,fz]=grandient(f)命令返回一个f的一维梯度,其中f是一个三维向量,fz相当于df/dz,即在z方向的差分。grandient(f,h)命令使用h作为各个方向的间距,其中h为一个数量。

·[fx,fy,fz]=grandient(f,hx,hy,hz)命令使用hx、hy和hz为指定间距。

·[fx,fy,fz]=grandient(f,…)命令在f为N维数组时作相似扩展。

例题 求函数的梯度

>> clear

>> t=[-pi:0.01:pi];

>> x=sin(t);

>> dx=gradient(x);

>> subplot(2,1,1)

>> plot(x)

>> subplot(2,1,2)

>> plot(dx)

所得相应的结果如图5-1所示。

 

图5-1 函数sin(t)的梯度图

>> x=[-1:0.1:1];

>> [x,y]=meshgrid(x);

>> z=x.^2+y.^2;

>> [Dx,Dy]=gradient(z);

>> subplot(2,1,1)

>> mesh(z)

>> subplot(2,1,2)

>> quiver(Dx,Dy)

绘出相应图像如图5-2所示。

 

图5-2 函数梯度图

  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。