1 / 16
文档名称:

矩阵与数值分析 (2).doc

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

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

分享

预览

矩阵与数值分析 (2).doc

上传人:1542605778 2022/3/8 文件大小:240 KB

下载得到文件列表

矩阵与数值分析 (2).doc

相关文档

文档介绍

文档介绍:2013级工科硕士研究生
《矩阵与数值分析》课程数值实验题目
一、设,分别编制从小到大和从大到小的顺序程序分别计算
并指出两种方法计算结果的有效位数。
Matlab程序如下:
function [si,sd]=S(N)
fo
x=G*x0+f;
n=n+1;
if(n>=M)
disp('Warning: 迭代次数太多,可能不收敛!');
return;
end
end
在matlab命令窗口中输入:
[A,b,x0]=jz(10);
J10=jacobi(A,b,x0)
G10=gauseidel(A,b,x0)
[A,b,x0]=jz(20);
J20=jacobi(A,b,x0)
G20=gauseidel(A,b,x0)
[A,b,x0]=jz(30);
J30=jacobi(A,b,x0)
G30=gauseidel(A,b,x0)
运行结果:J10 =436;G10 =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算法则充分利用了已求出来的信息,所以此算法的收敛性更为好一些。
2. 用Gauss列主元消去法、QR方法求解如下方程组:
Gauss列主元消去法Matlab程序如下:
function [x,XA]=GaussXQLineMain(A,b)
N = size(A);
n = N(1);
index = 0;
for i=1:(n-1)
me = max(abs(A(1:n,i))); %选取列主元
for k=i:n
if(abs(A(k,i))==me)
index = k; %保存列主元所在的行
break;
end
end
temp = A(i,1:n);
A(i,1:n) = A(index,1:n);
A(index,1:n) = temp;
bb = b(index);
b(index)=b(i);
b(i) = bb; %交换主行
for j=(i+1):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(j)=b(j)-l*b(i)/m; %消元
end
end
for i=n:-1:1
if(i<n)
s=A(i,(i+1):n)*x((i+1):n,1);
else
s=0;
end
x(i,1)=(b(i)-s)/A(i,i);
end
XA = A;
QR法Matlab程序如下:
function x=qrxq(A,b)
N = size(A);
n = N(1);
B = A; %保存系数矩阵
A(1:n,1)=A(1:n,1)/norm(A(1:n,1)); %将A的第一列正规化
for i=2:n
for j=1:(i-1)
A(1:n,i)= A(1:n,i)-dot(A(1:n,i),A(1:n,j))*A(1:n,j);
%使A的第i列与前面所有的列正交
end
A(1: