matlab,求二維矩陣的兩個極值點

2021-03-03 20:35:32 字數 3072 閱讀 9150

1樓:我行我素

求二維矩陣的極值點,就是用matlab的兩個命令min,max。如:

a=magic(5);

amin=min(min(a))

amax=max(max(a))

2樓:有空飄過的

試一下這個

3樓:武陵笑天

求矩陣a的最小值:min(min(a))

求矩陣a的最大值:max(max(a))

matlab如何找到一個陣列中的最大值以及它所在的位置

4樓:匿名使用者

用max()函式即可,比如

>> r = rand(1,10);

>> [maxr,index]=max(r)maxr =

0.9649

index =

10第一個返回引數是最大值專,第二個引數是最大值所在的位置(下標屬)

matlab如何 對陣列求導?

5樓:匿名使用者

本來不想說的。

你的前幾個資料的y是相同的,也就是說是它們的數值導數肯定為零。但不意味著這些點都是極值點,這些絕對是你的資料精度的問題。

解析式比數值的優勢,我覺得就是「精度」,解析式能求出任何一點的值,而數值只是有限的幾個點是己知的,根據這些去猜測(也就是插值)出其它點的值(這些值跟真值應當有一些出入)

data=[

1.04 0

1.12 0

1.2 0

1.28 0

1.36 0

1.44 0

1.52 0

1.6 0

1.68 0

1.76 0

1.84 0

1.92 0

2 52.08 69

2.16 408

2.24 1148

2.32 1963

2.4 2074

2.48 1436

2.56 689

2.64 287

2.72 80

2.8 27

2.88 4

2.96 2

3.04 0

3.12 7

3.2 14

3.28 61

3.36 158

3.44 330

3.52 724

3.6 1367

3.68 2332

3.76 3411

3.84 4054

];x=data(:,1)';

y=data(:,2)';

plot(x,y)

dydx=diff(y)./diff(x); %這個是數值導數

x(find(dydx==0)) %直接數值導數為0的x的值,但是你無法得到中間那個峰的值。

x(dydx(1:end-1).*dydx(2:end)<0) %導數值跨過0的值,這個應當是你想要的

6樓:逆心小土豆

你看看:

syms x1 x2 x3

f = x1^2+x2^2+x3^2;

fx1 = diff(f,x1);

fx2 = diff(f,x2);

fx3 = diff(f,x3);

x11 = input('請輸入整數x1:');

x22 = input('請輸入整數x2:');

x33 = input('請輸入整數x3:');

subs(fx1,x1,x11)

subs(fx2,x2,x22)

subs(fx3,x3,x33)

輸出的subs就是賦值之後的每一個偏導的結果,你可以試著執行一下。

diff預設對x求導,如果有好幾個x,則預設對x1求導,預設求一介導。

7樓:匿名使用者

方法:1. 矩陣y對標量x求導:

y = [y(ij)]d y/dx = [dy(ji)/dx]2. 標量y對列向量x求導:

y = f(x1,x2,..,xn) dy/dx= (dy/dx1,dy/dx2,..,dy/dxn)'

3. 行向量y'對列向量x求導:

y的每一列對x求偏導,各列構成一個矩陣。

4. 列向量y對行向量x』求導:

轉化為行向量y』列向量x的導數轉置。

5. 向量積對列向量x求導運演算法則:

d(uv')/dx =(du/dx)v' + u(dv'/dx)d(u'v)/dx =(du'/dx)v + (dv'/dx)u'

6. 矩陣y對列向量x求導:

y對x的分量求偏導,構成超向量。

7. 矩陣積對列向量求導法則:

d(uv)/dx =(du/dx)v + u(dv/dx)d(uv)/dx =(du/dx)v + u(dv/dx)8. 標量y對矩陣x的導數:

把y對每個x的元素求偏導,不用轉置。

dy/dx = [dy/dx(ij) ]

9. 矩陣y對矩陣x的導數:

將y的每個元素對x求導,然後排在一起形成超級矩陣。

10.乘積的導數

d(f*g)/dx=(df'/dx)g+(dg/dx)f'

8樓:匿名使用者

這個問題我給你分析一下,首先你的想法看起來是對的,但其實不是很正確。

對於離散的資料點,使用求導的方法尋找極值,你會發現找不到導數為零的地方的。原因是離散點求導就是做差分。

尋找極值的方法應該是:一維搜尋的方法

就是一個一個的查詢陣列,看在哪個點處的數比它前後的數都大。

9樓:匿名使用者

求導 函式為 diff()

如>> syms x;

>> y=x^2+x

y =x^2 + x

>> s=diff(y)

s =2*x + 1

10樓:匿名使用者

題目錯了爸!!!!!!!

matlab如何用二維矩陣畫出三維圖形

由於你沒有指定x,y座標的具體取值,下面 就直接用整數版序列代權替了.x 1 size data,1 y 1 size data,2 x,y meshgrid x,y surf x,y,data matlab 如何將二維陣列繪製成影象 1 首先,在工復 作命令視窗 制 mand windows輸入下...

matlab求兩個矩陣相乘,若出錯,澤自動求點乘

第13列 t 50 ts 55 改為t 50 55 50 length x 1 55 matlab計算兩矩陣點乘 1 開啟matlab,在命令列視窗中輸入a 2 4 6 9 b 1 5 5 8 建立2行2列的a,b矩陣 如下圖所示。2 使用矩陣點乘,兩個矩陣的對應位置元素相乘,在命令視窗中輸入 a....

C二維陣列的程式,一個 C 二維陣列的程式

陣列太大了,看看下面 一個由 c c 編譯的程式佔用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由 os 注意它與資料結構中的...