当前位置:文档之家› 矩阵分析实验报告

矩阵分析实验报告

end
for i = 1:n
B(i , j) = B(i,j)./sqrt(sum);
end
end
V = B'; %V为矩阵A'*A标准正交向量的共轭转置
D = zeros(m,n); %求矩阵秩分解中的D矩阵
r = size(g);
for i = 1:r
D(i,i) = sqrt(g(i,i));
end
% D;
z = rank(g);
U1 = zeros(m,m); %求U阵的U1
for j = 1:z
U1( :,j) = (A * V( :,j))./D(j,j);
end
%U1;
wei = rank(A*A'); %求U阵的U2
U3 = null( A*A' , 'wei');
U2 = orth(U3); %将U2正交化
>> C
C =
1.0000 1.0000
0.0000 1.0000
1.0000 1.0000
3、奇异值分解
举例:请输入原矩阵:[ 1 0; 0 1 ; 1 0]
U =
0 -0.7071 -0.7071
-1.0000 0 0
0 -0.7071 0.7071
D =
1.0000 0
0 1.4142
0 0
V =
L(i,i)=1;
end
for j=1:n %求矩阵U的第一行元素
U(1,j)=A(1,j);
end
for k=2:n %求矩阵L的第一列元素
L(k,1)=A(k,1)/U(1,1);
end
for i=2:n %求L、U矩阵元素
for j=i:n
s=0;
for t=1:i-1
s=s+L(i,t)*U(t,j);
实验项目名称:
1、矩阵的LU分解;2、矩阵的QR分解;3、矩阵的奇异值分解。
实验过程及代码:
1、矩阵的LU分解
程序:clear
clc
A=input('请输入一个方阵'); %输入一个n阶方阵
[~,n]=size(A);
L=zeros(n,n);
U=zeros(n,n);
for i=1:n %将L的主对角线元素赋值1
xiang = zeros(n,n);
g = zeros(n,n);
a = n;
for i = 1:n
if gen(i , i) ~= 0
g(k , k) = gen(i , i);
xiang( : , k) = xiangliang( : , i);
k = k+1;
else
xiang( : , a) = xiangliang( : , i);
河南理工大学矩阵分析及其应用教学上机实验报告
2016—2017学年第1学期上机时间____________
专业班级控制学硕1601学号211608010034姓名朱萌萌
实验课程名称:矩阵的分解
实验目的和要求:
1、了解矩阵的LU分解的基本原理,掌握矩阵LU分解的基本求解步骤。
学会利用Matlab进行模拟仿真,编写关于矩阵LU分解的相关程序,并用实际例子来验证自己程序的准确性。
[y, x] = size(U2);
for j = 1:x %将矩阵A'*A正交化后的特征向量标准化
sum = 0;
for i = 1:y
sum = sum + U2(i , j).*U2(i , j);
end
for i = 1:y
U2(i , j) = U2(i,j)./sqrt(sum);
end
Q = orth(A); %将A阵正交化
for j = 1:n %将矩阵A正交化后的特征向量标准化
sum = 0;
for i = 1:m
sum = sum + Q(i , j).*Q(i , j);
end
for i = 1:m
Q(i , j) = Q(i,j)./sqrt(sum);
end
end
Q;
0 -1
-1 0
实验分析:通过本次实验让我学会到了在Matlab中编写程序的一些技巧,同时也增加我对Matlab使用的熟练程度,更进一步让我了解到矩阵的分解。
任课老师评语:
签名:__________
日期_____年__月__日
实验类别:专业实验要求:必修
实验类型:设计实验者类型:研究生
L =
1 0 0
2 1 0
-1 -3 1
U =
2 1 1
0 -1 -2
0 0 -4
2、QR分解
举例:QR
请输入原矩阵:[1 0 1;1 1 1]'
>> Q
Q =
-0.6572 0.2610
-0.3690 -0.9294
-0.6572 0.2610
>> R
R =
-1.3144 -1.6834
0.5219 -0.4075
R = Q\A;
C = Q * R; %验证结果是否正确C = A
3、矩阵的奇异值分解
程序:A = input('请输入原矩阵:');
[xiangliang , gen] = eig(A'*A); %求矩阵A'*A的特征向量和特征根
[m ,n] = size (A); %求矩阵A的行数m和列数n
k = 1;
end
U(i,j)=A(i,j)-s;
end
for k=i+1:n
r=0;
for t=1:i-1
r=r+L(k,t)*U(t,i);
end
L(k,i)=(A(k,i)-r)/U(i,i);
end
end
2、矩阵的QR分解
程序:A = input('请输入原矩阵:');
[m ,n] = size (A); %求矩阵A的行数m和列数n
2、了解矩阵的QR分解的基本原理,掌握矩阵QR分解的基本求解步骤。
学会利用Matlab进行模拟仿真,编写关于矩阵QR分解的相关程序,并用实际例子来验证自己程序的准确性。
3、了解矩阵的奇异值分解的基本原理,掌握矩阵奇异值分解的基本求解步骤。
学会利用Matlab进行模拟仿真,编写关于矩阵奇异值分解的相关程序,并用实际例子来验证自己程序的准确性。
end
U = zeros(m,m); %根据U1和U2求U
i = 0;
for j = 1:m
if j <= z
U(: ,j) = U1(:,j);
else
i = i +1;
U(: ,j) = U2(:,i);
end
end
%输出分解后的矩阵U D V
U
D
V
运行结果:
1、LU分解
举例:请输入一个方阵[2 1 1; 4 1 0; -2 2 1]
a = a -1;
end
end
xiang;
g;
sum = 0;
B = orth(xiang); %将矩阵A'*A的特征向量正交化
%B = xiangliang
for j = 1:n %将矩阵A'*A正交化后的特征向量标准化
sum = 0;
for i = 1:n
sum = sum + B(i , j).*B(i , j);
相关主题