Gauss 列主元消去法、QR(MATLAB)(5 页)Good is good, but better carries it.精益求精,善益求善。例:用 Gauss 列主元消去法、QR 方法求解如下方程组:1. 1)Gauss列主元法源程序:function x=Gauss(A,b)[m,n]=size(A); if m~=n error('矩阵不是方阵') returnendB=[A,b];n=length(A);for j=1:n-1 q=[zeros(j-1,1);B(j:n,j)]; [c,r]=max(abs(q)); %c为列主元,r为所在行 if r~=j temp=B(j,:); %交换两行 B(j,:)=B(r,:); B(r,:)=temp; end for i=j+1:n B(i,:)=B(i,:)-B(j,:)*(B(i,j)/c); endendx(n)=B(n,n+1)/B(n,n);for i=n-1:-1:1 for j=i:n-1 B(i,n+1)=B(i,n+1)-B(i,j+1)*x(j+1); end x(i)=B(i,n+1)/B(i,i);end2)在命令窗口输入 A,b,得到 x 的近似解:>> A=[2,2,1,2;4,1,3,-1;-4,-2,0,1;2,3,2,3];>> b=[1;2;1;0];>> x=Gauss(A,b)x = 1.5417 -2.7500 0.08331.66672. 1)QR方法源程序:function [Q,R,X]=qrfj(A,b)[m,n]=size(A);if m> A=[2,2,1,2;4,1,3,-1;-4,-2,0,1;2,3,2,3];>> b=[1;2;1;0];>> [Q,R,X]=qrfj(A,b)Q = 0.3162 0.3705 -0.0284 -0.8729 0.6325 -0.4940 0.5966 -0.0000 -0.6325 0.0823 0.7386 -0.2182 0.3162 0.7822 0.3125 0.4364R = 6.3246 3.4785 2.8460 0.3162 0.0000 2.4290 0.4529 3.6641 0.0000 0.0000 2.3864 1.0227-0.0000 -0.0000 -0.0000 -0.6547X = 1.5417 -2.7500 0.0833 1.6667—:》、@、/(…·|*(()~(:/》:[^(^!"¥>|