【精选】数学实验一矩阵运算与Matlab命令24
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B1=[b11 b12 b13 b14 ;b21 b22 b23 b24; b31 b32 b33 b34]
运行
17
矩阵的运算(矩阵的加减、数乘、乘积)
C=A1+B1 D=A1-B1 syms c, cA=c*A1 A2=A1(:,1:3), B1 G=A2*B1
18
矩阵的运算(矩阵的加减、数乘、乘积)
求解方程组Ax=b x=A\b 若A为可逆方阵, 输出原方程的解x; 若A为nxm(n>m)阵, 且A’A可逆,输出
原方程的最小二乘解x.
21
矩阵的运算(求解线性方程组)
求矩阵方程:
设A、B满足关系式:AB=2B+A,求B。 其中A=[3 0 1; 1 1 0; 0 1 4]。
取出A的1、3行和1、3列的交叉处元素 构成新矩阵A1
程序
A=[1 0 1 1 2;0 1 -1 2 3;
3 0 5 1 0;2 3 1 2 1],
vr=[1, 3];vc=[1, 3];
A1=A(vr, vc)
观察结果
26
分块矩阵(矩阵的标识)
将A分为四块,并把它们赋值到矩阵B 中,观察运行后的结果。
3
2
2
35 20 60 45
, B 10
15
50
40
20 12 45 20
将 表 格 写 成 矩 阵 形 式
6
计算
输入下面Matlab指令 A=[4 2 3;1 3 2;1 3 3;3 2 2], B=[35 20 60 45;10 15 50 40;20
3 0 5 1 0;2 3 1 2 1]
A(1,:)=[0 0 0 0 0]; A
删除上面矩阵A的第1、3行。
程序:
A([1,3],:)=[ ]
结果 28
生成特殊矩阵
全1阵
ones(n), ones(m,n), ones(size(A))
全零阵:
zeros(n) ,zeros(m,n), zeros(size(A)) 常常用于对某个矩阵或向量赋0初值
2.^x=[2^x1 2^x2 2^x3] 幂)
(元素群乘
x.^y=[x1^y1 x2^y2 x3^y3] (元素群乘 幂)
14
元素群运算(函数计算)
Matlab有许多内部函数,可直接作用 于向量产生一个同维的函数向量。
x=linspace(0,4*pi,100);(产生100 维向量x)
2.向量标识方式 A(vr,vc): vr=[i1,i2,…,ik]、vc=[j1,j2,…,ju]分别是含 有矩阵A的行号和列号的单调向量。 A(vr,vc) 是 取 出 矩 阵 A 的 第 i1,i2,…,ik 行 与 j1,j2,…,ju列交叉处的元素所构成新矩阵。
25
分块矩阵(矩阵的标识)
S=sparse(i,j s m,n) 表示S是mxn稀疏矩阵, 仅在第i行, 第j列为s SS=full(S) 满矩阵(包含零元素) 例 S=sparse(2,3,6,2,4),SS=full(S) S=(2,3) 6 SS=0 0 0 0
0060
23
矩阵的运算(求解线性方程组)
5. 例子 分别用满矩阵和稀疏矩阵求解Ax=b, 其中
求矩阵方程AX=B的解;( A 、B的行要保持一致) 解为 X=A\B; 当A为方阵且可逆时有X=A\B=inv(A)*B;
右除“ / ”:
求矩阵方程XA=B的解 (A 、B的列要保持一致) 解为 X=B/A , 当A为方阵且可逆时有X=B/A=B*inv(A)
20
矩阵的运算(求解线性方程组)
结果
30
常用矩阵函数
det(A) : 方阵的行列式; rank(A): 矩阵的秩; eig(A): 方阵的特征值和特征向量; trace(A): 矩阵的迹; rref(A): 初等变换阶梯化矩阵A svd(A): 矩阵奇异值分解。 cond(A): 矩阵的条件数;
31
3
原料产品关系表
产品 防护帽 原料
硬塑料 4 泡沫塑料 1
尼龙线 1 劳动力 3
垫肩
2 3 3 2
臀垫
2 2 3 2
4
订单
订单 1 订单 2 订单 3 订单 4 防护帽 35 20 60 45
垫肩 10 15 50 40 臀垫 20 12 45 20
管理者接到四份订单如上表所示。 问应该如何计算每份订单所需的原材
实验一
矩阵运算与Matlab命令
1
日常矩阵及其运算
矩阵应用实例: 榄球防护用品的生产管理
2
应用问题
一个工厂生产三种橄榄球用品 : 防护 帽、 垫肩、臀垫。
需要不同数量的:硬塑料 、 泡沫塑料 尼龙线 、 劳动力。
为监控生产,管理者对它们之间的关系 十分关心。
为把握这些量的关系,他列出下面的表
x=linspace(0,1,5) 结果 x= 0 0.2500 0.5000 0.7500 1.0000
11
4.利用向量作图
x1=0:0.2:6; plot(x1,sin(x1),'o')
x=linspace(0,6,100); plot(x,sin(x),'*')
Asum=sum(A)
结果
33
应用、思考和练习(循环比赛的名次)
有若干支球队参加循环比赛,他们两两 交锋,每场比赛只计胜负,不允许平局, 循环赛结束后要根据他们的比赛成绩排 列名次。
一种方法是计算得分,得分是每支球队 获胜的场次,根据各队的得分排出名次, 决定冠军队。
34
应用、思考和练习(循环比赛的名次)
观察运行结果
16
创建矩阵(符号矩阵的创建)
用指令“syms”说明符号变量。
syms a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 b11 b12 b13 b14 b21 b22 b23 b24 b31 b32 b33 b34
A1=[a11 a12 a13 a14 ;a21 a22 a23 a24; a31 a32 a33 a34],
x3=2.6:-0.8:0 运算结果
x1 = 3.4000 4.4000 5.4000 6.4000
x2 =
பைடு நூலகம்
3.4000 5.4000
x3 =
2.6000 1.8000 1.0000 0.2000
10
3.生成线性等分向量
指令x=linspace(a,b,n) 在[a,b]区间产 生 n 个等分点(包括端点)
单位阵:
eye(n),eye(m,n)
随机阵:
rand(m,n), rand(n)=rand(n,n)用于随机模
拟,常和rand('seed',k)配合使用。
29
生成特殊矩阵
将rand指令运行多次,观察结果。 程序:
y1=rand(1,5), y2=rand(1,5), rand('seed',3), x1=rand(1,5), rand('seed',3), x2=rand(1,5)
A, A_trans=A’ H=[1 2 3 ; 2 1 0 ; 1 2 3 ], K=[1 2 3 ; 2 1 0 ; 2 3 1] h_det=det(H), k_det=det(K), H_inv=inv(H),K_inv=K^-1
19
矩阵的运算(求解线性方程组)
左除“ \ ”:
4 1
1 4 1
A
1 4
1
n=1000;
1
4
nn
1
b
2
n
A1=sparse(1:n,1:n,4,n,n); %输入A的对角元素
A2=sparse(1:n-1,2:n,1,n,n); %输入A的(上)次对角元素
13
元素群运算(四则运算)
x.*y=[x1*y1 x2*y2 x3*y3] (元素群乘积)
x./y=[x1/y1 x2/y2 x3/y3] (元素群右除, 右边的y做分母)
x.\y=[y1/x1 y2/x2 y3/x3] (元素群左除, 左边的x做分母)
x.^5=[x1^5 x2^5 x3^5] (元素群乘幂)
y=sin(x); (y也自动为100维向量) y1=sin(x).^2; y2=exp(-x).*sin(x); 观察结果
15
创建矩阵(数值矩阵的创建)
直接输入法创建简单矩阵。
A=[1 2 3 4; 5 6 7 8; 9 10 11 12] B=[-1.3,sqrt(3);(1+2)*4/5,sin(5);exp(2),6]
虽然计算各队的得分很容易,但有时按 得分排名的方法并不一定合理。
假定有4支球队, 记做v1~v4。在一次循 环赛中,v1得分为2,v2得分为2,v3得 分为1,v4得分为1,可以把得分写成4维 向量的形式:s = [2 2 1 1]T, 在这种情况 下应该如何决定[v1, v2,v3,v4]的名次呢?
料,以便组织生产?
5
产品 防护帽 原料
硬塑料 4 泡沫塑料 1
尼龙线 1 劳动力 3
垫肩
2 3 3 2
臀垫
2 2 3 2
防护帽 垫肩 臀垫
订单 订单 2 订单 3 订单 4 1 35 20 60 45 10 15 50 40 20 12 45 20
4 2 2
A
1
1
3 3
2
3
解:有(A-2I)B=A 程序 :
A=[3 0 1; 1 1 0;0 1 4]; B=inv(A-2*eye(3))*A, B=(A-2*eye(3))\A
观察结果:
22
矩阵的运算(求解线性方程组)
稀疏矩阵
MatLab对稀疏矩阵的存储和运算会作特殊处理, 这是MatLab 进行大规模计算时的特点和优势之一. 用以下语句输入稀疏矩阵 的非零元素(零元素不必输入), 即可进行计算.
在Matlab窗口创建向量后并运行后,向 量就存在于工作空间,可以被调用。
12
向量的运算
设x=[x1 x2 x3]; y=[y1 y2 y3];为两个三 维向量,a,b为标量。 向量的数乘:a*x=[a*x1 a*x2 a*x3] 向量的平移: x+b=[x1+b x2+b x3+b] 向量和: x+y=[x1+y1 x2+y2 x3+y3] 向量差: x-y=[x1-y1 x2-y2 x3-y3] 数的乘幂: 如 a^2
A=A1+A2+A2';
b=[1:n]';
tic; x=A\b; t1=toc %输出用稀疏矩阵求解所需时间
AA=full(A);
tic; xx=AA\b; t2=toc %输出用满矩阵求解所需时间
y=sum(x) %检验x和xx相同的一种办法
yy=sum(xx) 24
分块矩阵(矩阵的标识)
1.矩阵元素的标识 : A(i,j)表示矩阵A 的第 i 行 j 列的元素;
程序
A11=A(1:2,1:2),A12=A(1:2,3:5), A21=A(3:4,1:2),A22=A(3:4,3:5) B=[A11 A12;A21 A22]
结果
27
分块矩阵(矩阵的修改和提取)
修改矩阵A,将它的第1行变为0。 程序:
A=[1 0 1 1 2;0 1 -1 2 3;
12 45 20] C=A*B 请自行计算观看结果
7
Matlab基本指令
向量的创建和运算
8
1. 直接输入向量
》x1=[1 2 4],x2=[1,2,1],x3=x1’
运行结果
x1 = 1 2 4
x2 = 1 2 1
x3 =
1
2
4
9
2.冒号创建向量
x1=3.4:6.7,
x2=3.4:2:6.7
数据的简单分析
1.当数据为行向量或列向量时,函数对 整个向量进行计算.
2.当数据为矩阵时,命令对列进行计算,
即把每一列数据当成同一变量的不同观 察值。
max(求最大)、min(求最小)、mean(求平
均 值 ) 、 sum( 求 和 ) 、 std( 求 标 准 差 ) 、
cumsum(求累积和)、median(求中值)、
diff(差分)、sort(升序排列)、sortrows(行
升序排列)等等。
32
数据的简单分析
观察:生成一个3×6的随机数矩阵,并 将其各列排序、求各列的最大值与各列 元素之和。
程序
rand('seed',1); A=rand(3,6), Asort=sort(A),Amax=max(A),
运行
17
矩阵的运算(矩阵的加减、数乘、乘积)
C=A1+B1 D=A1-B1 syms c, cA=c*A1 A2=A1(:,1:3), B1 G=A2*B1
18
矩阵的运算(矩阵的加减、数乘、乘积)
求解方程组Ax=b x=A\b 若A为可逆方阵, 输出原方程的解x; 若A为nxm(n>m)阵, 且A’A可逆,输出
原方程的最小二乘解x.
21
矩阵的运算(求解线性方程组)
求矩阵方程:
设A、B满足关系式:AB=2B+A,求B。 其中A=[3 0 1; 1 1 0; 0 1 4]。
取出A的1、3行和1、3列的交叉处元素 构成新矩阵A1
程序
A=[1 0 1 1 2;0 1 -1 2 3;
3 0 5 1 0;2 3 1 2 1],
vr=[1, 3];vc=[1, 3];
A1=A(vr, vc)
观察结果
26
分块矩阵(矩阵的标识)
将A分为四块,并把它们赋值到矩阵B 中,观察运行后的结果。
3
2
2
35 20 60 45
, B 10
15
50
40
20 12 45 20
将 表 格 写 成 矩 阵 形 式
6
计算
输入下面Matlab指令 A=[4 2 3;1 3 2;1 3 3;3 2 2], B=[35 20 60 45;10 15 50 40;20
3 0 5 1 0;2 3 1 2 1]
A(1,:)=[0 0 0 0 0]; A
删除上面矩阵A的第1、3行。
程序:
A([1,3],:)=[ ]
结果 28
生成特殊矩阵
全1阵
ones(n), ones(m,n), ones(size(A))
全零阵:
zeros(n) ,zeros(m,n), zeros(size(A)) 常常用于对某个矩阵或向量赋0初值
2.^x=[2^x1 2^x2 2^x3] 幂)
(元素群乘
x.^y=[x1^y1 x2^y2 x3^y3] (元素群乘 幂)
14
元素群运算(函数计算)
Matlab有许多内部函数,可直接作用 于向量产生一个同维的函数向量。
x=linspace(0,4*pi,100);(产生100 维向量x)
2.向量标识方式 A(vr,vc): vr=[i1,i2,…,ik]、vc=[j1,j2,…,ju]分别是含 有矩阵A的行号和列号的单调向量。 A(vr,vc) 是 取 出 矩 阵 A 的 第 i1,i2,…,ik 行 与 j1,j2,…,ju列交叉处的元素所构成新矩阵。
25
分块矩阵(矩阵的标识)
S=sparse(i,j s m,n) 表示S是mxn稀疏矩阵, 仅在第i行, 第j列为s SS=full(S) 满矩阵(包含零元素) 例 S=sparse(2,3,6,2,4),SS=full(S) S=(2,3) 6 SS=0 0 0 0
0060
23
矩阵的运算(求解线性方程组)
5. 例子 分别用满矩阵和稀疏矩阵求解Ax=b, 其中
求矩阵方程AX=B的解;( A 、B的行要保持一致) 解为 X=A\B; 当A为方阵且可逆时有X=A\B=inv(A)*B;
右除“ / ”:
求矩阵方程XA=B的解 (A 、B的列要保持一致) 解为 X=B/A , 当A为方阵且可逆时有X=B/A=B*inv(A)
20
矩阵的运算(求解线性方程组)
结果
30
常用矩阵函数
det(A) : 方阵的行列式; rank(A): 矩阵的秩; eig(A): 方阵的特征值和特征向量; trace(A): 矩阵的迹; rref(A): 初等变换阶梯化矩阵A svd(A): 矩阵奇异值分解。 cond(A): 矩阵的条件数;
31
3
原料产品关系表
产品 防护帽 原料
硬塑料 4 泡沫塑料 1
尼龙线 1 劳动力 3
垫肩
2 3 3 2
臀垫
2 2 3 2
4
订单
订单 1 订单 2 订单 3 订单 4 防护帽 35 20 60 45
垫肩 10 15 50 40 臀垫 20 12 45 20
管理者接到四份订单如上表所示。 问应该如何计算每份订单所需的原材
实验一
矩阵运算与Matlab命令
1
日常矩阵及其运算
矩阵应用实例: 榄球防护用品的生产管理
2
应用问题
一个工厂生产三种橄榄球用品 : 防护 帽、 垫肩、臀垫。
需要不同数量的:硬塑料 、 泡沫塑料 尼龙线 、 劳动力。
为监控生产,管理者对它们之间的关系 十分关心。
为把握这些量的关系,他列出下面的表
x=linspace(0,1,5) 结果 x= 0 0.2500 0.5000 0.7500 1.0000
11
4.利用向量作图
x1=0:0.2:6; plot(x1,sin(x1),'o')
x=linspace(0,6,100); plot(x,sin(x),'*')
Asum=sum(A)
结果
33
应用、思考和练习(循环比赛的名次)
有若干支球队参加循环比赛,他们两两 交锋,每场比赛只计胜负,不允许平局, 循环赛结束后要根据他们的比赛成绩排 列名次。
一种方法是计算得分,得分是每支球队 获胜的场次,根据各队的得分排出名次, 决定冠军队。
34
应用、思考和练习(循环比赛的名次)
观察运行结果
16
创建矩阵(符号矩阵的创建)
用指令“syms”说明符号变量。
syms a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 b11 b12 b13 b14 b21 b22 b23 b24 b31 b32 b33 b34
A1=[a11 a12 a13 a14 ;a21 a22 a23 a24; a31 a32 a33 a34],
x3=2.6:-0.8:0 运算结果
x1 = 3.4000 4.4000 5.4000 6.4000
x2 =
பைடு நூலகம்
3.4000 5.4000
x3 =
2.6000 1.8000 1.0000 0.2000
10
3.生成线性等分向量
指令x=linspace(a,b,n) 在[a,b]区间产 生 n 个等分点(包括端点)
单位阵:
eye(n),eye(m,n)
随机阵:
rand(m,n), rand(n)=rand(n,n)用于随机模
拟,常和rand('seed',k)配合使用。
29
生成特殊矩阵
将rand指令运行多次,观察结果。 程序:
y1=rand(1,5), y2=rand(1,5), rand('seed',3), x1=rand(1,5), rand('seed',3), x2=rand(1,5)
A, A_trans=A’ H=[1 2 3 ; 2 1 0 ; 1 2 3 ], K=[1 2 3 ; 2 1 0 ; 2 3 1] h_det=det(H), k_det=det(K), H_inv=inv(H),K_inv=K^-1
19
矩阵的运算(求解线性方程组)
左除“ \ ”:
4 1
1 4 1
A
1 4
1
n=1000;
1
4
nn
1
b
2
n
A1=sparse(1:n,1:n,4,n,n); %输入A的对角元素
A2=sparse(1:n-1,2:n,1,n,n); %输入A的(上)次对角元素
13
元素群运算(四则运算)
x.*y=[x1*y1 x2*y2 x3*y3] (元素群乘积)
x./y=[x1/y1 x2/y2 x3/y3] (元素群右除, 右边的y做分母)
x.\y=[y1/x1 y2/x2 y3/x3] (元素群左除, 左边的x做分母)
x.^5=[x1^5 x2^5 x3^5] (元素群乘幂)
y=sin(x); (y也自动为100维向量) y1=sin(x).^2; y2=exp(-x).*sin(x); 观察结果
15
创建矩阵(数值矩阵的创建)
直接输入法创建简单矩阵。
A=[1 2 3 4; 5 6 7 8; 9 10 11 12] B=[-1.3,sqrt(3);(1+2)*4/5,sin(5);exp(2),6]
虽然计算各队的得分很容易,但有时按 得分排名的方法并不一定合理。
假定有4支球队, 记做v1~v4。在一次循 环赛中,v1得分为2,v2得分为2,v3得 分为1,v4得分为1,可以把得分写成4维 向量的形式:s = [2 2 1 1]T, 在这种情况 下应该如何决定[v1, v2,v3,v4]的名次呢?
料,以便组织生产?
5
产品 防护帽 原料
硬塑料 4 泡沫塑料 1
尼龙线 1 劳动力 3
垫肩
2 3 3 2
臀垫
2 2 3 2
防护帽 垫肩 臀垫
订单 订单 2 订单 3 订单 4 1 35 20 60 45 10 15 50 40 20 12 45 20
4 2 2
A
1
1
3 3
2
3
解:有(A-2I)B=A 程序 :
A=[3 0 1; 1 1 0;0 1 4]; B=inv(A-2*eye(3))*A, B=(A-2*eye(3))\A
观察结果:
22
矩阵的运算(求解线性方程组)
稀疏矩阵
MatLab对稀疏矩阵的存储和运算会作特殊处理, 这是MatLab 进行大规模计算时的特点和优势之一. 用以下语句输入稀疏矩阵 的非零元素(零元素不必输入), 即可进行计算.
在Matlab窗口创建向量后并运行后,向 量就存在于工作空间,可以被调用。
12
向量的运算
设x=[x1 x2 x3]; y=[y1 y2 y3];为两个三 维向量,a,b为标量。 向量的数乘:a*x=[a*x1 a*x2 a*x3] 向量的平移: x+b=[x1+b x2+b x3+b] 向量和: x+y=[x1+y1 x2+y2 x3+y3] 向量差: x-y=[x1-y1 x2-y2 x3-y3] 数的乘幂: 如 a^2
A=A1+A2+A2';
b=[1:n]';
tic; x=A\b; t1=toc %输出用稀疏矩阵求解所需时间
AA=full(A);
tic; xx=AA\b; t2=toc %输出用满矩阵求解所需时间
y=sum(x) %检验x和xx相同的一种办法
yy=sum(xx) 24
分块矩阵(矩阵的标识)
1.矩阵元素的标识 : A(i,j)表示矩阵A 的第 i 行 j 列的元素;
程序
A11=A(1:2,1:2),A12=A(1:2,3:5), A21=A(3:4,1:2),A22=A(3:4,3:5) B=[A11 A12;A21 A22]
结果
27
分块矩阵(矩阵的修改和提取)
修改矩阵A,将它的第1行变为0。 程序:
A=[1 0 1 1 2;0 1 -1 2 3;
12 45 20] C=A*B 请自行计算观看结果
7
Matlab基本指令
向量的创建和运算
8
1. 直接输入向量
》x1=[1 2 4],x2=[1,2,1],x3=x1’
运行结果
x1 = 1 2 4
x2 = 1 2 1
x3 =
1
2
4
9
2.冒号创建向量
x1=3.4:6.7,
x2=3.4:2:6.7
数据的简单分析
1.当数据为行向量或列向量时,函数对 整个向量进行计算.
2.当数据为矩阵时,命令对列进行计算,
即把每一列数据当成同一变量的不同观 察值。
max(求最大)、min(求最小)、mean(求平
均 值 ) 、 sum( 求 和 ) 、 std( 求 标 准 差 ) 、
cumsum(求累积和)、median(求中值)、
diff(差分)、sort(升序排列)、sortrows(行
升序排列)等等。
32
数据的简单分析
观察:生成一个3×6的随机数矩阵,并 将其各列排序、求各列的最大值与各列 元素之和。
程序
rand('seed',1); A=rand(3,6), Asort=sort(A),Amax=max(A),