第1章 矩阵及其基本运算
更新时间:2023-12-06 08:25:01 阅读量: 教育文库 文档下载
- 第1ppt推荐度:
- 相关推荐
第1章 矩阵及其基本运算
第1章 矩阵及其基本运算
MATLAB,即“矩阵实验室”,它是以矩阵为基本运算单元。因此,本书从最基本的运算单元出发,介绍MATLAB的命令及其用法。
1.1 矩阵的表示
1.1.1 数值矩阵的生成
1.实数值矩阵输入
MATLAB的强大功能之一体现在能直接处理向量或矩阵。当然首要任务是输入待处理的向量或矩阵。
不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([ ])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号。如:
>> Time = [11 12 1 2 3 4 5 6 7 8 9 10]
Time =
11 12 1 2 3 4 5 6 7 8 9 10
>> X_Data = [2.32 3.43;4.37 5.98]
X_Data =
2.43 3.43 4.37 5.98
>> vect_a = [1 2 3 4 5]
vect_a =
1 2 3 4 5
>> Matrix_B = [1 2 3;
>> 2 3 4;3 4 5]
Matrix_B = 1 2 3
2 3 4 3 4 5
>> Null_M = [ ] %生成一个空矩阵
2.复数矩阵输入
复数矩阵有两种生成方式: 第一种方式 例1-1
>> a=2.7;b=13/25;
>> C=[1,2*a+i*b,b*sqrt(a); sin(pi/4),a+5*b,3.5+1]
C=
1.0000 5.4000 + 0.5200i 0.8544 0.7071 5.3000 4.5000
I
MATLAB6.0数学手册 第2种方式 例1-2
>> R=[1 2 3;4 5 6], M=[11 12 13;14 15 16]
R =
1 2 3 4 5 6 M =
11 12 13 14 15 16 >> CN=R+i*M
CN =
1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i 4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i
1.1.2 符号矩阵的生成
在MATLAB中输入符号向量或者矩阵的方法和输入数值类型的向量或者矩阵在形式上很相像,只不过要用到符号矩阵定义函数sym,或者是用到符号定义函数syms,先定义一些必要的符号变量,再像定义普通矩阵一样输入符号矩阵。
1.用命令sym定义矩阵:
这时的函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制,只是将方括号置于用于创建符号表达式的单引号中。如下例:
例1-3
>> sym_matrix = sym('[a b c;Jack,Help Me!,NO WAY!],')
sym_matrix =
[a b c] [Jack Help Me! NO WAY!]
>> sym_digits = sym('[1 2 3;a b c;sin(x)cos(y)tan(z)]')
sym_digits =
[1 2 3] [a b c] [sin(x)cos(y)tan(z)]
2.用命令syms定义矩阵
先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入符号矩阵。 例1-4
>> syms a b c ; >> M1 = sym('Classical'); >> M2 = sym(' Jazz'); >> M3 = sym('Blues')
>> syms_matrix = [a b c; M1, M2, M3;int2str([2 3 5])]
syms_matrix =
[ a b c] [Classical Jazz Blues] [ 2 3 5]
把数值矩阵转化成相应的符号矩阵。
数值型和符号型在MATLAB中是不相同的,它们之间不能直接进行转化。MATLAB提供了一个将数值型转化成符号型的命令,即sym。
II
第1章 矩阵及其基本运算
例1-5
>> Digit_Matrix = [1/3 sqrt(2) 3.4234;exp(0.23) log(29) 23^(-11.23)] >> Syms_Matrix = sym(Digit_Matrix)
结果是:
Digit_Matrix =
0.3333 1.4142 3.4234 1.2586 3.3673 0.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=[ 456 468 873 2 579 55
21 687 54 488 8 13 65 4567 88 98 21 5 456 68 4589 654 5 987 5488 10 9 6 33 77]
在MATLAB窗口输入:
>>example;
>>size(exm) %显示exm的大小 ans=
5 6 %表示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) =
1 2 3 4 5 6 7 8 9 A4(:,:,2) =
1 4 7 2 5 8 3 6 9 A4(:,:,3) =
0 -2 -4 2 0 -2 4 2 0
III
MATLAB6.0数学手册 或用另一种原始方式可以定义: 例1-8
>> A1=[1,2,3;4,5,6;7,8,9];A2=A1';A3=A1-A2; >> A5(:,:,1)=A1, A5(:,:,2)=A2, A5(:,:,3)=A3 A5(:,:,1) =
1 2 3 4 5 6 7 8 9 A5(:,:,2) =
1 4 7 2 5 8 3 6 9 A5(:,:,3) =
0 -2 -4 2 0 -2 4 2 0
1.1.5 特殊矩阵的生成
命令 全零阵 函数 zeros
格式 B = zeros(n) %生成n×n全零阵
B = zeros(m,n) %生成m×n全零阵 B = zeros([m n]) %生成m×n全零阵 B = zeros(d1,d2,d3?) %生成d1×d2×d3×?全零阵或数组 B = zeros([d1 d2 d3?]) %生成d1×d2×d3×?全零阵或数组 B = zeros(size(A)) %生成与矩阵A相同大小的全零阵 命令 单位阵 函数 eye
格式 Y = eye(n) %生成n×n单位阵
Y = eye(m,n) %生成m×n单位阵
Y = eye(size(A)) %生成与矩阵A相同大小的单位阵 命令 全1阵 函数 ones
格式 Y = ones(n) %生成n×n全1阵
Y = ones(m,n) %生成m×n全1阵 Y = ones([m n]) %生成m×n全1阵 Y = ones(d1,d2,d3?) %生成d1×d2×d3×?全1阵或数组 Y = ones([d1 d2 d3?]) %生成d1×d2×d3×?全1阵或数组 Y = ones(size(A)) %生成与矩阵A相同大小的全1阵 命令 均匀分布随机矩阵 函数 rand
格式 Y = rand(n) %生成n×n随机矩阵,其元素在(0,1)内
Y = rand(m,n) %生成m×n随机矩阵
IV
第1章 矩阵及其基本运算
Y = rand([m n]) %生成m×n随机矩阵 Y = rand(m,n,p,?) %生成m×n×p×?随机矩阵或数组 Y = rand([m n p?]) %生成m×n×p×?随机矩阵或数组 Y = rand(size(A)) %生成与矩阵A相同大小的随机矩阵 rand %无变量输入时只产生一个随机数
s = rand('state') %产生包括均匀发生器当前状态的35个元素的向量 rand('state', s) %使状态重置为s
rand('state', 0) %重置发生器到初始状态
rand('state', j) %对整数j重置发生器到第j个状态 rand('state', sum (100*clock)) %每次重置到不同状态 例1-9 产生一个334随机矩阵
>> R=rand(3,4) R =
0.9501 0.4860 0.4565 0.4447 0.2311 0.8913 0.0185 0.6154 0.6068 0.7621 0.8214 0.7919
例1-10 产生一个在区间[10, 20]内均匀分布的4阶随机矩阵
>> a=10;b=20;
>> x=a+(b-a)*rand(4) x =
19.2181 19.3547 10.5789 11.3889 17.3821 19.1690 13.5287 12.0277 11.7627 14.1027 18.1317 11.9872 14.0571 18.9365 10.0986 16.0379
命令 正态分布随机矩阵 函数 randn
格式 Y = randn(n) %生成n×n正态分布随机矩阵
Y = randn(m,n) %生成m×n正态分布随机矩阵 Y = randn([m n]) %生成m×n正态分布随机矩阵 Y = randn(m,n,p,?) %生成m×n×p×?正态分布随机矩阵或数组 Y = randn([m n p?]) %生成m×n×p×?正态分布随机矩阵或数组 Y = randn(size(A)) %生成与矩阵A相同大小的正态分布随机矩阵 randn %无变量输入时只产生一个正态分布随机数
s = randn('state') %产生包括正态发生器当前状态的2个元素的向量 s = randn('state', s) %重置状态为s
s = randn('state', 0) %重置发生器为初始状态
s = randn('state', j) %对于整数j重置状态到第j状态 s = randn('state', sum(100*clock)) %每次重置到不同状态 例1-11 产生均值为0.6,方差为0.1的4阶矩阵
>> mu=0.6; sigma=0.1;
>> x=mu+sqrt(sigma)*randn(4) x =
0.8311 0.7799 0.1335 1.0565 0.7827 0.5192 0.5260 0.4890
V
MATLAB6.0数学手册 0.6127 0.4806 0.6375 0.7971 0.8141 0.5064 0.6996 0.8527
命令 产生随机排列 函数 randperm
格式 p = randperm(n) %产生1~n之间整数的随机排列 例1-12
>> randperm(6) ans =
3 2 1 5 4 6
命令 产生线性等分向量 函数 linspace
格式 y = linspace(a,b) %在(a, b)上产生100个线性等分点
y = linspace(a,b,n) %在(a, b)上产生n个线性等分点 命令 产生对数等分向量 函数 logspace
格式 y = logspace(a,b) %在( 10 a , 10 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 =
1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4
命令 友矩阵 函数 compan
格式 A = compan(u) %u为多项式系统向量,A为友矩阵,A的第1行元素为
-u (2:n)/u(1),其中u (2:n)为u的第2到第n个元素,A为特征值就是多项式的特征根。
? x 3 ?例1-14 求多项式 ( x ? 1 )( x ? 2 )( x ? 3 ) 7 x ? 6 的友矩阵和根
>> u=[1 0 -7 6];
>> A=compan(u) %求多项式的友矩阵
A =
0 7 -6 1 0 0 0 1 0
>> eig(A) %A的特征值就是多项式的根
ans =
VI
第1章 矩阵及其基本运算
-3.0000 2.0000 1.0000
命令 hadamard矩阵 函数 hadamard
格式 H = hadamard(n) %返回n阶hadamard矩阵 例1-15
>> h=hadamard(4)
h =
1 1 1 1 1 -1 1 -1 1 1 -1 -1 1 -1 -1 1
命令 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 =
1 2 3 r =
7 8 9 10 >> h=hankel(c,r)
h =
1 2 3 8 2 3 8 9 3 8 9 10
命令 Hilbert矩阵 函数 hilb
格式 H = hilb(n) %返回n阶Hilbert矩阵,其元素为H(i,j)=1/(i+j-1)。 例1-17 产生一个3阶Hilbert矩阵
>> format rat %以有理形式输出 >> H=hilb(3)
H =
1 1/2 1/3 1/2 1/3 1/4 1/3 1/4 1/5
命令 逆Hilbert矩阵 函数 invhilb
格式 H = invhilb(n) %产生n阶逆Hilbert矩阵 命令 Magic(魔方)矩阵 函数 magic
格式 M = magic(n) %产生n 阶魔方矩阵 例1-18
VII
MATLAB6.0数学手册 >> M=magic(3)
M =
8 1 6 3 5 7 4 9 2
命令 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)
A =
1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 >> A=pascal(3,1)
A =
1 0 0 1 -1 0 1 -2 1 >> A=pascal(3,2)
A =
1 1 1 -2 -1 0 1 0 0
命令 托普利兹矩阵 函数 toeplitz
格式 T = toeplitz(c,r) %生成一个非对称的托普利兹矩阵,将c作为第1列,将r作
为第1 行,其余元素与左上角相邻元素相等。
T = toeplitz(r) %用向量r生成一个对称的托普利兹矩阵 例1-20
>> c=[1 2 3 4 5];
>> r=[1.5 2.5 3.5 4.5 5.5]; >> T=toeplitz(c,r)
T =
1 5/2 7/2 9/2 11/2 2 1 5/2 7/2 9/2 3 2 1 5/2 7/2 4 3 2 1 5/2 5 4 3 2 1
命令 Wilkinson特征值测试阵 函数 wilkinson
格式 W = wilkinson(n) %返回n阶Wilkinson特征值测试阵 例1-21
>> W=wilkinson(4) VIII
第1章 矩阵及其基本运算
W =
3/2 1 0 0 1 1/2 1 0 0 1 1/2 1 0 0 1 3/2 >> W=wilkinson(7)
W =
3 1 0 0 0 0 0 1 2 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 2 1 0 0 0 0 0 1 3
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=
9 2 7 4 7 10 5 12 8
A-B=
-7 0 -5 -2 -3 -4 -3 -6 4
1.2.2 乘法
运算符:*
运算规则:按线性代数中矩阵乘法运算进行,即放在前面的矩阵的各行元素,分别与放在后面的矩阵的各列元素对应相乘并相加。
1.两个矩阵相乘 例1-23
>>X= [2 3 4 5; 1 2 2 1]; >>Y=[0 1 1; 1 1 0; 0 0 1; 1 0 0]; Z=X*Y
IX
MATLAB6.0数学手册 结果显示为: Z=
8 5 6 3 3 3
2.矩阵的数乘:数乘矩阵
上例中:a=2*X 则显示:a =
4 6 8 10 2 4 4 2
向量的点乘(内积):维数相同的两个向量的点乘。 数组乘法:
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=[-1 0 2];
>>Y=[-2 -1 1]; >>Z=dot(X, Y) 则显示:Z =
4
还可用另一种算法:
sum(X.*Y) ans= 4
4.向量叉乘
在数学上,两向量的叉乘是一个过两相交向量的交点且垂直于两向量所在平面的向量。在Matlab中,用函数cross实现。
函数 cross
格式 C = cross(A,B) %若A、B为向量,则返回A与B的叉乘,即C=A3B,A、B
必须是3个元素的向量;若A、B为矩阵,则返回一个33n矩阵,其中的列是A与B对应列的叉积,A、B都是33n矩阵。
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=[1 2 3]; >>b=[4 5 6]; >>c=cross(a,b) 结果显示: c=
-3 6 -3
可得垂直于向量(1, 2, 3)和(4, 5, 6)的向量为±(-3, 6, -3) 5.混合积
X
正在阅读:
第1章 矩阵及其基本运算12-06
电气工程师考试试题04-24
员工离职流程表格word版本04-16
蓝蓝水业11-26
以 黄青松 为代表的湘西作家 作品分析03-04
Oracle错误代码大全07-10
浅析青少年足球运动员培养和发展对策08-31
(完整版)企业发展能力分析指标04-10
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 矩阵
- 运算
- 及其
- 基本
- C语言练习题1及参考答案
- 铁建设46号文(价差调整文件)
- 中级实务第十三章 或有事项讲义
- 语文S版四年级下册第七单元测试卷(单元检测七)含答案7q
- 炼石水泥厂2×4500td熟料水泥生产线及配套2×9mw纯低温余热发电综合技改项目申请立项环境影响评估报告书 - 图文
- 寄生虫题库
- 三年级下数学一课一练面积 - 人教新课标-精选学习文档
- 高考地理知识点汇总:西亚资源、西亚
- 播音主持调值练习
- 会计辞职报告范文5篇
- 汽车运用基础综合试题一
- 仓储与配送管理综合练习
- 高考历史二轮复习:世界近代科技文化史专题训练
- VR畅维动漫科技有限公司创业计划书(新版) - 图文
- 机械原理复习资料(修订版1.1)
- Linux内核scsi子系统初始化架构
- 初四初三学生的心理特点
- 逝者如斯夫
- 《食品感官鉴评》 第一章
- 大学物理第三章 部分课后习题答案