Matlab學習過程(二)

2021-08-20 11:45:41 字數 3743 閱讀 8706

常見的產生通用特殊矩陣的函式有:zeros():產生全0矩陣;ones():產生全1矩陣;eye():產生單位矩陣;                       rand():產生(0,1)區間均勻分布的隨機矩陣;randn():產生均值為0,方差為1的標準正態分佈隨機矩陣;

另外,如果要產生(m,n)之間的均勻分布的s階隨機矩陣,則a= m+rand(s)*(m-n);如果要產生均值為m,方差為n的s階正態分佈隨機矩陣,則a=m+sqrt(n)*randn(s);

1、魔方矩陣:每行每列及兩條對角線上元素的和都相等並且都等於(n

*n+1)*n/2;總共有n的平方個元素;matlab中的函式為magic(n);

2、範德蒙矩陣(vandermonde):最後一列全為1,倒數第二列為乙個指定的向量,其餘各列是其後一列與倒數第二列對應元素的乘積;函式為vander(v);

3、希爾伯特矩陣是一種數學變換矩陣,他的每個元素hij

= 1/(i+j-1),函式為hilb(h);而invhilb(h)是專門求希爾伯特矩陣的逆矩陣函式;

4、託普利茲矩陣:除了第一行和第一列之外,其他每個元素都與左上角的元素相等。函式為toeplitz(x,y),x為第一列,y為第一行元素,且x、y均為向量,二者不必等長;

5、伴隨矩陣:函式為compan(p),p為乙個多項式的係數向量,高次冪係數在前,低次冪係數在後。

6、帕斯卡矩陣:其第一行和第一列元素均為1,其餘位置的元素是該元素的左邊元素與上一行對應位置的元素相加,函式pascal(n),生成乙個n階帕斯卡矩陣,而這個帕斯卡矩陣的次對角線即為(x+y)^n的展開式的係數。

1、對角陣:只有對角線上有非零的元素的矩陣稱為對角陣,對角線上元素相等的對角陣稱為數量陣,對角線上元素都為1的矩陣成為單位矩陣。

(1)提取矩陣的對角線元素:diag(a),產生乙個列向量;diag(a,k)表示產生第k條對角線的元素,其中,與主對角線平行,往上依次為第1條,第2條....,往下依次為第-1條,第-2條........主對角線為第0條。

(2)構造對角陣:假設v為乙個m個元素的向量,則diag(v)會生成乙個m*m的對角陣,對角線元素為v的元素,diag(v,k)表示將v的元素放在第幾條對角線上;

2、三角陣:分為上三角陣和下三角陣;主對角線以下的元素全為零的矩陣為上對角陣,主對角線以上元素全為零的矩陣成為下對角陣;

(1)上對角陣:求a矩陣的上對角陣b的函式為:b= triu(a),b與a是同型矩陣,且b的對角線(含對角線)的元素與a對應相等,而對角線以下都為零;triu(a,k)是求矩陣a的第k條對角線以上元素;

(2)下對角線函式為tril(a)和tril(a,k),用法同上對角線。

2.2.2 矩陣的轉置與旋轉

1、矩陣的轉置運算子為(.'),還有一種是共軛轉置('),共軛轉置是在轉置的基礎上取每個數的復共軛,當矩陣元素為實數時,二者沒有區別。

2、旋**以90度為單位對矩陣a按逆時針方向旋轉,rot90(a,k),將a旋轉90度的k倍。

3、左右旋**fliplr(a),上下反**flipud(a)。

2.2.3 矩陣的逆與偽逆

1、矩陣的逆:求逆的函式為inv(a);可以用矩陣的逆來求解線性方程組:已知a為方程組的係數矩陣,b為方程組等號右邊的值向量,x=inv(a)*b;

2、矩陣的偽逆:如果矩陣a不是乙個方陣,或者a是乙個非滿秩的方陣時,矩陣a沒有逆矩陣,但是可以找到乙個與a的轉置矩陣a'同型的矩陣b,使得a*b*a=a,b*a*b=b;此時稱b為a的偽逆,也稱為廣義逆矩陣,函式為pinv(a);

2.3.1 方陣的行列式

:det(a)。

2.3.2 矩陣的秩與跡

1、矩陣的秩:矩陣線性無關的行數與列數成為矩陣的秩。函式為rank(a)。

2、矩陣的跡:矩陣的跡等於矩陣的對角線元素之和,函式為trace(a)。

2.3.3  向量和矩陣的範數

1、向量的三種範數:(1)向量1-範數:向量元素的絕對值之和:norm(v,1);

(2)向量2-範數:向量元素平方和的平方根:norm(v,2)或者norm(v)

(3)向量∞-範數:所有向量元素絕對值的最大值:norm(v,inf)

2、矩陣的範數:(1)矩陣a的1-範數:所有矩陣列元素絕對值之和的最大值:norm(a,1)。

(2)矩陣a的2-範數:a'a矩陣的最大特徵值得平方根:norm(a)或者norm(a,2)。

(3)矩陣a的∞-範數:所有矩陣行元素絕對值之和的最大值:norm(a,inf)。

2.3.4 矩陣的條件數

在求解線性方程組ax=b時,一般認為,係數矩陣a中個別元素的微小擾動不會引起解向量的很大變化。但是這種假設並非總是正確的,對於有的係數矩陣,個別元素的微小擾動會引起解的很大變化,在計算數學中,這種矩陣稱為病態矩陣,而稱解不因其係數矩陣的微小擾動而發生巨大變化的矩陣稱為良性矩陣,二者是相對的,需要乙個引數來描述,條件數就是用來描述矩陣的這種效能的乙個引數。

矩陣a的條件數等於a的範數與a的逆矩陣的範數的乘積,即cond(a)=||a|| ||a的逆||。 這個條件數越接近1,矩陣的效能越好。同樣的可以計算矩陣的三種範數((cond(a,1)),(cond(a)),(cond(a,inf))),相應的可以定義三種條件數。

(1)v=eig(a):求矩陣a的全部特徵值,構成向量v;

(2)[x,d]=eig(a):求矩陣a的全部特徵值,構成對角陣d,並產生矩陣x,x各列是相應的特徵向量,滿足a*x=x*d

(3)[x,d]=eig(a,'nobalance'):與第二種格式類似,但是第二種格式中先對a作相似變換後求矩陣a的特徵值和特徵向量,而第三種格式直接求a的特徵值和特徵向量。

乙個矩陣的特徵向量是無窮多個的,eig函式只能找出其中的n個,a的其他特徵向量可以由這n個特徵向量的線性組合表示。

稀疏矩陣是指具有大量零元素,而僅含有極少量的非零元素的矩陣。

2.5.1 矩陣的儲存方式

1、完全儲存方式:將矩陣的全部元素按列儲存。

2、稀疏儲存方式:僅儲存矩陣所有的非零元素的值及其位置,即行號和列號。matlab中稀疏儲存也是按列儲存的。括號內為行列位置,其後為元素值。

注意:在講稀疏矩陣時,有兩個不同的概念,一是指矩陣的0元素較多該矩陣是有稀疏特徵的矩陣,二是採用稀疏方式儲存的矩陣。

2.5.2 稀疏儲存方式的產生

1、將完全儲存方式轉化為稀疏儲存方式

函式a=sparse(s),將s矩陣轉化為稀疏儲存方式的矩陣a。當s本事就是稀疏儲存方式矩陣時,函式呼叫相當於a=s;

sparse函式還有其他的呼叫格式:(1)sparse(m,n):生成乙個m*n的所有元素都是0的稀疏矩陣;

(2)sparse(u,v,s):其中u,v,s是等長的向量,s是要建立的稀疏矩陣的非零元素,u(i),v(i)分別是s(i)的行和列下標,該函式建立乙個 max(u)行max(v)列的並以s為稀疏元素的稀疏矩陣。

此外:(1)[u,v,s]=find(a):返回矩陣a中非零元素的下標和元素。

(2)full(a):返回和稀疏儲存矩陣a對應的完成儲存矩陣。

2、產生稀疏儲存矩陣

spconvert函式可以直接將a所描述的乙個稀疏矩陣轉化為乙個稀疏儲存矩陣,b=spconvert(a),其中a是乙個m*3或者m*4的矩陣,其每行代表乙個非零元素,m是非零元素的個數,a中每個元素的意義是,a(i,1)表示第i個非零元素所在的行,a(i,2)表示第i個非零元素所在的列,a(i,3)表示第i個非零元素值的實部,a(i,4)表示第i個非零元素值的虛部(可不存在)。

3、單位矩陣的稀疏儲存

單位矩陣,只有對角線元素都1,其他元素都為0,是一種稀疏特徵的矩陣。eye函式產生乙個完全儲存方式的單位矩陣。speye函式產生稀疏儲存方式的單位矩陣,speye(m,n)返回乙個m*n的稀疏單位矩陣。

matlab學習過程

最近學了乙個方程式,廢話不多直接上 function f2c while 1 f input temperature in f if isempty f 1 break endc f 32 5 9 c num2str c a temperature in c c disp a end其實就是華氏溫度...

Matlab學習筆記(二)

四灰色 五遺傳演算法 六神經網路 先等等再學這個。主程式 用遺傳演算法求解y 200 exp 0.05 x sin x 再 2 2 上的最大值 clc clear all close all global bitlength global st global ed bounds 2 2 一維變數的取...

matlab學習二,常用函式

求和函式sum sum x 若x為向量,sum x 為x中各元素之和 若x為矩陣,x 1,2,3 3,4,5 6,7,8 y sum x,1 or sum x 每列求和,返回乙個行向量 y 10 13 16 y sum x,2 每行求和,返回乙個列向量 y 6 1221求平均值函式 mean mea...