重庆大学数值计算实验

上传人:鲁** 文档编号:395014947 上传时间:2023-06-02 格式:DOC 页数:36 大小:213KB
返回 下载 相关 举报
重庆大学数值计算实验_第1页
第1页 / 共36页
重庆大学数值计算实验_第2页
第2页 / 共36页
重庆大学数值计算实验_第3页
第3页 / 共36页
重庆大学数值计算实验_第4页
第4页 / 共36页
重庆大学数值计算实验_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《重庆大学数值计算实验》由会员分享,可在线阅读,更多相关《重庆大学数值计算实验(36页珍藏版)》请在金锄头文库上搜索。

1、重 庆 大 学学 生 实 验 报 告实验课程名称 数值计算 开课实验室 数统学院楼104实验室 学 院 年级 专业班 班 学 生 姓 名 学 号 开 课 时 间 至 学年第 学期总 成 绩教师签名课程名称数值计算实验实验项目名 称线性方程组的数值解法实验项目类型验证演示综合设计其他指导教师 成 绩教师签名年 月 日一、 实验目的:(1)高斯列主元消去法求解线性方程组的过程(2)熟悉用迭代法求解线性方程组的过程(3)设计出相应的算法,编制相应的函数子程序二、 实验内容分别用高斯列主元消去法 ,Jacobi迭代法,Gauss-Saidel迭代法,超松弛迭代法求解线性方程组三、 实验步骤1. 高斯列

2、主元消去法代码:format long;%设置为长格式显示,显示15位小数A=a11,a12,a13;a21,a22,a23;a31,a32,a33%方程系数矩阵b=b1,b2,b3 %方程右侧系数矩阵m,n=size(A);%先检查系数正确性if m=n error(矩阵A的行数和列数必须相同); return;endif m=size(b) error(b的大小必须和A的行数或A的列数相同); return;end%再检查方程是否存在唯一解if rank(A)=rank(A,b) error(A矩阵的秩和增广矩阵的秩不相同,方程不存在唯一解); return;endc=n+1;A(:,c)

3、=b; %(增广)for k=1:n-1r,m=max(abs(A(k:n,k); %选主元 m=m+k-1; %修正操作行的值 if(A(m,k)=0) if(m=k) A(k m,:)=A(m k,:); %换行 end A(k+1:n, k:c)=A(k+1:n, k:c)-(A(k+1:n,k)/ A(k,k)*A(k, k:c); %消去 endendx=zeros(length(b),1); %回代求解x(n)=A(n,c)/A(n,n);for k=n-1:-1:1 x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n)/A(k,k);enddisp(X=);disp(

4、x);format short;%设置为默认格式显示,显示5位 2. Jacobi迭代法代码:clc;A= a11,a12,a13,b1;a21, a22,a23,b2; a31,a32,a33,b3 %增广矩阵MAXTIME=50;%最多进行50次迭代eps=1e-5;%迭代误差n,m=size(A); x=zeros(n,1);%迭代初值 y=zeros(n,1); k=0; %进入迭代计算 disp(迭代过程X的值情况如下:) disp(X=); while 1 disp(x); for i=1:1:n s=0.0; for j=1:1:n if j=i s=s+A(i,j)*x(j);

5、 end y(i)=(A(i,n+1)-s)/A(i,i); end end for i=1:1:n maxeps=max(0,abs(x(i)-y(i); %检查是否满足迭代精度要求 end if maxepsMAXTIME%超过最大迭代次数退出 error(超过最大迭代次数,退出); return; end end3. Gauss-Saidel迭代法clc;A= a11,a12,a13,b1;a21, a22,a23,b2; a31,a32,a33,b3 %增广矩阵n,m=size(A);%最多进行50次迭代Maxtime=50;%控制误差Eps=10E-5;%初始迭代值x=zeros(1

6、,n);disp(x=);%迭代次数小于最大迭代次数,进入迭代for k=1:Maxtime disp(x); for i=1:n s=0.0; for j=1:n if i=j s=s+A(i,j)*x(j);%计算和 end end x(i)=(A(i,n+1)-s)/A(i,i);%求出此时迭代的值 end%因为方程的精确解为整数,所以这里将迭代结果向整数靠近的误差作为判断迭代是否停止的条件 if sum(x-floor(x).2)Eps break; end;end;X=x;disp(迭代结果:);Xformat short;4. 超松弛迭代法clc;A= a11,a12,a13;a2

7、1, a22,a23; a31,a32,a33 %方程组左端系数b= b1,b2,b3 %方程组右端系数w=X; %w的值%最大迭代次数Maxtime=100;%精度要求Eps=1E-5;%以15位小数显示format long;n=length(A);k=0;%初始迭代值x=ones(n,1);y=x;disp(迭代过程:);disp(x=);while 1 y=x; disp(x); %计算过程 for i=1:n s=b(i); for j=1:n if j=i s=s-A(i,j)*x(j); end end if abs(A(i,i)=Maxtime error(已达最大迭代次数或矩

8、阵系数近似为0,无法进行迭代); return; end s=s/A(i,i); x(i)=(1-w)*x(i)+w*s; end if norm(y-x,inf)Eps%达到精度要求退出计算 break; end k=k+1;enddisp(最后迭代结果:);%最后的结果X=x%设为默认显示格式format short;四、 实验环境实验环境:MATLAB7.0五、 实验结果1. 高斯列主元消去法运行结果:A = -3 2 6 10 -7 0 5 -1 5b = 4 7 6X= 0.000000000000000 -1.000000000000000 1.0000000000000002.

9、Jacobi迭代法计算结果:A = 2 1 0 3 1 2 1 -5 0 1 2 4迭代过程X的值情况如下:X= 0 0 0 1.5000 -2.5000 2.0000 2.7500 -4.2500 3.2500 3.6250 -5.5000 4.1250 4.2500 -6.3750 4.7500 4.6875 -7.0000 5.1875 5.0000 -7.4375 5.5000 5.2188 -7.7500 5.7188 5.3750 -7.9688 5.8750 5.4844 -8.1250 5.9844 5.5625 -8.2344 6.0625 5.6172 -8.3125 6.

10、1172 5.6563 -8.3672 6.1563 5.6836 -8.4063 6.1836 5.7031 -8.4336 6.2031 5.7168 -8.4531 6.2168 5.7266 -8.4668 6.2266 5.7334 -8.4766 6.2334 5.7383 -8.4834 6.2383 5.7417 -8.4883 6.2417 5.7441 -8.4917 6.2441 5.7458 -8.4941 6.2458 5.7471 -8.4958 6.2471 5.7479 -8.4971 6.2479 5.7485 -8.4979 6.2485 5.7490 -8.4985 6.2490 5.7493 -8.4990 6.2493 5.7495 -8.4993 6.2495 5.7496 -8.4995 6.2496 5.7497 -8.4996 6.2497 5.7498 -8.4997 6.2498 5.7499 -8.4998 6.2499 5.7499 -8.4999 6.2499 5.7499 -8.4999 6.2499 5.75

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号