Matlab計算矩陣和函式梯度

2022-01-24 02:08:07 字數 1199 閱讀 2447

我自己的理解。

這就是matlab的計算結果.太小的話放大些:

c =

4 5 9

7 2 1

5 2 6

>> [x,y]=gradient(c)

x = 1.0000 2.5000 4.0000

-5.0000 -3.0000 -1.0000

-3.0000 0.5000 4.0000

y = 3.0000 -3.0000 -8.0000

0.5000 -1.5000 -1.5000

-2.0000 0 5.0000

先看x,x就是矩陣的橫向梯度,怎麼求解的呢,第一列就是的數值就是第二列減去第一列的值除以1   比如-5=(2-7)/1.第2列就是第二列減去第一列的值加上第三列減去第二列的值再除以2,比如:-3=((2-7)+(1-2))/2.最後一列比較特殊,因為它之後沒有其餘列了,於是最後一列=最後一列減去倒數第二列除以1.比如-1=(1-2)/1.

y的求解跟1就是乙個性質了  。

在上matlab課的時候,有學生問怎麼用gradient函式求f=2x2+3y3的梯度啊,不懂得怎麼寫格式,試了很多次都不行.解答如下:

在matalb中,求梯度只能是求數值梯度,所以必須將函式f離散化,用差分代替微分,精度取決於差分步長,因為現在計算機速度足夠快,所以差分可以取得足夠小,也不影響計算速度和計算精度.方法如下:

x=-6:0.6:6;   %計算區間是[-6 6],步長0.6

y=x;

[x,y]=meshgrid(x,y) %生成計算網格

f=2.*x.^2+3.*y.^3 %計算網格結點上的函式值

[dx,dy]=gradient(f) %用數值方法求函式梯度

quiver(x,y,dx,dy) %用向量繪圖函式繪出梯度向量大小分布

hold on

contour(x,y,f) %與梯度值對應,繪出原函式的等值線圖

matlab梯度計算

clc x 8,9,6,9,2 5,8,7,0,1 4,5,4,6,9 8,1,0,9,5 fx,fy gradient x 結果如下 fx 1.0000 1.0000 0 2.0000 7.0000 3.0000 1.0000 4.0000 3.0000 1.0000 1.0000 0 0.500...

matlab 梯度計算原理

clc x 8,9,6,9,2 5,8,7,0,1 4,5,4,6,9 8,1,0,9,5 fx,fy gradient x 結果如下 fx 1.0000 1.0000 0 2.0000 7.0000 3.0000 1.0000 4.0000 3.0000 1.0000 1.0000 0 0.500...

Jacobian矩陣和梯度矩陣

記號標識 標量 常規小寫字母 向量 加粗的小寫字母 x x1,xm t rm bm x x 1,cdots,x m t in mathbb m x x1 x m t rm 實矩陣 加粗的大寫字母 x x1,xn t rm n bm x bm x 1,cdots,bm x n t in mathbb ...