主要内容

梯度

数值梯度

描述

例子

外汇=梯度(F返回一维的数值梯度的向量F.输出外汇对应于∂F/∂x的差异x(水平)的方向。点与点之间的间距假设为1

例子

外汇财政年度] =梯度(F返回x而且y二维分量数值梯度的矩阵F.额外的输出财政年度对应于∂F/∂y的差异y(垂直)方向。假设每个方向上点之间的间距为1

外汇财政年度FZ、……FN] =梯度(F返回N组成部分数值梯度F,在那里F的数组。N维度。

例子

___] =梯度(Fh使用h作为在每个方向上点之间的均匀间距。您可以在以前的语法中指定任何输出参数。

例子

___] =梯度(Fhx沪元、……接下来的指定N间距参数为各维的间距F

例子

全部折叠

计算一个单调递增向量的梯度。

X = 1:10
x =1×101 2 3 4 5 6 7 8 9 10
Fx = gradient(x)
fx =1×101 1 1 1 1 1 1 1 1 1 1

计算的二维梯度 x e - x 2 - y 2 在网格上。

X = -2:0.2:2;Y = x';Z = x. * exp(-x。²- y.²);[px,py] =梯度(z);

在同一幅图中画等高线和向量。

图形轮廓(x,y,z)保持箭袋(x, y, px, py)

图中包含一个轴对象。轴对象包含型轮廓、颤振2个对象。

利用某一特定点的梯度线性逼近临近点的函数值,并将其与实际值进行比较。

函数值的线性逼近方程为

f x f x 0 + f x 0 x - x 0

也就是说,如果你知道一个函数的值 f x 0 导数的斜率 f x 0 在某一点上 x 0 ,则可以使用此信息来近似函数在附近点的值 f x f x 0 + ϵ

计算sin函数在-1到0.5之间的一些值。然后计算梯度。

Y = sin(-1:0.25:0.5);Yp =梯度(y,0.25);

用函数值和导数X = 0.5来预测的价值罪(0.5005)

Y_guess = y(end) + yp(end)*(0.5005 - 0.5)
Y_guess = 0.4799

计算实际值进行比较。

Y_actual = sin(0.5005)
Y_actual = 0.4799

求多元函数在指定点的梯度值。

考虑多元函数 f x y x 2 y 3.

X = -3:0.2:3;Y = x';F = x.².* y.^3;冲浪(x, y, f)包含(“x”) ylabel (“y”) zlabel (“z”

图中包含一个轴对象。axis对象包含一个surface类型的对象。

计算网格上的梯度。

[fx,fy] = gradient(f,0.2);

提取该点的梯度值(1、2).要做到这一点,首先获取你想要处理的点的指标。然后,使用索引提取相应的梯度值外汇而且财政年度

X0 = 1;Y0 = -2;T = (x == x0) & (y == y0);Indt = find(t);F_grad = [fx(indt) fy(indt)]
f_grad =1×2-16.0000 - 12.0400

的梯度值 f x y x 2 y 3. 在点(1,-2)处

f 1 - 2 2 x y 3. ˆ + 3. x 2 y 2 j ˆ - 1 6 ˆ + 1 2 j ˆ

输入参数

全部折叠

输入数组,指定为矢量、矩阵或多维数组。

数据类型:|
复数支持:是的

所有方向上点之间的均匀间距,用标量表示。

例子:[FX,FY] = gradient(F,2)

数据类型:|
复数支持:是的

每个方向上点之间的间距,指定为标量或向量的单独输入。的数组维数必须与的数组维数匹配F.每个输入可以是一个标量或向量:

  • 标量指定该维度中的常量间距。

  • 向量指定值沿的相应维数的坐标F.在这种情况下,向量的长度必须匹配相应维度的大小。

例子:[FX,FY] = gradient(F,0.1,2)

例子:[FX,FY] = gradient(F,[0.1 0.3 0.5],2)

例子:[FX,FY] = gradient(F,[0.1 0.3 0.5],[2 3 5])

数据类型:|
复数支持:是的

输出参数

全部折叠

数值梯度,作为大小相同的数组返回F.第一个输出外汇总是沿着二维的梯度F,在列之间。第二个输出财政年度总是沿着第一维的梯度F,穿过一排排。对于第三个输出FZ后面的输出N输出是沿的梯度N的Th维F

更多关于

全部折叠

数值梯度

数值梯度是一种利用函数在某些点上的已知值来估计每个维度上的偏导数值的方法。

对于一个二元函数,Fxy),则梯度为

F F x + F y j

梯度可以被认为是指向值递增方向的向量的集合F.在MATLAB®,您可以计算具有任意数量变量的函数的数值梯度。对于函数N变量,Fxyz,…),梯度为

F F x + F y j + F z k + ... + F N n

提示

  • 使用diff或者一个自定义算法来计算多个数值导数,而不是调用梯度很多次了。

算法

梯度计算中心差分内部数据点。例如,考虑一个单位间距数据的矩阵,一个,有水平梯度G =梯度(A).内部梯度值,G (:, j),都是

G(:,j) = 0.5*(A(:,j+1) - A(:,j-1));

下标j之间的不同2而且n - 1,N = size(A,2)

梯度沿着矩阵的边缘计算值单面的差异

G(:,1) = a (:,2) - a (:,1);G(:, n) = a (:, n) - a (:, n -1);

如果指定点间距,则梯度适当地衡量差异。如果指定两个或多个输出,则该函数也会以类似的方式计算其他维度上的差异。不像diff函数,梯度返回与输入元素数量相同的数组。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

R2006a之前介绍

另请参阅

|

Baidu
map