常用数学软件教程 032 第3章 MATLAB使用基础 第2节 数值矩阵Word文档下载推荐.docx

上传人:b****6 文档编号:17899184 上传时间:2022-12-12 格式:DOCX 页数:33 大小:183.33KB
下载 相关 举报
常用数学软件教程 032 第3章 MATLAB使用基础 第2节 数值矩阵Word文档下载推荐.docx_第1页
第1页 / 共33页
常用数学软件教程 032 第3章 MATLAB使用基础 第2节 数值矩阵Word文档下载推荐.docx_第2页
第2页 / 共33页
常用数学软件教程 032 第3章 MATLAB使用基础 第2节 数值矩阵Word文档下载推荐.docx_第3页
第3页 / 共33页
常用数学软件教程 032 第3章 MATLAB使用基础 第2节 数值矩阵Word文档下载推荐.docx_第4页
第4页 / 共33页
常用数学软件教程 032 第3章 MATLAB使用基础 第2节 数值矩阵Word文档下载推荐.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

常用数学软件教程 032 第3章 MATLAB使用基础 第2节 数值矩阵Word文档下载推荐.docx

《常用数学软件教程 032 第3章 MATLAB使用基础 第2节 数值矩阵Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《常用数学软件教程 032 第3章 MATLAB使用基础 第2节 数值矩阵Word文档下载推荐.docx(33页珍藏版)》请在冰豆网上搜索。

常用数学软件教程 032 第3章 MATLAB使用基础 第2节 数值矩阵Word文档下载推荐.docx

>

A=[-100;

010];

%逗号和空格等价

A

A=

-100

010

键入命令后,按回车键,不输出结果,“%…”为注释语句,不参与运算。

键入命令后,按回车键。

输出结果。

例3.2.2利用例3.2.1中的矩阵

创建一个矩阵

解新

中的前两行与例3.2.1中的

相同,故键入:

clear%清除内存变量

A=[A;

00i]

-1.000000

01.00000

000+1.0000i

创建复数矩阵时,除了上述方法外也可以用实数矩阵和复数矩阵相加的方法,如对于本例的矩阵,也可键入:

clear

A=[A;

000]+[000;

000;

2.创建特殊数值矩阵的指令输入法

对于某些特殊矩阵,MATLAB中设有直接的专用指令,这给它们的创建、运算,特别是给编程带来很多方便。

表3-2列出了一些创建特殊矩阵的专用指令:

表3-2

指令格式

功能

zeros(n)

zeros(m,n)

ones(n)

ones(m,n)

eye(n)

diag(a,k)

rand(n)

rand(m,n)

randn(n)

rsndn(m,n)

magic(n)

tril(a)(或triu(a))

输出n阶全零方阵

输出m×

n全零方阵

输出n阶全1方阵

n全1方阵

输出n阶单位方阵,n=1时可以省略

输出矩阵a主对角线右移k列时其元素构成的列向量,k=0时可省略

输出n阶均匀分布的随机方阵

n阶均匀分布的随机方阵

输出n阶正态分布的随机方阵

n阶正态分布的随机方阵

输出n阶魔方阵(各行、列元素及两主对角线元素的和均为(n3+n)/2)

输出矩阵a主对角线下(上)方元素构成的下(上)三角矩阵

例3.2.3创建一个3×

5阶的全零矩阵。

解键入:

zeros(3,5)

ans=

00000

例3.2.4创建一个3×

5阶的随机矩阵(元素取值在[0,1]但却无法事先确定的矩阵)。

rm=rand(3,5)

rm=

0.95010.48600.45650.44470.9218

0.23110.89130.01850.61540.7382

0.60680.76210.82140.79190.1763

矩阵赋值,变量名为rm,键入命令后,按回车键。

如果紧接着再一次键入rm=rand(3,5),得出的矩阵未必和它相同。

例3.2.5创建一个5阶魔方矩阵。

magic(5)

17241815

23571416

46132022

101219213

11182529

该方阵的各行、列元素及两主对角线元素的和都等于(n3+n)/2=(53+5)/2=65

3.变换矩阵结构的指令输入法

在编写程序和一些特殊的计算中,经常需要对已输入的矩阵结构作某种变换,即不改变矩阵中元素的总数和各元素的取值,仅使其位置发生变化,如使矩阵整体发生旋转、翻转等变换,则称为变换矩阵结构。

现将常用的几个变换矩阵结构指令列在表3-3中:

表3-3

flipud(A)

fliplr(A)

rot90(A)

rot90(A,k)

reshape(A,m,n)

输出矩阵A上下翻转后的矩阵

输出矩阵A左右翻转后的矩阵

输出矩阵A逆时针旋转

后的矩阵

输出矩阵A沿逆时针旋转k个

后的矩阵,k为正负整数

输出一个m×

n阶矩阵,它是由矩阵A的m×

n个元素重新排列构成的矩阵,重排后各元素在矩阵中的序号不变

例3.2.6使5阶魔方矩阵左右翻转。

a=fliplr(magic(5))

a=

15812417

16147523

22201364

321191210

92251811

例3.2.7将例3.2.4中的3×

5阶矩阵rm变成5×

3矩阵。

0.40570.41030.35290.13890.6038

0.93550.89360.81320.20280.2722

0.91690.05790.00990.19870.1988

reshape(rm,5,3)

0.40570.05790.2028

0.93550.35290.1987

0.91690.81320.6038

0.41030.00990.2722

0.89360.13890.1988

元素总数和各元素在矩阵中的序号(按先列后行排列的顺序号),变换前后不变。

b=[1112131415;

2122232425;

3132333435]

b=

1112131415

2122232425

3132333435

reshape(b,5,3)

113224

211334

312315

123325

221435

4.一些特殊向量(行矩阵)的创建

行(列)矩阵即向量,是矩阵的一个特例,它的创建方法和矩阵完全一样。

但是,如果它的各元素取值有一定的规律可循,这时可用下述的简便方法创建。

(1)等差数列型向量的创建。

若向量各元素的取值构成一个等差数列,有下述两种简便的创建方法。

a)增量输入法。

输入格式为:

●t=a:

h:

b或t=[a:

b],t=(a:

b)

①输入参数a为初值,b为终值,h为公差(步长,增量),中间用冒号间隔。

②公差h可正可负,省略时,默认h=1。

③输出量t为一个等差数列:

a,a+h,a+2h,…,b*-h,b*(b*≤b且b-b*≤h)。

如键入:

t1=0:

0.2:

2.1

t1=

Columns1through7

00.20000.40000.60000.80001.00001.2000

Columns8through11

1.40001.60001.80002.0000

键入命令后,按回车键

又如键入:

t2=1:

8

t2=

12345678

输出结果

b)指令输入法。

调用格式为:

●t=linspace(a,b,n)

①输入参数a,b分别为初值和终值,即向量的第一分量和最末分量。

②输入参数n是等分(b-a)的节点数(含两端点),省略n时默认n=100。

③输入参数间的逗号不能省略。

④输出参数t为一个等差数列:

t3=linspace(1,8.5,8)

t3=

1.00002.07143.14294.21435.28576.35717.4286

Column8

8.5000

(2)等比数列型向量的创建。

下拉的各分量的取值构成等比数列时,可用对数等分指令logspace创建,调用格式为:

●q=logspace(log10(a),log10(b),n)或q=logspace(as,bf,n)

①输入参数a为等比数列的初值,b为终值,n为等按等比数列划分时的节点数。

②输出参数q是一个初值为a,终值为b的等比数列(注意,初终值不是as和bf),共有n项,公比为

③省略n时默认n=100。

④as=log10(a),bf=log10(b),log10(a)是以10为底、a的对数lga在MATLAB中的表达式。

logspace(0,1,5)

1.00001.77833.16235.623410.0000

或键入;

logspace(log10

(1),log10(10),5)

后项与前项的比值均等:

当矩阵各元素取值之间构成等差或等比数列时,可以把上述特殊向量的创建方法与变换矩阵结构指令结合起来使用,这给某些特殊元素较多的矩阵的输入带来很大方便。

下面的例题就用了这种方法,它的元素并不多,只是为了说明运用这种方法的原理。

例3.2.8创建矩阵

解变换矩阵d中各元素的位置可以构成一个等差数列,反过来可以先输入一个等差数列向量,通过改变结构达到要求。

据此原理键入:

rot90(reshape(1:

8,4,2),-1)

4321

8765

8,4,2),3)

5.创建n个分量都等于1的向量

键入g1=linspace(1,1,n),logspace(0,0,n)或ones(1,n),均可创建一个各项数值都是1的n维向量,这在绘图、编程和某些特殊计算中经常用到。

linspace(1,1,6)

111111

logspace(0,0,6)

ones(1,6)

111111

6.常数变量的赋值

常数可以看作一行一列的矩阵,也可以看作是点向量,它的赋值可以选用下述任何一种方法。

假设给变量a2,b2,c2分别赋值4,3,6,则可键入:

a2=4,b2=(3),c2=[6]

a2=

4

b2=

3

c2=

6

3.2.3 数值矩阵元素的编辑 

用一个符号代表已输入数值的矩阵的单个元素或部分元素,称为矩阵元素的标识,元素的基本标识方法如下所述。

1.矩阵元素的标识方法

(1)用符号a(p)标识已输入矩阵a中序号为p(正整数)的元素,矩阵中元素的序号是把所有元素按“先列后行”排列是的顺序号。

如3×

3矩阵元素的序号排列方法为:

147

258

369

用冒号代替p时,即a(:

)表示矩阵a中所有元素按上述规定顺序排列成的列阵。

(2)a(m,n)表示矩阵a中第m行、第n列的一个元素(m和n均为正整数),则:

a)若用冒号“:

”代替a(m,n)中的行号m(或列号n)时表示a的第n列(或第m行)所有元素构成的列阵(或行阵)。

b)若把a(m,n)中的m换成一个行阵,如m=[p,q,r](p,q,r均为正整数),则a(m,n)=a([p,q,r],n)表示矩阵a中第p,q,r行、第n列元素构成的列阵。

c)若把a(m,n)中的n换成一个行阵,如n=[p,q,r](p,q,r均为正整数),则a(m,n)=a(m,[p,q,r])表示矩阵a中第m行、第p,q,r列元素构成的行阵。

d)若把a(m,n)中的m(或n)换成“p:

q”(p≤q),则a(p:

q,n)(或a(m,p:

q))表示矩阵a中第p到q行(或列)、第n列(或第m行)的所有元素构成的列阵(或行阵)。

e)若把a(m,n)中的m和n都换成行阵,则a(m,n)=a([p,q,r],[w,s])(w,s为正整数)表示由矩阵a中第p,q,r行、第w,s列交点上元素构成的矩阵。

(3)对于三维矩阵A(相当于若干个平面矩阵一页一页的叠合,每一页表示一个平面矩阵),用A(:

,:

,n)表示第n页的平面矩阵。

例3.2.9已知

,那么变量d1=A(:

,1),d2=A(2:

3,:

),d3=A([2,3],[1,3])各表示什么样的矩阵。

010;

00i];

d1=A(:

1),d2=A(2:

3,:

),d3=A([2,3],[1,3])

d1=

-1

0

d2=

d3=

00

00+1.0000i

例3.2.10已知A=reshape(1:

8.5,2,4),

,如何用A组合成B。

A=reshape(1:

8.5,2,4)

1357

2468

比较A和B可知,B的第1~4列前两行正好等于A,而后两行是把A左右翻转得到的。

B的最后一列取自A的不同元素。

据此分析可知,键入:

B=[A,[A(3);

A

(2)];

fliplr(A),[A

(1);

A(4)]]

B=

13573

24682

75311

86424

2.数值矩阵的增删修改

要想对已输入矩阵的某个元素或部分元素进行修改,首先将欲修改部分加以标识,然后再对被标识部分重新赋值。

因此矩阵的增删修改,实际上就是对被修改部分元素的标识和重新赋值。

例3.2.11把例3.2.9中矩阵A增加一个第4行,其数值为1,-1,-1。

clear

A(4,:

)=[1-1-1]

1.0000-1.0000-1.0000

例3.2.12使例3.2.11中矩阵A的第2行元素全部消失。

)=[1-1-1];

A(2,:

)=[]

注意空矩阵不是零矩阵

例3.2.13使例3.2.12中矩阵A的第2列改为246,并增加一个第4列:

其数值是3,5,7。

A(4,:

)=[];

A(:

2)=[2;

4;

6];

A(:

4)=[3;

5;

7]

-1.00002.000003.0000

04.00000+1.0000i5.0000

1.00006.0000-1.00007.0000

3.2.4 数值矩阵的运算法则

(1) 

MATLB对数值矩阵提供了两种不同的运算方法:

矩阵算法和数组算法。

所谓“矩阵算法”就是把每一个矩阵都看作一个整体,各种运算完全按照线性代数中的矩阵运算法则进行,运算的书写形式和元素符号都与矩阵理论中几乎完全一样。

所谓“数组算法”就是把每一个矩阵看作由其元素构成的一组数据(数组),运算是在参与运算矩阵的对应元素之间进行的数与数的运算。

这种算法方便于对大批数据的处理和一次求出多个函数值。

这里只介绍数值矩阵的“矩阵算法”,3.2.5节将介绍数值矩阵的“数组算法”。

1.数值矩阵维数的查验和矩阵的转置

(1)查验矩阵维数指令。

进行矩阵运算之前,经常要考虑矩阵的维数,所以应知道如何用指令查验矩阵的维数。

查验矩阵维数指令size的使用格式为:

size(a)或size(a,r)

a)输入参数为待查的已输入矩阵或向量。

b)输入参数r可取1或2。

当r=1时输出a的行数;

当r=2时输出a的列数。

c)省略输入参数r、仅有参数a时,输出二维向量(m,n),表示矩阵a是m×

n维。

例如,欲查验例3.2.10中矩阵B的维数,可以在指令窗中键入:

8.5,2,4);

B=[A,[A(3);

A(4)]];

size(B)

45

结果表明B是一个4行5列的矩阵。

若键入:

size(B(3,3))

11

这表明B(3,3)是一个一行一列的矩阵,即一个数。

(2)求矩阵共轭转置的指令。

a)使矩阵转置的指令是“’”,使用格式为A’,输出矩阵A的转置矩阵AT。

b)使矩阵变成其共轭的指令是conj,使用格式为conj(A),输出矩阵A的共轭矩阵

c)利用上述两个指令使矩阵仅发生转置的方法有以下两种:

●如果为实数矩阵,用“’”就可得到它的转置矩阵,即用A’就得出AT。

●如果为复数矩阵,用conj(A’)或conj(A)’可得出AT。

例3.2.14已知

,求

的共轭矩阵和共轭转置矩阵。

解令

,则在指令窗中键入:

a=[1i3;

9i2-i8;

748+i];

a1=conj(a),a2=a'

a1=

1.00000-1.0000i3.0000

0-9.0000i2.0000+1.0000i8.0000

7.00004.00008.0000-1.0000i

1.00000-9.0000i7.0000

0-1.0000i2.0000+1.0000i4.0000

3.00008.00008.0000-1.0000i

※注;

在标准键盘(大键盘)中,英文格式下,按分号键“;

”右边的“‘”即可输出符号“’”

2.矩阵的加法、减法和乘法运算指令

矩阵进行加减法、乘法运算时,其运算符号分别为“+”、“-”和“*”,用这些符号把参与运算的矩阵连接起来,回车便可得出计算结果。

(1)矩阵进行加减法运算时,它们的维数必须相同,即行数、列数分别相等。

(2)两个矩阵相乘时它们的内维数必须相等,即左矩阵的列数必须等于右矩阵的行数,用a*b或指令mtimes(a,b)。

(3)进行方阵a的n次幂an运算时,输入a^n或mpower(a,n)。

这时,若整数n>

0,则输出方阵等于n个a相乘的结果;

若整数n<

0,则输出的方阵等于n个a连乘后的逆阵;

若n非整数,其数学意义属“矩阵分析”的范畴。

(4)矩阵与一个常数进行加减法运算在线性代数中是没有意义的,但在MATLAB中有如下规定:

若a为矩阵,d为常数,作a±

b的运算意义为:

b*ones(size(a))

即相当于矩阵a的每一个元素都与数d进行一次加减法运算。

例3.2.15已知矩阵

,求:

a=[123;

541;

259];

b=[35;

61;

29];

c=[612;

528;

471];

...

a1=a+c,a2=a*b,a3=a*c,a4=c*a%"

..."

为续行号,表示换行

735

1069

61210

2134

4138

5496

a3=

282621

542043

737553

a4=

152637

315889

414128

例3.2.16已知

,计算方阵

的幂乘:

a=[1

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

当前位置:首页 > 经管营销 > 财务管理

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

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