(2)令b=[8-8-888-8-88]’;
并考虑方程组Ax=b。
该方程组应为相容的。
通过U=rref([Ab])验证。
对五个自由变量的任一组取值,我们都应可以得到一组解。
事实上,令
x2=floor(10*rand(5,1)),若x2表示方程组解的最后5个坐标,则我们由x2求得x1=(x1,x2,x3)’。
要这样做,只需要令U=rref([Ab])。
U的非零行对应于分块形式的线性方程组
为解此方程组,令V=U(1:
3,4:
8),c=U(1:
3,9)
并利用Matlab,根据x2,c和V计算x1。
令x=[x1;x2],验证x是方程组的解。
8.令B=[-1,-1;1,1]和A=[zeros
(2),eye
(2);eye
(2),B]验证B2=0。
(1)用Matlab计算A2,A4,A6,A8。
猜想用子矩阵E,O和B如何表示分块形式的A2k。
用数学归纳法证明你的猜想对任何正整数k都是成立的。
(2)用Matlab计算A3,A5,A7和A9。
猜想用子矩阵E,O和B如何表示分块形式的A2k-1。
用数学归纳法证明你的猜想对任何正整数k都是成立的。
9.
(1)Matlab命令
A=floor(10*rand(6)),B=A’*A
将得到元素为整数的对称矩阵。
为什么?
试说明。
【第i行第j列的数等于第i列的数分别乘以第j列的数之和;第j行第i列的数等于第j列的数分别乘以第i列的数之和,故为对称矩阵】
用这种方法计算B来验证结论,然后将B划分成四个3x3的子矩阵。
在Matlab中求子矩阵,令
B11=B(1:
3,1:
3),B12=B(1:
3,4:
6)
并用B的第四行到第6行类似定义B21和B22。
(2)令C=inv(B11)。
应有CT=C和B21T=B12。
为什么?
【对称阵的逆矩阵与该逆矩阵的转置是相等的,B12的第i行的数等于B21的第i列的数】
试说明。
用Matlab运算符’计算转置,并验证结论。
然后,令
G=B21*C和H=B22-B21*C*B21’
利用Matlab函数eye和zeros构造
计算W=L*D*L’,并通过计算W-B与B进行比较。
证明:
若用算术运算精确计算LDLT,它应准确等于B。
附表:
第一题:
(1)
>>A=rand(4);
>>B=rand(4);
>>C=A*B;
>>D=B*A;
>>G=(A'*B')';
>>H=(B'*A')';
>>C-D
ans=
2.2376e-0014.7289e-0011.3979e+0001.3204e+000
-6.3633e-001-3.0354e-0012.2485e-002-1.5056e-001
-1.7227e-001-1.1938e-0012.9484e-0012.3624e-001
-8.7955e-001-6.5016e-0018.0370e-002-2.1506e-001
>>C-G
ans=
2.2376e-0014.7289e-0011.3979e+0001.3204e+000
-6.3633e-001-3.0354e-0012.2485e-002-1.5056e-001
-1.7227e-001-1.1938e-0012.9484e-0012.3624e-001
-8.7955e-001-6.5016e-0018.0370e-002-2.1506e-001
>>C-H
ans=
0000
0000
0000
0000
>>D-G
ans=
0000
0000
0000
0000
>>D-H
ans=
-2.2376e-001-4.7289e-001-1.3979e+000-1.3204e+000
6.3633e-0013.0354e-001-2.2485e-0021.5056e-001
1.7227e-0011.1938e-001-2.9484e-001-2.3624e-001
8.7955e-0016.5016e-001-8.0370e-0022.1506e-001
>>G-H
ans=
-2.2376e-001-4.7289e-001-1.3979e+000-1.3204e+000
6.3633e-0013.0354e-001-2.2485e-0021.5056e-001
1.7227e-0011.1938e-001-2.9484e-001-2.3624e-001
8.7955e-0016.5016e-001-8.0370e-0022.1506e-001
>>
(2)
>>C=A'*B';
>>D=(A*B)';
>>G=B'*A';
>>H=(B*A)';
>>C-D
ans=
-2.2376e-0016.3633e-0011.7227e-0018.7955e-001
-4.7289e-0013.0354e-0011.1938e-0016.5016e-001
-1.3979e+000-2.2485e-002-2.9484e-001-8.0370e-002
-1.3204e+0001.5056e-001-2.3624e-0012.1506e-001
>>C-G
ans=
-2.2376e-0016.3633e-0011.7227e-0018.7955e-001
-4.7289e-0013.0354e-0011.1938e-0016.5016e-001
-1.3979e+000-2.2485e-002-2.9484e-001-8.0370e-002
-1.3204e+0001.5056e-001-2.3624e-0012.1506e-001
>>C-H
ans=
0000
0000
0000
0000
>>D-G
ans=
0000
0000
0000
0000
>>D-H
ans=
2.2376e-001-6.3633e-001-1.7227e-001-8.7955e-001
4.7289e-001-3.0354e-001-1.1938e-001-6.5016e-001
1.3979e+0002.2485e-0022.9484e-0018.0370e-002
1.3204e+000-1.5056e-0012.3624e-001-2.1506e-001
>>G-H
ans=
2.2376e-001-6.3633e-001-1.7227e-001-8.7955e-001
4.7289e-001-3.0354e-001-1.1938e-001-6.5016e-001
1.3979e+0002.2485e-0022.9484e-0018.0370e-002
1.3204e+000-1.5056e-0012.3624e-001-2.1506e-001
>>
(3)
>>C=inv(A*B);
>>D=inv(A)*inv(B);
>>G=inv(B*A);
>>H=inv(B)*inv(A);
>>C-D
ans=
-3.9602e+001-1.4016e+0011.4537e+0012.2261e+001
1.5266e+0011.5778e+001-1.9398e+001-3.9304e+001
1.0821e+0011.4313e+000-2.7296e+001-4.8956e+001
1.3845e+001-5.5182e-0012.6289e+0015.1120e+001
>>C-G
ans=
-3.9602e+001-1.4016e+0011.4537e+0012.2261e+001
1.5266e+0011.5778e+001-1.9398e+001-3.9304e+001
1.0821e+0011.4313e+000-2.7296e+001-4.8956e+001
1.3845e+001-5.5182e-0012.6289e+0015.1120e+001
>>C-H
ans=
-5.6843e-014-1.2879e-0143.0198e-0147.1054e-014
-6.5370e-013-1.4744e-0133.3396e-0138.2423e-013
-1.5774e-012-3.5527e-0137.8870e-0131.9895e-012
1.8758e-0124.2988e-013-9.4502e-013-2.4016e-012
>>D-G
ans=
4.9738e-0131.1013e-013-8.3489e-014-3.1264e-013
1.7053e-0133.7303e-014-2.4869e-014-1.0747e-013
5.8265e-0131.3145e-013-9.4147e-014-3.8369e-013
-1.0516e-012-2.3448e-0131.7053e-0136.6791e-013
>>D-H
ans=
3.9602e+0011.4016e+001-1.4537e+001-2.2261e+001
-1.5266e+001-1.5778e+0011.9398e+0013.9304e+001
-1.0821e+001-1.4313e+0002.7296e+0014.8956e+001
-1.3845e+0015.5182e-001-2.6289e+001-5.1120e+001
>>G-H
ans=
3.9602e+0011.4016e+001-1.4537e+001-2.2261e+001
-1.5266e+001-1.5778e+0011.9398e+0013.9304e+001
-1.0821e+001-1.4313e+0002.7296e+0014.8956e+001
-1.3845e+0015.5182e-001-2.6289e+001-5.1120e+001
>>
(4)
>>c=inv((A*B)');
>>d=inv(A'*B');
>>g=inv(A')*inv(B');
>>h=(inv(A)*inv(B))';
>>c-d
ans=
-3.9602e+0011.5266e+0011.0821e+0011.3845e+001
-1.4016e+0011.5778e+0011.4313e+000-5.5182e-001
1.4537e+001-1.9398e+001-2.7296e+0012.6289e+001
2.2261e+001-3.9304e+001-4.8956e+0015.1120e+001
>>c-g
ans=
-1.6875e-014-5.4712e-013-1.3216e-0121.5774e-012
-2.8866e-015-1.3145e-013-3.1264e-0133.7659e-013
8.8818e-0152.6290e-0136.3949e-013-7.6028e-013
2.5757e-0147.1765e-0131.7195e-012-2.0606e-012
>>c-h
ans=
-3.9602e+0011.5266e+0011.0821e+0011.3845e+001
-1.4016e+0011.5778e+0011.4313e+000-5.5182e-001
1.4537e+001-1.9398e+001-2.7296e+0012.6289e+001
2.2261e+001-3.9304e+001-4.8956e+0015.1120e+001
>>d-g
ans=
3.9602e+001-1.5266e+001-1.0821e+001-1.3845e+001
1.4016e+001-1.5778e+001-1.4313e+0005.5182e-001
-1.4537e+0011.9398e+0012.7296e+001-2.6289e+001
-2.2261e+0013.9304e+0014.8956e+001-5.1120e+001
>>d-h
ans=
-2.4158e-013-1.1724e-013-2.7711e-0135.2580e-013
-5.6843e-014-1.8652e-014-5.3291e-0141.0658e-013
4.2633e-0141.7764e-0144.7962e-014-8.8818e-014
1.5987e-0136.7502e-0141.8474e-013-3.3396e-013
>>g-h
ans=
-3.9602e+0011.5266e+0011.0821e+0011.3845e+001
-1.4016e+0011.5778e+0011.4313e+000-5.5182e-001
1.4537e+001-1.9398e+001-2.7296e+0012.6289e+001
2.2261e+001-3.9304e+001-4.8956e+0015.1120e+001
>>
第二题:
(1)
>>n=200;
>>A=floor(10*rand(n));
>>b=sum(A')';
>>z=ones(n,1);
>>c=linsolve(A,b);
>>d=c-z;精度为1e-14-----1e-13;
tic,x=A\b,toc=Elapsedtimeis0.016000seconds.
tic,inv(A)*b,toc=Elapsedtimeis0.031000seconds.
(2)
n=500;
>>tic,x=A\b;toc
Elapsedtimeis0.187000seconds.更快!
>>tic,y=inv(A)*b;toc
Elapsedtimeis0.343000seconds.
>>max(abs(x-z))=4.3987e-013更精确!
>>max(abs(y-z))=2.2524e-012
>>
>>n=1000;
>>tic,x=A\b;toc
Elapsedtimeis0.920000seconds.更快!
>>tic,y=inv(A)*b;toc
Elaps