Исследование метода Гаусса для плотных матриц с выбором главного элемента по столбцу

Автор работы: Пользователь скрыл имя, 02 Декабря 2011 в 19:32, курсовая работа

Описание работы

Одним из самых распространенных методов решения систем линейных уравнений является метод Гаусса.Этот метод (который также называют методом последовательного исключения неизвестных) известен в различных вариантах уже более 2000 лет.
Вычисления с помощью метода Гаусса заключаются в последовательном исключении неизвестных из системы для преобразования ее к эквивалентной системе с верхней треугольной матрицей. Вычисления значений неизвестных производят на этапе обратного хода.

Содержание работы

1 Постановка задачи (математическое описание метода)
2 Описание ПО
3 Описание тестовых задач
4 Анализ результатов счета
5 Выводы
6 Список литературы

Файлы: 1 файл

Отчет_Лена.doc

— 130.50 Кб (Скачать файл)

     pause;

      

     plot(nn, eob2);

     title('Maksimalnaya oshibka dlya plohoy obuslovlennosti');

     pause;

      

     %Исследование  разряженной матрицы

         A=[2 0 0 1;0 1 0 0; 0 0 1 0; 1 0 0 3];

         b=[1; 3; 5; 2];

         A=As;

         A=[A bs];

         [A]=gauss(A);

         [A, b]=AandB(A);

         [x]=obrxod(A, b);

         [e]=epsilon(As, bs, x);

         [E1, E2]=oshibka(e) 
 

     gauss.m 

     function[A]=gauss(A)

     n=size(A, 2);

     for k=1:n-1

         [A, k]=perest(A, k, n);

         if k==n-1

             break;

         end

         [A, k]=normir(A, k,n);

         if k==n-1

             break;

         end

         [A]=iskl(A, k, n);

     end 

     perest.m 

     function[A, k]=perest(A, i, n)

     ns=0;

     j=1;

     max=0;

     while max==0

         max=A(j, i);

         for jn=j:n-1

             if max<A(jn, i)

                 max=A(jn, i);

                 ns=jn;

             end

         end

        

         if ns>0

             for in=1:n

                 S=A(ns, in);

                 A(ns, in)=A(j, in);

                 A(j, in)=S;

             end

         end

        

         k=i-1;

         if i<n-1

             k=i;

         end   

     end 

     iskl.m 

     function[A]=iskl(A, i, n)

     j=i+1;

     jm=j-1;

     for jn=j:n-1

         d=-A(jn, i)/A(jm, i);

         for in=i:n

             A(jn, in)=A(jm, in)*d+A(jn, in);

         end

     end

      

     normir.m

     function[A, k]=normir(A, i, n)

     j=i;

     g=0;

     while g==0

         g=A(j, i);

         if g==0

             i=i+1;

         end

         if i==n-1

             k=i;

         else k=i;

         end

     end

      

     for in=i:n

         A(j, in)=A(j, in)/g;

     end 

     obrxod.m 

     function[x]=obrxod(A, b)

     s=0;

     n=size(A, 1);

     x=zeros(n, 1);

     x(n)=b(n);

     for is=1:n-1

         i=n-is;

         for ic=i+1:n

             s=s+A(i, ic)*x(ic);

         end

         x(i)=b(i)-s;

         s=0;

     end

      

     AandB.m 

     function[A, b]=AandB(Ad)

     n=size(Ad, 1);

     A=[];

     for i=1:n

         A=[A Ad(i, i)];

     end

     b=[Ad(:, n+1)]; 

     epsilon.m 

     function[e]=epsilon(A, b, x)

     n=size(A, 1);

     e=zeros(n, 1);

     for j=1:n

         for i=1:n

             e(j)=e(j)+A(j, i)*x;

        end

         e(j)=e(j)-b(j);

     end     

     oshibka.m 

     function[E1, E2]=oshibka(e)

     n=size(e, 1);

     E1=0;

     E2=zeros(1, n);

     for i=1:n

         E1=E1+e(i)^2;

     end

     E1=sqrt(E1);

      

     for i=1:n

         E2(i)=abs(e(i));

     end

     E2=max(E2); 

     obusl.m 

     function[A]=obusl(A)

     A=A+10^2; 

     matrix.m 

     function[A, b]=matrix(n);

     A=rand(n, n)*10;

     b=rand(n, 1)*10; 
 

Информация о работе Исследование метода Гаусса для плотных матриц с выбором главного элемента по столбцу