实验02MATLAB矩阵分析与处理第3章.docx

上传人:b****8 文档编号:10910048 上传时间:2023-02-23 格式:DOCX 页数:34 大小:64.04KB
下载 相关 举报
实验02MATLAB矩阵分析与处理第3章.docx_第1页
第1页 / 共34页
实验02MATLAB矩阵分析与处理第3章.docx_第2页
第2页 / 共34页
实验02MATLAB矩阵分析与处理第3章.docx_第3页
第3页 / 共34页
实验02MATLAB矩阵分析与处理第3章.docx_第4页
第4页 / 共34页
实验02MATLAB矩阵分析与处理第3章.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

实验02MATLAB矩阵分析与处理第3章.docx

《实验02MATLAB矩阵分析与处理第3章.docx》由会员分享,可在线阅读,更多相关《实验02MATLAB矩阵分析与处理第3章.docx(34页珍藏版)》请在冰豆网上搜索。

实验02MATLAB矩阵分析与处理第3章.docx

实验02MATLAB矩阵分析与处理第3章

《数学软件》课内实验

27

13信科

19

3

王平

王文娜、余艳

李倩

15

实验02MATLAB矩阵分析与处理

(第3章MATLAB矩阵分析与处理)

一、实验目的

1.掌握生成特殊矩阵的方法。

2.掌握矩阵分析的方法。

3.用矩阵求逆法解线性方程组。

4.掌握MATLAB各种表达式的书写规则以及常用函数的使用。

二、实验内容

1.分块矩阵

设有分块矩阵

,其中E、R、O、S分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证

命令窗口中的执行过程:

formatcompact

>>E=eye(3);

>>R=rand(3,2);

>>O=zeros(2,3);

>>S=diag([1,2]);

>>A=[E,R;O,S]

A=

Columns1through4

1.0000000.6787

01.000000.7577

001.00000.7431

0001.0000

0000

Column5

0.3922

0.6555

0.1712

0

2.0000

>>A^2

ans=

Columns1through4

1.0000001.3575

01.000001.5155

001.00001.4863

0001.0000

0000

Column5

1.1767

1.9664

0.5136

0

4.0000

>>C=[E,R+R*S';O,S^2]

C=

Columns1through4

1.0000001.3575

01.000001.5155

001.00001.4863

0001.0000

0000

Column5

1.1767

1.9664

0.5136

0

4.0000

2.希尔伯特矩阵、帕斯卡矩阵及其行列式的值和条件数

产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好(注:

条件数越接近1,矩阵的性能越好)。

命令窗口中的执行过程:

H=hilb(5);P=pascal(5);

>>Hh=det(H)

Hh=

3.7493e-012

>>Hp=det(P)

Hp=

1

>>Th=cond(H)

Th=

4.7661e+005

>>Tp=cond(P)

Tp=

8.5175e+003

3.求矩阵的行列式值、迹、秩和范数

建立一个5×5矩阵,求它的行列式值、迹、秩和范数。

命令窗口中的执行过程:

A=rand(5);

>>B=det(A),R=rank(A),T=trace(A),V=norm(A)

B=

0.0249

R=

5

T=

2.0045

V=

2.5684

4.求A的特征值及特征向量

已知

命令窗口中的执行过程:

A=[-29,6,18;20,5,12;-8,8,5];

>>[V,D]=eig(A,'nobalance')

V=

1.00000.35640.3132

-0.8533-1.00001.0000

0.48900.69920.4642

D=

-25.316900

0-10.51820

0016.8351

5.解线性方程组

下面是一个线性方程组:

(1)求方程的解。

(2)将方程右边向量元素b3改为0.53再求解,并比较b3的变化和解的相对变化。

(3)计算系数矩阵A的条件数并分析结论。

命令窗口中的执行过程:

A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];

>>b=[0.95,0.67,0.52]';

>>x1=inv(A)*b,x2=A\b

x1=

1.2000

0.6000

0.6000

x2=

1.2000

0.6000

0.6000

6.建立A矩阵,计算sqrtm(A)和sqrt(A),注意其区别

命令窗口中的执行过程:

A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];

>>sqrtm(A)

ans=

0.60020.31440.2023

0.31440.30410.2422

0.20230.24220.2589

>>sqrt(A)

ans=

0.70710.57740.5000

0.57740.50000.4472

0.50000.44720.4082

三、实验提示

1.分块矩阵提示

设有分块矩阵

,其中E、R、O、S分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证

提示1:

注意!

此处的运算是代数(矩阵)运算,不是数组点运算。

用eye,rand,zeros函数,可以用diag函数。

第1步,分别求出E,R,O,S;

第2步,拼接出A;

第3步,计算A2;

第4步,拼接

比较。

%需要显示结果的,行后不加分号

2.希尔伯特矩阵、帕斯卡矩阵及其行列式的值和条件数提示

产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。

为什么?

提示1:

条件数越接近1,矩阵的性能越好。

四、教程:

第3章MATLAB矩阵分析与处理

3.1特殊矩阵p39

3.1.1通用的特殊矩阵

表产生通用特殊矩阵的函数及其含义p39

函数名

含义

zeros

全0矩阵(零矩阵)

ones

全1矩阵(幺矩阵)

eye

单位矩阵

rand

0~1间均匀分布的随机矩阵

randn

均值为0,方差为1的标准正态分布随机矩阵

例3.1分别建立3×3、3×2和与矩阵A同样大小的零矩阵p39

>>zeros(3)%1个输入参数

ans=

000

000

000

>>zeros(3,2)%2个输入参数

ans=

00

00

00

>>A=[123;456]%给出一个2×3阶矩阵A

A=

123

456

>>size(A)

ans=

23

>>zeros(size(A))%产生与A同型的零矩阵

ans=

000

000

>>zeros(2,3)%产生与A同型的零矩阵

ans=

000

000

例3.2建立随机矩阵p40

(1)在区间[20,50]内均匀分布的4阶随机矩阵。

(2)均值为0.6、方差为0.1的4阶正态分布随机矩阵。

>>rand(4)%0~1

ans=

0.19660.35170.91720.3804

0.25110.83080.28580.5678

0.61600.58530.75720.0759

0.47330.54970.75370.0540

>>x1=20+(50-20)*rand(4)%20~50

x1=

35.923937.064724.865524.9695

43.375034.081743.828538.0595

48.020320.357129.336527.8891

23.897230.113735.856039.6224

>>randn(4)%均值为0、方差为1

ans=

0.7394-0.83960.1240-1.2078

1.71191.35461.43672.9080

-0.1941-1.0722-1.96090.8252

-2.13840.9610-0.19771.3790

>>x2=0.6+sqrt(0.1)*randn(4)%均值0.6、方差0.1

x2=

0.26540.51210.33960.6106

0.45180.82180.10130.1783

0.5138-0.04880.76060.9565

0.94740.48810.68920.7107

3.1.2用于专门学科的特殊矩阵p40

表产生专门学科特殊矩阵的函数及其含义

函数名

含义

magic(n)

求魔方矩阵

vander(V)

生成指定向量为V的范得蒙矩阵

hilb(n)

生成希尔伯特矩阵

invhilb(n)

求n阶希尔伯特矩阵的逆

toeplitz(x,y)

生成托普利兹矩阵

toeplitz(x)

用向量x生成一个对称的托普利兹矩阵

compan(p)

生成伴随矩阵

pascal(n)

生成一个n阶帕斯卡矩阵

(1)魔方矩阵

每行、每列及两条对角线上的元素和都相等。

magic(n)求n阶魔方矩阵,其元素由1,2,3,…,n2共n2个整数组成。

例3.3将101~125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。

>>M=magic(5)

M=

17241815

23571416

46132022

101219213

11182529

>>sum(M,1)%按列累加

ans=

6565656565

>>sum(M,2)%按行累加

ans=

65

65

65

65

65

>>M1=100+magic(5)

M1=

117124101108115

123105107114116

104106113120122

110112119121103

111118125102109

(2)范得蒙(Vandermonde)矩阵

最后一列全为1;

倒数第二列为一个指定的向量;

其他各列是其后列与倒数第二列的点乘积。

vander(V)生成指定向量为V的范得蒙矩阵。

>>A=vander([1,2,3,5])%V为行向量

A=

1111

8421

27931

1252551

>>B=vander([1,2,3,5]')%V为列向量

B=

1111

8421

27931

1252551

(3)希尔伯特矩阵

元素

hilb(n)生成n阶希尔伯特矩阵。

条件数很差,用一般方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果。

invhilb(n)求n阶希尔伯特矩阵的逆。

例3.4求4阶希尔伯特矩阵及逆矩阵。

>>formatrat;%以有理形式输出

>>H=hilb(4)

H=

11/21/31/4

1/21/31/41/5

1/31/41/51/6

1/41/51/61/7

>>H1=invhilb(4)

H1=

16-120240-140

-1201200-27001680

240-27006480-4200

-1401680-42002800

>>formatshort;

(4)托普利兹矩阵

除第一行第一列外,其他每个元素都与左上角的元素相同。

toeplitz(x,y)生成一个以x为第一列,y为第一行的托普利兹矩阵。

这里x,y均为向量,两者不必等长。

toeplitz(x)用向量x生成一个对称的托普利兹矩阵。

>>T=toeplitz(1:

5,-1:

-1:

-4)

Warning:

Firstelementofinputcolumndoesnotmatchfirstelementofinputrow.

Columnwinsdiagonalconflict.

>Intoeplitzat25

T=

1-2-3-4

21-2-3

321-2

4321

5432

第1列的第1个元素

(1)≠第1行的第1个元素(-1)

取前者为T(1,1)

(5)伴随矩阵

compan(p)生成伴随矩阵的函数

其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。

例求多项式的x3-7x+6的伴随矩阵。

>>p=[1,0,-7,6];

>>compan(p)

ans=

07-6

100

010

(6)帕斯卡(Pascal)矩阵

二次项(x+y)n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形。

由杨辉三角形表组成的矩阵称为帕斯卡矩阵。

pascal(n)生成一个n阶帕斯卡矩阵。

例3.5求(x+y)5的展开式。

>>pascal(6)

ans=

111111

123456

136101521

1410203556

15153570126

162156126252

矩阵次对角线上的元素1,5,10,10,5,1即为展开式的系数。

3.2矩阵结构变换p43

表矩阵结构变换函数及其含义

函数名

含义

diag(A)

提取矩阵A主对角线元素,产生一个具有min(m,n)个元素的列向量

diag(A,k)

提取第k条对角线的元素

diag(V)

产生一个m×m对角矩阵,其主对角线元素为向量V的元素

diag(V,k)

产生一个n×n(n=m+|k|)对角阵,其第k条对角线的元素为向量V的元素

triu(A)

求矩阵A的上三角阵

triu(A,k)

求矩阵A的第k条对角线以上的元素

tril(A)

求矩阵A的下三角阵

tril(A,k)

求矩阵A的第k条对角线以下的元素

rot90(A,k)

将矩阵A旋转90º的k倍,按逆时针方向

fliplr(A)

对矩阵A实施左右翻转

flipud(A)

对矩阵A实施上下翻转

3.2.1对角阵与三角阵

1.对角阵

只有对角线上有非0元素。

数量矩阵—对角线上的元素相等的对角阵。

单位矩阵—对角线上的元素为1的对角阵。

(1)提取矩阵的对角线元素

设A为m×n矩阵。

Ødiag(A)提取主对角线元素,产生有min(m,n)个元素的列向量。

Ødiag(A,k)提取第k条对角线的元素。

>>A=[0,1,2;-1,0,1;-2,-1,0]

A=

012

-101

-2-10

>>diag(A,0)

ans=

0

0

0

>>diag(A,1)

ans=

1

1

>>diag(A,2)

ans=

2

>>diag(A,-1)

ans=

-1

-1

>>diag(A,-2)

ans=

-2

(2)构造对角矩阵

V为m个元素的向量。

Ødiag(V)产生m×m对角矩阵,主对角线元素为V。

Ødiag(V,k)产生n×n(n=m+|k|)对角阵,第k条对角线元素为V。

(注)

例3.6先建立5×5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。

>>A=ones(5)

A=

11111

11111

11111

11111

11111

>>D=diag(1:

5)

D=

10000

02000

00300

00040

00005

>>D*A

ans=

11111

22222

33333

44444

55555

2.三角阵p44

三角阵分为上三角阵和下三角阵。

Ø上三角阵对角线以下的元素全为0。

Ø下三角阵对角线以上的元素全为0。

(1)上三角矩阵

Øtriu(A)求矩阵A的上三角阵。

Øtriu(A,k)求矩阵A的第k条对角线以上的元素。

triu(A,0)功能同triu(A)。

>>A=[9,1,2,3,4;-1,9,1,2,3;...

-2,-1,9,1,2;-3,-2,-1,9,1;...

-4,-3,-2,-1,9]

A=

91234

-19123

-2-1912

-3-2-191

-4-3-2-19

>>B=triu(A)

B=

91234

09123

00912

00091

00009

>>C=triu(A,2)

C=

00234

00023

00002

00000

00000

(2)下三角矩阵

Øtril(A)求矩阵A的下三角阵。

Øtril(A,k)求矩阵A的第k条对角线以下的元素。

tril(A,0)功能同tril(A)。

>>A=[9,1,2,3,4;-1,9,1,2,3;...

-2,-1,9,1,2;-3,-2,-1,9,1;...

-4,-3,-2,-1,9]

A=

91234

-19123

-2-1912

-3-2-191

-4-3-2-19

>>B=tril(A)

B=

90000

-19000

-2-1900

-3-2-190

-4-3-2-19

>>C=tril(A,-2)

C=

00000

00000

-20000

-3-2000

-4-3-200

3.2.2矩阵的转置与旋转

1.矩阵的转置

转置运算符是单撇号:

'。

>>A=[11,12,13;21,22,23;31,32,33]

A=

111213

212223

313233

>>B=A'

B=

112131

122232

132333

2.矩阵的旋转

rot90(A,k)将矩阵A旋转90º的k倍,按逆时针方向。

当k为1时可省略。

>>A=[1,2;4,3]

A=

12

43

>>B=rot90(A)

B=

23

14

>>B1=rot90(A,1)

B1=

23

14

>>B2=rot90(A,2)

B2=

34

21

>>B0=rot90(A,0)

B0=

12

43

>>B_1=rot90(A,-1)

B_1=

41

32

3.矩阵的左右翻转

对矩阵实施左右翻转是将原矩阵的

第一列和最后一列调换;

第二列和倒数第二列调换;

…,依次类推。

%每一行逆序

fliplr(A)对矩阵A实施左右翻转。

>>A=[1,2,3,4;1,2,3,4;1,2,3,4;1,2,3,4]

A=

1234

1234

1234

1234

>>B=fliplr(A)

B=

4321

4321

4321

4321

>>C=1:

5

C=

12345

>>fliplr(C)%逆序

ans=

54321

4.矩阵的上下翻转

flipud(A)对矩阵A实施上下翻转。

>>A=[1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4]

A=

1111

2222

3333

4444

>>B=flipud(A)

B=

4444

3333

2222

1111

>>C=(1:

5)'

C=

1

2

3

4

5

>>flipud(C)%逆序

ans=

5

4

3

2

1

3.3矩阵求逆与线性方程组求解p46

3.3.1矩阵的逆与伪逆

表求矩阵的逆与伪逆函数及其含义

函数名

含义

inv(A)

求方阵A的逆矩阵

pinv(A)

求A的伪逆矩阵

1.矩阵的逆

对于方阵A,若存在与其同阶的方阵B,使:

A·B=B·A=I(I为单位矩阵)

则称B为A的逆矩阵,A也是B的逆矩阵。

inv(A)求方阵A的逆矩阵。

例3.7求方阵A的逆矩阵

clc;

A=[1,-1,1;5,-4,3;2,1,1]

B=inv(A)

B*A

A=

1-11

5-43

211

B=

-1.40000.40000.2000

0.2000-0.20000.4000

2.6000-0.60000.2000

ans=

1.00000.0000-0.0000

-0.00001.00000.0000

0.0000-0.00001.0000

矩阵的伪逆

若A不是方阵,或A是非满秩的方阵时,A没有逆矩阵。

但可找到与A'同型的矩阵B,使得:

A·B·A=AB·A·B=B

称B为矩阵A的伪逆,也称为广义逆矩阵。

pinv(A)求A的伪逆矩阵。

clc

A=[3,1,1,1;1,3,1,1;1,1,3,1]

B=pinv(A)

A*B*A

B*A*B

A=

3111

1311

1131

B=

0.3929-0.1071-0.1071

-0.10710.3929-0.1071

-0.1071-0.10710.3929

0.03570.03570.0357

ans=

3.00001.00001.00001.0000

1.00003.00001.00001.0000

1.00001.00003.00001.0000

ans=

0.3929-0.1071-0.1071

-0.10710.3929-0.1071

-0.1071-0.10710.3929

0.03570.03570.0357

3.3.2用矩阵求逆方法求解线性方程组

Ax=b

其解为:

x=A-1b

例3.8解线性方程组

clc;

A=[1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1