百度文库- 让每个人平等地提升自我11 上机习题1.先用你所熟悉的的计算机语言将不选主元和列主元Gauss消去法编写成通用的子程序;然后用你编写的程序求解84 阶方程组;最后将你的计算结果与方程的精确解进行比较,并就此谈谈你对Gauss消去法的看法。Sol:(1)先用 matlab 将不选主元和列主元Gauss消去法编写成通用的子程序,得到PUL,,:不选主元 Gauss 消去法:)(,AGaussLAUL得到UL,满足LUA列主元 Gauss消去法:)(,,AGaussColPUL得到PUL,,满足LUPA(2)用前代法解PborbLy,得 y用回代法解yUx,得 x求解程序为PULbAGaussx,,,,( P 可缺省,缺省时默认为单位矩阵)(3)计算脚本为ex1_1 代码%算法(计算三角分解:Gauss 消去法)function [L,U]=GaussLA(A)n=length(A);for k=1:n-1 A(k+1:n,k)=A(k+1:n,k)/A(k,k); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-A(k+1:n,k)*A(k,k+1:n);end百度文库- 让每个人平等地提升自我22 U=triu(A);L=tril(A);L=L-diag(diag(L))+diag(ones(1,n));end %算法计算列主元三角分解:列主元Gauss 消去法)function [L,U,P]=GaussCol(A)n=length(A);for k=1:n-1[s,t]=max(abs(A(k:n,k))); p=t+k-1;temp=A(k,1:n); A(k,1:n)=A(p,1:n); A(p,1:n)=temp;u(k)=p;if A(k,k)~=0 A(k+1:n,k)=A(k+1:n,k)/A(k,k); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-A(k+1:n,k)*A(k,k+1:n);elsebreak ;endend L=tril(A);U=triu(A);L=L-diag(diag(L))+diag(ones(1,n));百度文库- 让每个人平等地提升自我33 P=eye(n);for i=1:n-1 temp=P(i,:); P(i,:)=P(u(i),:); P(u(i),:)=temp;endend%高斯消去法解线性方程组function x=Gauss(A,b,L,U,P)if nargin<5 P=eye(length(A));endn=length(A);b=P*b;for j=1:n-1 b(j)=b(j)/L(j,j); b(j+1:n)=b(j+1:n)-b(j)*L(j+1:n,j);endb(n)=b(n)/L(n,n);y=b;for j=n:-1:2 y(j)=y(j)/U(j,j);百度文库- 让每个人平等地提升自我44 y(1:j-1)=y(1:j-1)-y(j)*U(1:j-1,j);endy(1)=y(1)/U(1,1);x=y;endex1_1 clc;clear;%第一题A=6*eye(84)+diag(8*ones(1,83),-1)+diag(ones(1,83),1);b=[7;15*ones(82,1);14];%不选主元Gauss 消去法[L,U]=GaussLA(A);x1_1=Gauss(A,b,L,U);%列主元 Gauss 消去法[L,U,P]=GaussCol(A);x1_2=Gauss(A,b,L,U,P);%解的比较subplot(1,3,1);plot(1:84,x1_1,'o-');title('Gauss' );subplot(1,3,2);plot(1:84,x1_2,'.-');title('PGauss' );subplot(1,3,3);plot(1:84,on...