啊啊
A=[2 0 1 0;0 1 3 2;0 4 2 0;0 1 4 0];
b=[0 2 4 0]';
a=[A b]%構(gòu)成增廣矩陣
n=size(a,1);%size()用來返回數(shù)據(jù)序列的行數(shù)和列數(shù);size(A,1)返回的是矩陣A所對應(yīng)的行數(shù)
%消元
for i=1:n-1
? ? %列選主元
? ? ? ? [q,nmax]=max(abs(a(i:n,i)));
? ? ? ? p=a(i,:);
? ? ? ? a(i,:)=a(nmax+i-1,:);
? ? ? ? a(nmax+i-1,:)=p;
? ? for k=i+1:n
? ? ? ? mik=a(i,i:n+1)./a(i,i).*a(k,i);
? ? ? ? a(k,i:n+1)=a(k,i:n+1)-mik;
? ? ? ? clear mik;%mik的長度越來越短,所以在執(zhí)行每次循環(huán)之后要將mik調(diào)零
? ? end
? ? a
end
%回代
x(n)=a(n,n+1)/a(n,n)
for i=n-1:-1:1
? ? x(i)=(a(i,n+1)-sum(x(i+1:n).*a(i,i+1:n)))/a(i,i)
end
標(biāo)簽: