01矩阵及其基本运算Word文件下载.docx

上传人:b****1 文档编号:1464200 上传时间:2023-04-30 格式:DOCX 页数:110 大小:250.72KB
下载 相关 举报
01矩阵及其基本运算Word文件下载.docx_第1页
第1页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第2页
第2页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第3页
第3页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第4页
第4页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第5页
第5页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第6页
第6页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第7页
第7页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第8页
第8页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第9页
第9页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第10页
第10页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第11页
第11页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第12页
第12页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第13页
第13页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第14页
第14页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第15页
第15页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第16页
第16页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第17页
第17页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第18页
第18页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第19页
第19页 / 共110页
01矩阵及其基本运算Word文件下载.docx_第20页
第20页 / 共110页
亲,该文档总共110页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

01矩阵及其基本运算Word文件下载.docx

《01矩阵及其基本运算Word文件下载.docx》由会员分享,可在线阅读,更多相关《01矩阵及其基本运算Word文件下载.docx(110页珍藏版)》请在冰点文库上搜索。

01矩阵及其基本运算Word文件下载.docx

141516

CN=R+i*M

CN=

1.0000+11.0000i2.0000+12.0000i3.0000+13.0000i

4.0000+14.0000i5.0000+15.0000i6.0000+16.0000i

1.1.2符号矩阵的生成

在MATLAB中输入符号向量或者矩阵的方法和输入数值类型的向量或者矩阵在形式上很相像,只不过要用到符号矩阵定义函数sym,或者是用到符号定义函数syms,先定义一些必要的符号变量,再像定义普通矩阵一样输入符号矩阵。

1.用命令sym定义矩阵:

这时的函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制,只是将方括号置于用于创建符号表达式的单引号中。

如下例:

例1-3

sym_matrix=sym('

[abc;

Jack,HelpMe!

,NOWAY!

],'

sym_matrix=

[abc]

[JackHelpMe!

NOWAY!

]

sym_digits=sym('

[123;

abc;

sin(x)cos(y)tan(z)]'

sym_digits=

[123]

[sin(x)cos(y)tan(z)]

2.用命令syms定义矩阵

先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入符号矩阵。

例1-4

symsabc;

M1=sym('

Classical'

);

M2=sym('

Jazz'

M3=sym('

Blues'

syms_matrix=[abc;

M1,M2,M3;

int2str([235])]

syms_matrix=

[abc]

[ClassicalJazzBlues]

[235]

把数值矩阵转化成相应的符号矩阵。

数值型和符号型在MATLAB中是不相同的,它们之间不能直接进行转化。

MATLAB提供了一个将数值型转化成符号型的命令,即sym。

例1-5

Digit_Matrix=[1/3sqrt

(2)3.4234;

exp(0.23)log(29)23^(-11.23)]

Syms_Matrix=sym(Digit_Matrix)

结果是:

Digit_Matrix=

0.33331.41423.4234

1.25863.36730.0000

Syms_Matrix=

[1/3,sqrt

(2),17117/5000]

[5668230535726899*2^(-52),7582476122586655*2^(-51),5174709270083729*2^(-103)]

注意:

矩阵是用分数形式还是浮点形式表示的,将矩阵转化成符号矩阵后,都将以最接近原值的有理数形式表示或者是函数形式表示。

1.1.3大矩阵的生成

对于大型矩阵,一般创建M文件,以便于修改:

例1-6用M文件创建大矩阵,文件名为example.m

exm=[456468873257955

2168754488813

6545678898215

4566845896545987

548810963377]

在MATLAB窗口输入:

example;

size(exm)%显示exm的大小

ans=

56%表示exm有5行6列。

1.1.4多维数组的创建

函数cat

格式A=cat(n,A1,A2,…,Am)

说明n=1和n=2时分别构造[A1;

A2]和[A1,A2],都是二维数组,而n=3时可以构造出三维数组。

例1-7

A1=[1,2,3;

4,5,6;

7,8,9];

A2=A1'

;

A3=A1-A2;

A4=cat(3,A1,A2,A3)

A4(:

:

1)=

789

2)=

147

258

369

3)=

0-2-4

20-2

420

或用另一种原始方式可以定义:

例1-8

A5(:

1)=A1,A5(:

2)=A2,A5(:

3)=A3

A5(:

1.1.5特殊矩阵的生成

命令全零阵

函数zeros

格式B=zeros(n)%生成n×

n全零阵

B=zeros(m,n)%生成m×

B=zeros([mn])%生成m×

B=zeros(d1,d2,d3…)%生成d1×

d2×

d3×

…全零阵或数组

B=zeros([d1d2d3…])%生成d1×

B=zeros(size(A))%生成与矩阵A相同大小的全零阵

命令单位阵

函数eye

格式Y=eye(n)%生成n×

n单位阵

Y=eye(m,n)%生成m×

Y=eye(size(A))%生成与矩阵A相同大小的单位阵

命令全1阵

函数ones

格式Y=ones(n)%生成n×

n全1阵

Y=ones(m,n)%生成m×

Y=ones([mn])%生成m×

Y=ones(d1,d2,d3…)%生成d1×

…全1阵或数组

Y=ones([d1d2d3…])%生成d1×

Y=ones(size(A))%生成与矩阵A相同大小的全1阵

命令均匀分布随机矩阵

函数rand

格式Y=rand(n)%生成n×

n随机矩阵,其元素在(0,1)内

Y=rand(m,n)%生成m×

n随机矩阵

Y=rand([mn])%生成m×

Y=rand(m,n,p,…)%生成m×

…随机矩阵或数组

Y=rand([mnp…])%生成m×

Y=rand(size(A))%生成与矩阵A相同大小的随机矩阵

rand%无变量输入时只产生一个随机数

s=rand('

state'

)%产生包括均匀发生器当前状态的35个元素的向量

rand('

s)%使状态重置为s

0)%重置发生器到初始状态

j)%对整数j重置发生器到第j个状态

sum(100*clock))%每次重置到不同状态

例1-9产生一个3×

4随机矩阵

R=rand(3,4)

0.95010.48600.45650.4447

0.23110.89130.01850.6154

0.60680.76210.82140.7919

例1-10产生一个在区间[10,20]内均匀分布的4阶随机矩阵

a=10;

b=20;

x=a+(b-a)*rand(4)

x=

19.218119.354710.578911.3889

17.382119.169013.528712.0277

11.762714.102718.131711.9872

14.057118.936510.098616.0379

命令正态分布随机矩阵

函数randn

格式Y=randn(n)%生成n×

n正态分布随机矩阵

Y=randn(m,n)%生成m×

Y=randn([mn])%生成m×

Y=randn(m,n,p,…)%生成m×

…正态分布随机矩阵或数组

Y=randn([mnp…])%生成m×

Y=randn(size(A))%生成与矩阵A相同大小的正态分布随机矩阵

randn%无变量输入时只产生一个正态分布随机数

s=randn('

)%产生包括正态发生器当前状态的2个元素的向量

s)%重置状态为s

0)%重置发生器为初始状态

j)%对于整数j重置状态到第j状态

sum(100*clock))%每次重置到不同状态

例1-11产生均值为0.6,方差为0.1的4阶矩阵

mu=0.6;

sigma=0.1;

x=mu+sqrt(sigma)*randn(4)

0.83110.77990.13351.0565

0.78270.51920.52600.4890

0.61270.48060.63750.7971

0.81410.50640.69960.8527

命令产生随机排列

函数randperm

格式p=randperm(n)%产生1~n之间整数的随机排列

例1-12

randperm(6)

ans=

321546

命令产生线性等分向量

函数linspace

格式y=linspace(a,b)%在(a,b)上产生100个线性等分点

y=linspace(a,b,n)%在(a,b)上产生n个线性等分点

命令产生对数等分向量

函数logspace

格式y=logspace(a,b)%在(

)之间产生50个对数等分向量

y=logspace(a,b,n)

y=logspace(a,pi)

命令计算矩阵中元素个数

n=numel(a)%返回矩阵A的元素的个数

命令产生以输入元素为对角线元素的矩阵

函数blkdiag

格式out=blkdiag(a,b,c,d,…)%产生以a,b,c,d,…为对角线元素的矩阵

例1-13

out=blkdiag(1,2,3,4)

out=

1000

0200

0030

0004

命令友矩阵

函数compan

格式A=compan(u)%u为多项式系统向量,A为友矩阵,A的第1行元素为-u(2:

n)/u

(1),其中u(2:

n)为u的第2到第n个元素,A为特征值就是多项式的特征根。

例1-14求多项式的友矩阵和根

u=[10-76];

A=compan(u)%求多项式的友矩阵

A=

07-6

100

010

eig(A)%A的特征值就是多项式的根

-3.0000

2.0000

1.0000

命令hadamard矩阵

函数hadamard

格式H=hadamard(n)%返回n阶hadamard矩阵

例1-15

h=hadamard(4)

h=

1111

1-11-1

11-1-1

1-1-11

命令Hankel方阵

函数hankel

格式H=hankel(c)%第1列元素为c,反三角以下元素为0。

H=hankel(c,r)%第1列元素为c,最后一行元素为r,如果c的最后一个元素与r的第一个元素不同,交叉位置元素取为c的最后一个元素。

例1-16

c=1:

3,r=7:

10

c=

r=

78910

h=hankel(c,r)

1238

2389

38910

命令Hilbert矩阵

函数hilb

格式H=hilb(n)%返回n阶Hilbert矩阵,其元素为H(i,j)=1/(i+j-1)。

例1-17产生一个3阶Hilbert矩阵

formatrat%以有理形式输出

H=hilb(3)

H=

11/21/3

1/21/31/4

1/31/41/5

命令逆Hilbert矩阵

函数invhilb

格式H=invhilb(n)%产生n阶逆Hilbert矩阵

命令Magic(魔方)矩阵

函数magic

格式M=magic(n)%产生n阶魔方矩阵

例1-18

M=magic(3)

816

357

492

命令Pascal矩阵

函数pascal

格式A=pascal(n)%产生n阶Pascal矩阵,它是对称、正定矩阵,它的元素由Pascal三角组成,它的逆矩阵的所有元素都是整数。

A=pascal(n,1)%返回由下三角的Cholesky系数组成的Pascal矩阵

A=pascal(n,2)%返回Pascal(n,1)的转置和交换的形式

例1-19

A=pascal(4)

1111

1234

13610

141020

A=pascal(3,1)

100

1-10

1-21

A=pascal(3,2)

111

-2-10

命令托普利兹矩阵

函数toeplitz

格式T=toeplitz(c,r)%生成一个非对称的托普利兹矩阵,将c作为第1列,将r作为第1行,其余元素与左上角相邻元素相等。

T=toeplitz(r)%用向量r生成一个对称的托普利兹矩阵

例1-20

c=[12345];

r=[1.52.53.54.55.5];

T=toeplitz(c,r)

T=

15/27/29/211/2

215/27/29/2

3215/27/2

43215/2

54321

命令Wilkinson特征值测试阵

函数wilkinson

格式W=wilkinson(n)%返回n阶Wilkinson特征值测试阵

例1-21

W=wilkinson(4)

W=

3/2100

11/210

011/21

0013/2

W=wilkinson(7)

3100000

1210000

0111000

0010100

0001110

0000121

0000013

1.2矩阵运算

1.2.1加、减运算

运算符:

“+”和“-”分别为加、减运算符。

运算规则:

对应元素相加、减,即按线性代数中矩阵的“十”,“一”运算进行。

例1-22

A=[1,1,1;

1,2,3;

1,3,6]

B=[8,1,6;

3,5,7;

4,9,2]

A+B=A+B

A-B=A-B

结果显示:

A+B=

927

4710

5128

A-B=

-70-5

-2-3-4

-3-64

1.2.2乘法

*

按线性代数中矩阵乘法运算进行,即放在前面的矩阵的各行元素,分别与放在后面的矩阵的各列元素对应相乘并相加。

1.两个矩阵相乘

例1-23

X=[2345;

1221];

Y=[011;

110;

001;

100];

Z=X*Y

结果显示为:

Z=

856

333

2.矩阵的数乘:

数乘矩阵

上例中:

a=2*X

则显示:

a=

46810

2442

向量的点乘(内积):

维数相同的两个向量的点乘。

数组乘法:

A.*B表示A与B对应元素相乘。

3.向量点积

函数dot

格式C=dot(A,B)%若A、B为向量,则返回向量A与B的点积,A与B长度相同;

若为矩阵,则A与B有相同的维数。

C=dot(A,B,dim)%在dim维数中给出A与B的点积

例>

X=[-102];

Y=[-2-11];

Z=dot(X,Y)

Z=

4

还可用另一种算法:

sum(X.*Y)

4

4.向量叉乘

在数学上,两向量的叉乘是一个过两相交向量的交点且垂直于两向量所在平面的向量。

在Matlab中,用函数cross实现。

函数cross

格式C=cross(A,B)%若A、B为向量,则返回A与B的叉乘,即C=A×

B,A、B必须是3个元素的向量;

若A、B为矩阵,则返回一个3×

n矩阵,其中的列是A与B对应列的叉积,A、B都是3×

n矩阵。

C=cross(A,B,dim)%在dim维数中给出向量A与B的叉积。

A和B必须具有相同的维数,size(A,dim)和size(B,dim)必须是3。

例1-24计算垂直于向量(1,2,3)和(4,5,6)的向量。

>

a=[123];

b=[456];

c=cross(a,b)

c=

-36-3

可得垂直于向量(1,2,3)和(4,5,6)的向量为±

(-3,6,-3)

5.混合积

混合积由以上两函数实现:

例1-25计算向量a=(1,2,3)、b=(4,5,6)和c=(-3,6,-3)的混合积

解:

b=[456];

c=[-36-3];

x=dot(a,cross(b,c))

54

先叉乘后点乘,顺序不可颠倒。

6.矩阵的卷积和多项式乘法

函数conv

格式w=conv(u,v)%u、v为向量,其长度可不相同。

说明长度为m的向量序列u和长度为n的向量序列v的卷积(Convolution)定义为:

式中:

w向量序列的长度为(m+n-1),当m=n时,

w

(1)=u

(1)*v

(1)

w

(2)=u

(1)*v

(2)+u

(2)*v

(1)

w(3)=u

(1)*v(3)+u

(2)*v

(2)+u(3)*v

(1)

w(n)=u

(1)*v(n)+u

(2)*v(n-1)+…+u(n)*v

(1)

w(2*n-1)=u(n)*v(n)

例1-26展开多项式

w=conv([1,2,2],conv([1,4],[1,1]))

w=

1716188

P=poly2str(w,'

s'

)%将w表示成多项式

P=

s^4+7s^3+16s^2+18s+8

7.反褶积(解卷)和多项式除法运算

函数deconv

格式[q,r]=deconv(v,u)%多项式v除以多项式u,返回商多项式q和余多项式r。

v、u、q、r都是按降幂排列的多项式系数向量。

例1-27,则其卷积为

u=[1234]

v=[102030]

c=conv(u,v)

1040100160170120

则反褶积为

[q,r]=deconv(c,u)

q=

102030

000000

8.张量积

函数kron

格式C=kron(A,B)%A为m×

n矩阵,B为p×

q矩阵,则C为mp×

nq矩阵。

说明A与B的张量积定义为:

A

B与B

A均为mp×

nq矩阵,但一般地A

B

A。

例1-28

求A

B。

A=[12;

34];

B=[123;

456;

789];

C=kron(A,B)

C=

123246

45681012

789141618

3694812

121518162024

212427283236

1.2.3集合运算

1.两个集合的交集

函数intersect

格式c=intersect(a,b)%返回向量a、b的公共部分,即c=a∩b。

c=intersect(A,B,'

rows'

)%A、B为相同列数的矩阵,返回元素相同的行。

[c,ia,ib]=intersect(a,b)%c为a、b的公共元素,ia表示公共元素在a中的位置,ib表示公共元素在b中位置。

例1-29

A=[1234;

1246;

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2