1 / 29
文档名称:

山建大数值分析实验报告.doc

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

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

分享

预览

山建大数值分析实验报告.doc

上传人:164922429 2015/10/12 文件大小:0 KB

下载得到文件列表

山建大数值分析实验报告.doc

文档介绍

文档介绍:山东建筑大学
《数值计算A》实验报告
 
 
二级学院: 理学院
 
专业: 信息与计算科学
 
指导教师: XXX
 
班级学号: 信计XX 20081212XX
 
姓名: XXXX
 
 
 
 
实验一高斯消去法
(1)题目:用选主元素法和高斯消去法求解下列方程组:
已知方程增广矩阵:
a =
2 -1 0 0 6
-1 -3 -2 0 1
-1 3 -2 0 0
0 0 -3 5 1
(2)原理:
(1)高斯消去法:相对于约当消去法而言,总的来说就是将增广矩阵化为下三角阵。
(2) 顺序选主元素法:相对于高斯消去法的唯一不同是要先按当前要排列元素所在列大小进行排列。
(3)设计思想:
(1)高斯消去法:首先让每一行的元素除以该行的主对角线元素。然后利用此行使位于下一行主对角线以前的元素变为0,依次类推。
(2)选主元素法:在高斯消去法的基础上,每次进行化上三角阵之前,重新排列各方程的位置。
(4)对应程序:
(a)高斯消去法
function y=gauss1(a,b)
%高斯顺序消去法
[m,n]=size(a);
if m~=n
disp('输入错误,系数矩证阵只能是方阵')
end
if n~=length(b)
disp('输入错误,常数项的个数应与方程的个数相同')
end
for k=1:n-1
for i=k+1:n
a(i,k)=a(i,k)/a(k,k);
b(i)=b(i)-a(i,k)*b(k);
for j=k+1:n
if a(k,k)==0
disp('主元素为零,消去法无法继续') ;
break;
else
a(i,j)=a(i,j)-a(i,k)*a(k,j);
end
end
end
end
b(n)=b(n)/a(n,n);
for i=(n-1):-1:1
w=0;
for j=(i+1):n
w=w+a(i,j)*b(j);
end
b(i)=(b(i)-w)/a(i,i);
end
y=b;
(b)高斯列主元消去法
function z=gauss2(a,b,ep)
%高斯列主元素消元法
if nargin==2
ep=
end
[m,n]=size(a);
if m~=n
disp('输入错误,系数矩证阵只能是方阵')
end
if n~=length(b)
disp('输入错误,常数项的个数应与方程的个数相同')
end
for k=1:n-1
p=a(k,k);I=k;
for i=k:n
if abs(a(i,k))>abs(p)
p=a(i,k);I=i;
end
end
if p<=ep
z=0;
end
if I~=k
for j=k:n
w=a(k,j); a(k,j)=a(I,j);a(I,j)=w;
end
u=b(k);b(k)=b(I); b(I)=u;
end
for i=k+1:n
a(i,k)=a(i,k)/a(k,k);
b(i)=b(i)-a(i,k)*b(k);
for j=k+1:n
a(i,j)=a(i,j)-a(i,k)*a(k,j);
end
end
end
b(n)=b(n)/a(n,n);
for i=(n-1):-1:1
w=0;
for j=(i+1):n
w=w+a(i,j)*b(j);
end
b(i)=(b(i)-w)/a(i,i);
end
% disp('方程组的解为');
z=b;
(5)实验结果:
>>a =
2 -1 0 0
-1 -3 -2 0
-1 3 -2 0
0 0 -3 5
>> b =
6
1
0
1
>> gauss1(a,b)
方程组的解为
ans =
35/12
-1/6
-41/24
-33/40
(6)实验体会:
主元消去法和高斯消去法的确是两个非常锻炼人编程的方法,在编写程序时,需要使用的大量的循环和分支结构,但无论是高斯消去法还是高斯列主元法,它们的原理还算不难理解,通过变成能够较好的理解它们。
实验二解线性方程组的迭代法

① 掌握解线性方程组的雅可比迭代和高斯-塞德尔迭代算法;
② 培养编程与上机调试能力.
:
(1)选择一种计算机语言(Matlab)设计出雅可比(Jacobi)G