function x=gauss1(a,b) n=length(b); for k=1:n-1
for i=k+1:n
m(i,k)=a(i,k)/a(k,k); a(i,k)=0;
b(i)=b(i)-m(i,k)*b(k); for j=k+1:n
a(i,j)=a(i,j)-a(k,j)*m(i,k); end end end
x(n)=b(n)/a(n,n); for i=n-1:-1:1 s=0;
for j=i+1:n
s=s+a(i,j)*x(j); end
x(i)=(b(i)-s)/a(i,i); end x=x';
a=[2 3 4;3 5 2;4 3 30]; b=[6,5,32]' a(1,2)
a=[1 2 3;4 5 6;7 8 8];b=[6 15 23]; x=gauss1(a,b) x =
1
1 1 x =
NaN NaN NaN x =
-13 8 2
a=[2 -1 1;-1 -2 3;1 3 1] b=[ 4 5 6]’ x=gauss1(a,b) x=gauss1(a,b) x =
1.11111111111111 0.777777777777778 2.55555555555556 a=[12 -3 3;-18 3 1;1 1 1] b=[15 -15 6]’
x=gauss1(A,b)) m =
0 1.5 2 a =
2 3 4 0 0.5 -4 0 -3 22 b =
6 -4 20 m =
0 0 1.5 0 2 -6 a =
2 3 4 0 0.5 -4 0 0 -2 b =
6 -4 -4
x =
-13 8 2
function x=gauss4(a,b) a=[a,b];
n=length(b); for k=1:n-1 s=a(k,k);
p=k;
for i=k+1:n
if abs(s) end if p~=k for j=k:n+1 t=a(k,j); a(k,j)=a(p,j); a(p,j)=t; end end a,p for i=k+1:n m(i,k)=a(i,k)/a(k,k); a(i,k)=0; for j=k+1:n+1 a(i,j)=a(i,j)-a(k,j)*m(i,k); end end end a x(n)=a(n,n+1)/a(n,n); for i=n-1:-1:1 s=0; for j=i+1:n s=s+a(i,j)*x(j); end x(i)=(a(i,n+1)-s)/a(i,i); end
工程数学 线性方程组直接解法数值试验



