Page 69 - 数学建模算法与应用
P. 69

第三章  MATLAB 编程基础


                   在 MATLAB 中编写列主元 Gauss 消去法程序如下:
                   function s = LZYgauss(A,b)
                   n = length(A(:,1));

                   for k=1:n-1
                       [a,t] = max(abs(A(k:n,k)));
                       p = t+k-1;
                       if a == 0

                           error(‘A is a bizarre matrix’);
                       else
                           t1 = A(k,:);

                           A(k,:) = A(p,:);
                           A(p,:) = t1;
                           t2 = b(k);
                           b(k) = b(p);
                           b(p) = t2;
                       end

                       for j=k+1:n
                           m = A(j,k)/A(k,k);

                           A(j,:) = A(j,:) - m.*A(k,:);
                           b(j) = b(j) - m*b(k);
                       end
                   end
                   b(n) = b(n)/A(n,n);

                   for i=n-1:-1:1
                       q = (b(n-i)-sum(A(n-i,n-i+1:n).*b(n-i+1:n)))/A(n-i,n-i);
                       b(n-i) = q;
                   end

                   s = b;
                   解方程组的程序编写如下所示:
                   clear all



                                                                                       59
   64   65   66   67   68   69   70   71   72   73   74