MATLAB經常使用操做

1.點乘,點除,點乘方javascript

點乘(對應元素相乘),必須同維或者其中一個是標量,a.*bjava

點除,a.\b表示矩陣b的每一個元素除以a中對應元素或者除以常數a,a./b表示常數a除以矩陣b中每一個元素或者矩陣a除以矩陣b對應元素或者常數b算法

點乘方a.^b,矩陣a中每一個元素按b中對應元素乘方或者b是常數數組

2.矩陣中元素的操做函數

矩陣a中第r行,a(r,:),spa

第r列,a(:,r),翻譯

依次提取每一列組成一個列向量a(:),code

提取子矩陣第i到j行和第k到t列a(i:j,k:t)orm

能夠經過下標引用,可是元素下標從1開始, 也可經過序號引用,可是按列存儲,也就是說對於3*3的矩陣a,a(4)是a(1,2)不是a(2,1)blog

3.求極限

syms x;

f表達式

limit(f,0)//表示x趨於0時的極限

4.因式分解

syms x

factor(表達式)

5.求積分

syms x

y = x^2 + 2

int(y,3,4)//在區間3到4求積分

或者

quad('sin(x)',4,6) %必加引號

5 . 求n階導數

diff(函數表達式,階數n)//注意並非在x = n時的一階導數值

6.解一元方程

syms x

 y = X^3 - 1//y必須是個式子,也就是說x必須是符號變量不但是具體的數,不然一直空解

solve(y)

或者

求方程 3x4+7x3 +9x2-23=0的所有根。

p=[3,7,9,0,-23];        %創建多項式係數向量

x=roots(p)               %求根

7.whos用於顯示駐留在工做區內的變量的詳細信息,採用clear 變量名把該變量清理出內存

8.linspace(a,b,n) 其中a和b是生成向量的第一個和最後一個元素,n是元素總數。 顯然,linspace(a,b,n)與a:(b-a)/(n-1):b等價。

9.size(矩陣名),輸出行數和列數,好比產生和矩陣a同維的全一陣,ones(size(a))

10.經常使用的產生通用特殊矩陣的函數有: zeros:產生全0矩陣(零矩陣)。 ones:產生全1矩陣(幺矩陣)。 eye:產生單位矩陣。 rand:產生0~1間均勻分佈的隨機矩陣。 randn:產生均值爲0,方差爲1的標準正態分佈隨機矩陣。

   一.經常使用特殊陣

創建隨機矩陣:

(1) 在區間[20,50]內均勻分佈的5階隨機矩陣。

(2) 均值爲0.六、方差爲0.1的5階正態分佈隨機矩陣。

命令以下: x=20+(50-20)*rand(5)

y=0.6+sqrt(0.1)*randn(5)

此外,經常使用的函數還有reshape(A,m,n),它在矩陣總元素個數保持不變的前提下,將矩陣A從新排成m×n的二維矩陣。

例如,行向量:
a = [1 2 3 4 5 6]

執行下面語句把它變成3行2列:
b = reshape(a,3,2)

執行結果:
b =
1 4
2 5
3 6

在使用reshape時必定要注意的是變換先後矩陣的總元素個數和值不變。

   二.用於專門學科的特殊矩陣

 (1) 魔方矩陣

魔方矩陣有一個有趣的性質,其每行、每列及兩條對角線上的元素和都相等。

對於n階魔方陣,其元素由1,2,3,…,n2共n2個整數組成。MATLAB提供了求魔方矩陣的函數magic(n),其功能是生成一個n階魔方陣。

將101~125等25個數填入一個5行5列的表格中,使其每行每列及對角線的和均爲565。

M=100+magic(5)

可知:n階普通魔方陣的常數值是n(n^2+1)/2(1加到n^2再除以n)。

 (2) 範得蒙矩陣

範得蒙(Vandermonde)矩陣最後一列全爲1,倒數第二列爲一個指定的向量,其餘各列(即從第三列開始)是其後列與倒數第二列的點乘積即倒數第二列的次方。

能夠用一個指定向量生成一個範得蒙矩陣。在MATLAB中,函數vander(V)生成以向量V爲基礎向量的範得蒙矩陣。

例如,A=vander([1;2;3;5])便可獲得上述範得蒙矩陣。

(3) 希爾伯特矩陣

Hilbert matrix,矩陣的一種,其元素爲1/(i+j-1),ij分別爲其行標和列標。

  即:

  [1,1/2,1/3,……,1/n]

  |1/2,1/3,1/4,……,1/(n+1)|

  |1/3,1/4,1/5,……,1/(n+2)|

  ……

  [1/n,1/(n+1),1/(n+2),……,1/(2n-1)]

  希爾伯特矩陣是一種數學變換矩陣,正定,且高度病態(即,任何一個元素髮生一點變更,整個矩陣的值和逆矩陣都會發生巨大變化),病態程度和階數相關。

在MATLAB中,生成希爾伯特矩陣的函數是hilb(n)。 使用通常方法求逆會由於原始數據的微小擾動而產生不可靠的計算結果。MATLAB中,有一個專門求希爾伯特矩陣的逆的函數invhilb(n),其功能是求n階的希爾伯特矩陣的逆矩陣。

由於希爾伯特矩陣已經規定好了,所以hilb和invhilb只有一個參數即階數。

format rat     %以有理形式輸出,即循環小數表示成分數

(4) 託普利茲矩陣

託普利茲(Toeplitz)矩陣除第一行第一列外,其餘每一個元素都與左上角的元素相同。即主對角線上的元素相等,平行於主對角線的線上的元素也相等。生成託普利茲矩陣的函數是toeplitz(x,y),它生成一個以x爲第一列,y爲第一行的託普利茲矩陣。這裏x, y均爲向量,二者沒必要等長。toeplitz(x)用向量x生成一個對稱的託普利茲矩陣。例如   T=toeplitz(1:6).

 (5) 伴隨矩陣

MATLAB生成伴隨矩陣的函數是compan(p),其中p是一個多項式的係數向量,高次冪係數排在前,低次冪排在後。

例如,爲了求多項式的x3-7x+6的伴隨矩陣,可以使用命令: p=[1,0,-7,6];

compan(p)

看了好多的書,都把compan()函數翻譯成求伴隨矩陣或友矩陣,但是你用它的時候你會

發現,compan()函數的輸入只能是一個向量(vector),而不能是一個矩陣(matrix),

因此我以爲它不能稱爲真正的求伴隨矩陣的函數。不過,咱們能夠利用高等數學上的伴隨

矩陣和逆矩陣的關係來求逆矩陣,像這樣:

複製代碼
1 function J=companymatrix(A)
2 if det(A)~=0%det是求行列式的值
3      J=inv(A)*det(A);
4 else
5      fprintf('|A|=0\n');
6      J=pinv(A)*det(A);
7 end
複製代碼

(6) 帕斯卡矩陣

咱們知道,二次項(x+y)n展開後的係數隨n的增大組成一個三角形表,稱爲楊輝三角形。

由楊輝三角形表組成的矩陣稱爲帕斯卡(Pascal)矩陣。

函數pascal(n)生成一個n階帕斯卡矩陣。

求(x+y)5的展開式。

在MATLAB命令窗口,輸入命令: pascal(6)

矩陣次對角線上的元素1,5,10,10,5,1即爲展開式的係數。

11.矩陣分析

   11.1 對角陣 只有對角線上有非0元素的矩陣稱爲對角矩陣,對角線上的元素相等的對角矩陣稱爲數量矩陣,對角線上的元素都爲1的對角矩陣稱爲單位矩陣。

diag(a),提取矩陣a的對角線元素組成列向量。

先創建5×5矩陣A,而後將A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。

A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;... 11,18,25,2,19];

D=diag(1:5);

D*A  %用D左乘A,對A的每行乘以一個指定常數

   11.2三角陣

triu及tril

  11.3矩陣轉置

a'共軛轉置,a.'爲普通矩陣轉置(並非順時針旋轉90),rot90(a)表示逆時針旋轉90

   11.4矩陣的翻轉

對矩陣實施左右翻轉是將原矩陣的第一列和最後一列調換,第二列和倒數第二列調換,…,依次類推。

MATLAB對矩陣A實施左右翻轉的函數是fliplr(A)。

矩陣的上下翻轉 MATLAB對矩陣A實施上下翻轉的函數是flipud(A)。

   11.5方陣的行列式

把一個方陣看做一個行列式,並對其按行列式的規則求值,這個值就稱爲矩陣所對應的行列式的值。在MATLAB中,求方陣A所對應的行列式的值的函數是det(A)。

   11.6矩陣的秩與跡

1.矩陣的秩 矩陣線性無關的行數與列數稱爲矩陣的秩。在MATLAB中,求矩陣秩的函數是rank(A)。

2.矩陣的跡 矩陣的跡等於矩陣的對角線元素之和,也等於矩陣的特徵值之和。在MATLAB中,求矩陣的跡的函數是trace(A)。

   11.7向量和矩陣的範數

向量的3種經常使用範數及其計算函數

在MATLAB中,求向量範數的函數爲:

(1) norm(V)或norm(V,2):計算向量V的2—範數。

(2) norm(V,1):計算向量V的1—範數。

(3) norm(V,inf):計算向量V的∞—範數。

 

在MATLAB中,計算矩陣A的3種條件數的函數是:

(1) cond(A,1)   計算A的1—範數下的條件數。

(2) cond(A)或cond(A,2)   計算A的2—範數數下的條件數。

(3) cond(A,inf)   計算A的 ∞—範數下的條件數。

   11.8矩陣的特徵值與特徵向量

在MATLAB中,計算矩陣A的特徵值和特徵向量的函數是eig(A),經常使用的調用格式有3種:

(1) E=eig(A):求矩陣A的所有特徵值,構成向量E。

(2) [V,D]=eig(A):求矩陣A的所有特徵值,構成對角陣D,並求A的特徵向量構成V的列向量。

(3) [V,D]=eig(A,‘nobalance’):與第2種格式相似,但第2種格式中先對A做類似變換後求矩陣A的特徵值和特徵向量,而格式3直接求矩陣A的特徵值和特徵向量。

   11.9

 

關係運算    

MATLAB提供了6種關係運算符:<(小於)、<=(小於或等於)、>(大於)、>=(大於或等於)、==(等於)、~=(不等於)。

它們的含義不難理解,但要注意其書寫方法與數學中的不等式符號不盡相同。

a = b表示把b賦值給同維的矩陣a

 

 

關係運算符的運算法則爲:    

(1) 當兩個比較量是標量時,直接比較兩數的大小。若關係成立,關係表達式結果爲1,不然爲0。    

(2) 當參與比較的量是兩個維數相同的矩陣時,比較是對兩矩陣相同位置的元素按標量關係運算規則逐個進行,並給出元素比較結果。

最終的關係運算的結果是一個維數與原矩陣相同的矩陣,它的元素由0或1組成。

當參與比較的一個是標量,而另外一個是矩陣時,則把標量與矩陣的每個元素按標量關係運算規則逐個比較,並給出元素比較結果。

最終的關係運算的結果是一個維數與原矩陣相同的矩陣,它的元素由0或1組成。

產生5階隨機方陣A,其元素爲[10,90]區間的隨機整數,而後判斷A的元素是否能被3整除。    

(1) 生成5階隨機方陣A。 A=fix((90-10+1)*rand(5)+10)    

(2) 判斷A的元素是否能夠被3整除。

P=rem(A,3)==0 其中,rem(A,3)是矩陣A的每一個元素除以3的餘數矩陣。

此時,0被擴展爲與A同維數的零矩陣,P是進行等於(==)比較的結果矩陣。

 

 

創建矩陣A,而後找出大於4的元素的位置。

(1) 創建矩陣A。 A=[4,-65,-54,0,6;56,0,67,-45,0]

(2) 找出大於4的元素的位置。 find(A>4)

 

12.

  solve是符號解(解析解),roots是數值解 用求特徵值的方法解方程。

3x5-7x4+5x2+2x-18=0 p=[3,-7,0,5,2,-18];

A=compan(p);           %A的伴隨矩陣

x1=eig(A)              %求A的特徵值

x2=roots(p)                 %直接求多項式p的零點

矩陣的超越函數

1.矩陣平方根sqrtm sqrtm(A)計算矩陣A的平方根。

 2.矩陣對數logm logm(A)計算矩陣A的天然對數。

此函數輸入參數的條件與輸出結果間的關係和函數sqrtm(A)徹底同樣

矩陣指數expm、expm一、expm二、expm3 expm(A)、expm1(A)、expm2(A)、expm3(A)的功能都求矩陣指數eA。

4.普通矩陣函數funm funm(A,‘fun’)用來計算直接做用於矩陣A的由‘fun’指定的超越函數值。當fun取sqrt時,funm(A,‘sqrt’)能夠計算矩陣A的平方根,與sqrtm(A)的計算結果同樣。

13.天然對數相關

exp,即天然對數表示爲exp(x)。
log(X) %天然對數
log2(X) %以2爲底
log10(X) %以10爲底

14.多項式乘除法
1  p1=conv([1,0,2],conv([1,4],[1,1]));  %conv表示多項式相乘
2 p2=[1 0 1 1];  
3 [q,r]=deconv(p1,p2); 
4 cq='商多項式爲  '; cr='餘多項式爲  '; %disp爲屏幕輸出函數
5 disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,'s')]) % poly2str表示生成多項式

商多項式爲     s + 5
餘多項式爲     5 s^2 + 4 s + 3

15.

polyval(p,x)計算在X中任意元素處的多項式p的估值。 

poly(A)求矩陣的特徵多項式。

[d,v] = eig(A)其中d是矩陣的特徵向量,V是特徵值。

相關文章
相關標籤/搜索