用Matlab及建模实践改造工科线性代数课程.docx
《用Matlab及建模实践改造工科线性代数课程.docx》由会员分享,可在线阅读,更多相关《用Matlab及建模实践改造工科线性代数课程.docx(18页珍藏版)》请在冰点文库上搜索。
![用Matlab及建模实践改造工科线性代数课程.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/cd166f65-ee9b-4a6c-8f16-841c83e4456e/cd166f65-ee9b-4a6c-8f16-841c83e4456e1.gif)
用Matlab及建模实践改造工科线性代数课程
用Matlab及建模实践改造工科线性代数课程
实验作业
姓名:
学号:
所在学院:
自动化
班级:
指导教师:
2009年5月
一、基础篇:
写出用Matlab求解下列问题的过程(在命令窗口的执行过程或M文件均可)。
(每题10分)
1、利用函数rand和函数round构造一个
的随机正整数矩阵A和B,验证一下等式是否成立:
(1)AB=BA;
(2)(A+B)(A-B)=
(3)
2、已知
,其中
用求逆矩阵和矩阵右除两种方法求矩阵X。
3、已知向量组
,
,
,
,
求它的最大无关组,并用该最大无关组来线性表示其他向量。
4、求下面非齐次线性方程组的通解。
5、设
,计算
的特征值与特征向量.
6、计算正交的变量替换
,化二次型
为标准型.
7、利用主子式法判定二次型
的正定性.
二、应用篇(任选一题或根据自己的专业自行编制与线性代数相关的题目,分析解决问题,写出所用模型及Matlab求解过程)(30分)
1、已知:
某调料公司用7中成分来制造多种调味品,以下表格列出了6种调味品A、B、C、D、E、F每包所需各成分的量(以盎司为单位)
A
B
C
D
E
F
红辣椒
3
1.5
4.5
7.5
9
4.5
姜黄
2
4
0
8
1
6
胡椒
1
2
0
4
2
3
欧莳萝
1
2
0
4
1
3
大蒜粉
0.5
1
0
2
2
1.5
盐
0.5
1
0
2
2
1.5
丁香油
0.25
0.5
0
2
1
0.75
问题:
(1)、一个顾客为了避免购买全部6种调味制品,它可以只购买其中一部分并用它们配制出其余几种调味制品,为了能配制出其余几种调味品,这位顾客必须购买的最少调味品的种类是多少?
写出所需最少的调味品的集合。
(2)、由
(1)中得到的最小调味品集合是否唯一?
能否找到一个最小调味品集合?
(3)利用在
(1)中找到的最小调味品的集合,按下列成分配制一种新的调味品,并写出需要的调味品的包数。
红辣椒:
18,姜黄:
18,胡椒:
9,欧莳萝:
9,大蒜粉:
4.8,盐4.5,丁香油3.25。
(4)另一顾客希望按下列成分表配制一种调味品能,它要购买的自小调味品集合是什么?
红辣椒:
12,姜黄:
14,胡椒:
7,欧莳萝:
7,大蒜粉:
35,盐35,丁香油175。
(5)在上述问题的解答中,用到了哪些知识点?
请列出所用知识点。
2、某农场饲养的动物所能达到的最大年龄为15岁,将其分为三个年龄组:
第一组,0-5岁;
第二组,6-10岁;
第三组,11-15岁,
动物从第二年龄组起开始繁殖后代,经过长期统计,第二年龄组的动物在其年龄段平均繁殖4个后代,第三组在其年龄段平均繁殖3个后代,第一年龄组和第二年龄组的动物能顺利进入下一个年龄组的存活率分别是1/2和1/4。
假设农场现有三个年龄段的动物各1000头,问15年后农场饲养的动物总数及农场三个段的动物各将达到多少头?
指出15年间,动物总增长多少头及总增长率。
答案:
1.
(1),M文件:
A=round(rand(5)*10);
B=round(rand(5)*10);
E=A*B;
D=B*A;
ifE==D
fprintf('等式成立')
else
fprintf('等式不成立')
end;
运行结果:
等式不成立
(2)M文件:
A=round(rand(5)*10);
B=round(rand(5)*10);
C=A+B;
D=A-B;
E=A^2-B^2;
F=C*D;
ifF==E
fprintf('等式成立')
else
fprintf('等式不成立')
end;
运行结果:
等式不成立
(3)M文件:
A=round(rand(5)*10);
B=round(rand(5)*10);
C=(A*B)';
D=B'*A';
ifC==D
fprintf('等式成立')
else
fprintf('等式不成立')
end;
运行结果:
等式成立
2.用逆矩阵求解
M文件:
A=[531;1-3-2;-521];
B=[-830;-590;-2150];
C=inv(A);
formatrat;
X=B*C
运行结果:
X=
123
456
789
>>
矩阵右除求解
M文件:
A=[531;1-3-2;-521];
B=[-830;-590;-2150];
X=B/A
运行结果:
X=
123
456
789
>>
3.M文件:
a1=[11022];
a2=[34083];
a3=[23061];
a4=[93212];
a5=[6-22-92];
A=[a1'a2'a3'a4'a5'];
[R,jb]=rref(A);
A(:
jb)
运行结果:
ans=
139
143
002
281
232
由此可看出,a1,a2,a4为极大线性无关组。
a3=-a1+a2
a5=3a1-2a2+a4
4.M文件:
A=[24-1416;-3-642-6-23;36-4619;125219];
b=[-27-2343]';
B=[Ab];
RA=rank(A);
RB=rank(B);
ifRA==RB&RA==5
X=A\b
elseRA==RB&RA<5
X0=A\b
D=null(A,'r')
end
symsk1k2;
X=X0+k1*D(:
1)+k2*D(:
2)
运行结果:
e01
ans=
1
Warning:
Rankdeficient,rank=3,tol=7.1538e-014.
>Ine01at9
X0=
0
-0.0000
7.3333
0
0.3333
D=
-2-9
00
0-2
10
01
X=
-2*k1-9*k2
-3354844070832297/40564819207303340847894502572032
22/3-2*k2
k1
1/3+k2
>>
5.M文件:
A=[1312;3-113;1125;2352];
eig(A);
[V,D]=eig(A)
V*D*inv(V);
a1=V(:
1)
a2=V(:
2)
a3=V(:
3)
a4=V(:
4)
运行结果:
e02
V=
-0.2430-0.5449-0.71540.3636
0.66430.5003-0.42480.3578
0.4054-0.49470.52460.5619
-0.57910.45620.18020.6512
D=
-4.1026000
0-2.520800
001.54430
0009.0791
a1=
-0.2430
0.6643
0.4054
-0.5791
a2=
-0.5449
0.5003
-0.4947
0.4562
a3=
-0.7154
-0.4248
0.5246
0.1802
a4=
0.3636
0.3578
0.5619
0.6512
>>
6.M文件:
A=[210-1;11-10;0-111;-1012];
symsx1x2x3x4;
X=[x1x2x3x4]';
f=X'*A*X;
[P,D]=eig(A);
symsy1y2y3y4;
Y=[y1;y2;y3;y4];
X=P*Y
f=Y'*D*Y
运行结果:
e03
X=
[-6696817237882403/18014398509481984*y1+209275538683825/562949953421312*y2-5417838953669963/9007199254740992*y3-2708919476834979/4503599627370496*y4]
[5417838953669959/9007199254740992*y1-5417838953669963/9007199254740992*y2-3348408618941201/9007199254740992*y3-1674204309470601/4503599627370496*y4]
[1354459738417489/2251799813685248*y1+2708919476834979/4503599627370496*y2-3348408618941205/9007199254740992*y3+3348408618941197/9007199254740992*y4]
[-6696817237882399/18014398509481984*y1-1674204309470601/4503599627370496*y2-5417838953669955/9007199254740992*y3+677229869208745/1125899906842624*y4]
f=
-347922205179541/562949953421312*conj(y1)*y1+777977701663083/562949953421312*conj(y2)*y2+910872158600853/562949953421312*conj(y3)*y3+4073544130886953/1125899906842624*conj(y4)*y4
>>
7.M文件:
A=[211;121;111];
c=1;
fori=1:
3
fprintf('第%d阶主子式为',i)
B=A(1:
i,1:
i)
fprintf('第%d阶主子式的值为',i)
det(B)
if(det(B)<0)
c=-1;
break
end
end
if(c==-1)
fprintf('判定的结论:
二次型非正定')
else
fprintf('判定的结论:
二次型正定')
end
运行结果:
e04
第1阶主子式为
B=
2
第1阶主子式的值为
ans=
2
第2阶主子式为
B=
21
12
第2阶主子式的值为
ans=
3
第3阶主子式为
B=
211
121
111
第3阶主子式的值为
ans=
1
判定的结论:
二次型正定
应用题:
1.
(1)由题意可知:
应把6种调味品的集合看做矩阵,求出极大线性无关组即可。
M文件:
A=[32110.50.50.25];
B=[1.5422110.5];
C=[4.5000000];
D=[7.5844222];
E=[9121221];
F=[4.56331.51.50.75];
G=[A'B'C'D'E'F'];
[R,jb]=rref(G)
G(:
jb)
运行结果:
e05
R=
102001
01-1001
000100
000010
000000
000000
000000
jb=
1245
ans=
3.00001.50007.50009.0000
2.00004.00008.00001.0000
1.00002.00004.00002.0000
1.00002.00004.00001.0000
0.50001.00002.00002.0000
0.50001.00002.00002.0000
0.25000.50002.00001.0000
>>
由运行结果可看出,该顾客最少应买4种调味品。
所需购买的调味品种类的集合为:
{A,B,D,E}
(2)不唯一
(3)新的调味品的成分组合与
(1)中的4种调味品构成非齐次线性方程组求解,若有解,则可以求出所需4种调味品的包数,否则不能调配。
M文件:
a=[31.57.59];
b=[2481];
c=[1242];
d=[1241];
e=[0.5122];
f=[0.5122];
g=[0.250.521];
A=[a;b;c;d;e;f;g];
m=[1818994.84.53.25]';
B=[Am];
RA=rank(A);
RB=rank(B);
if(RA==RB&RA==n)
X=A\m
elseif(RA==RB&RA<4)
X0=A\m
D=null(A,'r')
else
fprintf('无法配出该调味品')
end
end
运行结果:
e06
无法配出该调味品>>
(4)把新的调味品与这6种调味品构成新的矩阵,求其极大线性无关组即可。
M文件:
A=[32110.50.50.25];
B=[1.5422110.5];
C=[4.5000000];
D=[7.5844222];
E=[9121221];
F=[4.56331.51.50.75];
G=[1214773535175];
H=[A'B'C'D'E'F'G'];
[R,jb]=rref(H)
H(:
jb)
运行结果:
e07
R=
1020010
01-10010
0001000
0000100
0000001
0000000
0000000
jb=
12457
ans=
3.00001.50007.50009.000012.0000
2.00004.00008.00001.000014.0000
1.00002.00004.00002.00007.0000
1.00002.00004.00001.00007.0000
0.50001.00002.00002.000035.0000
0.50001.00002.00002.000035.0000
0.25000.50002.00001.0000175.0000
>>
由所得极大线性无关组及R可看出,所需的调味品不能由其他6种调味品调出。
(5)本题应用到的知识点有:
矩阵的秩,矩阵的极大线性无关组,求解非齐次线性方程组