1 / 17
文档名称:

矩阵与数值分析.docx

格式:docx   大小:116KB   页数:17页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

矩阵与数值分析.docx

上传人:pppccc8 2022/7/8 文件大小:116 KB

下载得到文件列表

矩阵与数值分析.docx

相关文档

文档介绍

文档介绍:2013级工科硕士研究生
《矩阵与数值分析》课程数值实验题目
N 1 °6
一、 设S.=Z^—,分别编制从小到大和从大到小的顺序程序分别计算
,/=2 广 T
V V
°10000,U1OOOOOO
并指出两种方法计算结果的urn;
end
end
在matlab命令窗口中输入:
[A,b,x0]=jz(10);
J10=jacobi(A,b,x0)
G1 O=gauseidel(A,b,xO)
[A,b,x0]=jz(20);
J20=jacobi(A,b,x0)
G20=gauseidel(A,b,x0)
[A,b,xO]=jz(3O);
J30=jacobi(A,b,x0)
G3O=gauseidel(A,b,xO)
运行结果:J10=436; GIO =214
J20=1810; G20 =913
J30 =3990; G30 =2001
结果分析:N=10且M=1000时,Jacobi迭代法和Gauss—seidel迭代法的迭代次数分别为436 和214; N=20且M=1000时,Jacobi迭代法和Gauss—seidel迭代法的迭代次数分别为1810 和913; N=30且M=1000时,Jacobi和Gauss-seidel算法的迭代次数分别为3990和2001 次。从以上结果可知在该问题下Jacobi算法的收敛性没有Gauss-seidel算法的收敛性好,原 因在于Jacobi算法迭代过程中,对已算出的信息未加充分利用,一般来说,后面计算的值要 比前面的计算值要精确些,而Gauss-seidel算法则充分利用了已求出来的信息,所以此算法 的收敛性更为好一些。
用Gauss列主元消去法、QR方法求解如下方程组:
p
2
-1
1,
/ \
2
5
0
3
x2
4
1
7
9
2
12
-1
-2
b
Gauss列主元消去法Mat lab程序如下:
function [x,XA]=GaussXQLineMain(A,b) N = size(A);
n = N(l);
index = 0;
for i=l:(n-l)
me = max(abs(A(l :n,i)));
%选取列主元
for k=i:n if(abs(A(k,i))==me) index = k;
%保存列主元所在的行
break;
end
end
temp = A(i,l:n);
A(i,l:n) = A(index,l:n);
A(index,l:n) = temp;
bb = b(index);
b(index)=b(i);
b(i) = bb;
%交换主行
for j=(i+l):n
if(A(i,i)==0)
disp('对角元素为0!
');
return;
end
l = A(j,i);
m = A(i,i);
A(j, 1 :n)=A(j, 1 :n)-l* A(i, 1:n)/m;
b ①=b(j)-l*b ①/m; %消元
end
end
for i=n:-l:l
if(i<n)
s=A(i, (i+1): n) *x((i+1): n, 1);
else
s=0;
end
x(i,l)=(b(i)-s)/A(i,i);
end
XA = A;
QR法Mat lab程序如下:
function x=qrxq(A,b)
N = size(A);
n = N(l);
B=A; %保存系数矩阵
A( 1 :n, 1 )=A( 1 :n, 1 )/norm(A( 1 :n, 1)); %将 A 的第一列正规化
for i=2:n
for j=l:(i-l)
A(l:n,i)= A(1 :n,i)-dot(A(l :n,i),A(l :n,j))*A(l :n,j);
%使A的第i列与前面所有的列正交
end
A(l:n,i)=A(l:n,i)/norm(A(l:n,i));
%将A的第i列正规化
end
Q = A; %分解出来的正交矩阵
R = transpose(Q)*B;
bb=transpose(Q)*b;
for i=n:-l:l
if(i<n)
s=R(i,(i+1 ):n)*x((i+1 ):n, 1);
else
s=0;
end
x(i,l)=(bb (i)-s)/R(i,i);
end
在matlab命令窗口中输入