数值分析上机实验——解线性方程组
实 验 报 告 课程名称 数值分析 实验项目名称 解线性方程组 实验类型 上机 实验学时 4 班级 学号 30 姓名 张振 指导教师 沈艳 实验室名称 理学楼407 实验时间 实验成绩 预习部分 实验过程 表现 实验报告 部分 总成绩 教师签字 日期 哈尔滨工程大学教务处 制 实验四 解线性方程组 一.解线性方程组的基本思想 1.直接三角分解法: 将系数矩阵A转变成等价两个矩阵L和U的乘积 ,其中L和U分别是下三角和上三角矩阵。当A的所有顺序主子式都不为0时,矩阵A可以分解为A=LU,且分解唯一。其中L是单位下三角矩阵,U是上三角矩阵。 2.平方根法: 如果矩阵A为n阶对称正定矩阵,则存在一个对角元素为正数的下三角实矩阵L,使得:A=LL^T。当限定L的对角元素为正时,这种分解是唯一的,称为平方根法(Cholesky)分解。 3.追赶法: 设系数矩阵为三对角矩阵 则方程组Ax=f称为三对角方程组。 设矩阵A非奇异,A有Crout分解A=LU,其中L为下三角矩阵,U为单位上三角矩阵,记 可先依次求出L,U中的元素后,令Ux=y,先求解下三角方程组Ly=f得出y,再求解上三角方程组Ux=y。 4.雅克比迭代法: 首先将方程组中的系数矩阵A分解成三部分,即:A = L+D+U,如图1所示,其中D为对角阵,L为下三角矩阵,U为上三角矩阵。 之后确定迭代格式,X = BX +f ,如图2所示,其中B称为迭代矩阵,雅克比迭代法中一般记为J。(k = 0,1,)再选取初始迭代向量X,开始逐次迭代。 5.超松弛迭代法(SOR) 它是在GS法基础上为提高收敛速度,采用加权平均而得到的新算法。 选取分裂矩阵M为带参数的下三角矩阵 M=(D-), 其中>0 为可选择的松弛因子,一般当1 A=[1/4,1/5,1/6;1/3,1/4,1/5;1/2,1,2]; >> b=[9;8;8]; >> x=ZJsanjiao(A,b) 2. ①追赶法(文件) function x=ZG_SDJ(a,b,c,f) %aÊǶԽÇÏßÔªËØ %bÊǶԽÇÏßÉÏ·½µÄÔªËØ£¬¸öÊý±ÈaÉÙÒ»¸ö %cÊǶԽÇÏßÏ·½µÄÔªËØ£¬¸öÊý±ÈaÉÙÒ»¸ö %fÊdz£ÊýÏîb N=length(a); b=[b,0]; c=[0,c]; a1=zeros(N,1); b1=zeros(N,1); y=zeros(N,1); x=zeros(N,1); a1(1)=a(1); b1(1)=b(1)/a1(1); y(1)=f(1)/a1(1); for j1=2:N a1(j1)=a(j1)-c(j1)*b1(j1-1); b1(j1)=b(j1)/a1(j1); temp1=f(j1)-c(j1)*y(j1-1); y(j1)=temp1/a1(j1); end j1=N; x(j1)=y(j1); for j1=N-1:-1:1 x(j1)=y(j1)-b1(j1)*x(j1+1); end ②控制台输入代码: >> a=[2 2 2 2 2]; >> b=[-1 -1 -1 -1]; >> c=[-1 -1 -1 -1]; >> f=[1;0;0;0;0]; >> x=ZG_SDJ(a,b,c,f) 3. ①改进的平方根法(文件) function GJPFG(A,b) n=length(b);% nΪÁÐά£» % LDL ·Ö½â£» d(1)=A(1,1); for i=2:n for j=1:i-1 sum1=0; for k=1:j-1 sum1=sum1+t(i,k)*l(j,k); end t(i,j)=A(i,j)-sum1; l(i,j)=t(i,j)/d(j); end sum2=0; for k=1:i-1 sum2=sum2+t(i,k)*l(i,k); end d(i)=A(i,i)-sum2; end for i=1:n l(i,i)=1; end disp( µ¥Î»ÏÂÈý½Ç¾ØÕóLΪ£º ); %½â³öµ¥Î»ÏÂÈý½Ç¾ØÕóL£» l disp( ¶Ô½Ç¾ØÕóDΪ£º ); %½â³ö¶Ô½Ç¾ØÕóD£»