Метод Гаусса решения системы линейных алгебраических уравнений

Автор: Пользователь скрыл имя, 27 Февраля 2013 в 10:13, лабораторная работа

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

1. Реализовать метод Гаусса решения системы линейных алгебраических уравнений.
2. Реализовать метод Гаусса с постолбцовым выбором главного элемента.
3. Вычислить в рамках метода Гаусса определитель матрицы А.

Работа содержит 1 файл

3.doc

— 88.50 Кб (Скачать)

Министерство  образования Российской Федерации

Белгородский  государственный университет

Факультет компьютерных наук и телекоммуникаций

Кафедра математического обеспечения и  администрирования информационных систем.

 

 

 

 

 

 

Лабораторная  работа №3:

«Метод Гаусса решения системы линейных алгебраических уравнений».

 

 

 

по дисциплине: «Вычислительная математика»

 

Вариант 2

 

 

 

Студентка: Семенко  Ю.В.

 

 

 

 

 

 

 

 

 

 

 

Белгород 2008

 

Ход работы.

1. Реализовать метод Гаусса решения  системы линейных алгебраических  уравнений. 

2. Реализовать метод  Гаусса с постолбцовым выбором  главного элемента.

3. Вычислить в рамках метода Гаусса определитель матрицы А.

 

2.

-2

3

-2

 

2

 

3

-2

1

 

2

 

-5

10

-7

 

3

           

 

1. clc

clear

a=[-2 3 -2;3 -2 1; -5 10 -7];

a1=a;

b=[2;2;3];

n=3;

s=0; m=0; m1=0; s1=0;q=0;

for i=1:(n-1)

    if (a(i,i)==0)

        for e=i+1:n

           

            if a(e,i)==0

            else

                for j=i:3

                    tempa(j)=a(e,j);

                    a(e,j)=a(i,j);

                    a(i,j)=tempa(j);

                end

                tempb=b(e);

                b(e)=b(i);

                b(i)=tempb;

            end

        end

    end   

   

    for k=(i+1):n      

        if (a(k,i)==0)

             else

            l=a(i,i)/a(k,i);

           for j=i:n

             a(k,j)=a(i,j)-a(k,j)*l;

            end

            b(k)=b(i)-b(k)*l;

        end

    end

end

 

for i=1:n

    for j=1:n

        if a(i,j)==0

            m=m+1;

        end

        if (m<n)

            s=s+0;

        else s=s+1;

        end

    end

            m=0;

end

d=[a b];

for i=1:n

    for j=1:(n+1)

        if d(i,j)==0

            m1=m1+1;

        end

        if (m1<(n+1))

            s1=s1+0;

        else s1=s1+1;

        end     

    end

   m1=0;

end

if (~(s1==s))

    c='система не имеет решений'

else s=0;

for i=n:-1:1

    for j=n:-1:(i+1)

        s=s+a(i,j)*x(j);

    end

    x(i)=(b(i)-s)/a(i,i);

    s=0;

end

end

x           

a1*x'

 

2. clc

clear

a=[-2 3 -2;3 -2 1; -5 10 -7];

a1=a;

b=[2;2;3];

n=3;

s=0; m=0; m1=0; s1=0;q=0;

for i=1:(n-1)

    maxi=a(i,i);

    maxiE=1;

        for e=(i+1):n

           

            if a(e,i)>maxi

                maxi=a(e,i);

                maxiE=e;

            end

        end

           

            for j=i:n

                    tempR(j)=a(maxiE,j);

                    a(maxiE,j)=a(i,j);

                    a(i,j)=tempR(j);

            end

                tempT=b(maxiE);

                b(maxiE)=b(i);

                b(i)=tempT;

                for k=i+1:n

       

        if (a(k,i)==0)

        else

           

            l=a(i,i)/a(k,i);

            for j=i:3

             a(k,j)=a(i,j)-a(k,j)*l;

        end

a      

    

    b(k)=b(i)-b(k)*l;

     end

    end

end

for i=1:n

    for j=1:n

        if a(i,j)==0

            m=m+1;

        end

        if (m<n)

            s=s+0;

        else s=s+1;

        end

    end

            m=0;

end

d=[a b];

for i=1:n

    for j=1:(n+1)

        if d(i,j)==0

            m1=m1+1;

        end

        if (m1<(n+1))

            s1=s1+0;

        else s1=s1+1;

        end     

    end

   m1=0;

end

if (~(s1==s))

    c='система не имеет решений'

else s=0;

for i=n:-1:1

    for j=n:-1:(i+1)

        s=s+a(i,j)*x(j);

    end

    x(i)=(b(i)-s)/a(i,i);

    s=0;

end

end

x           

a1*x' 

3. clc

clear

a=[-2 3 -2;3 -2 1; -5 10 -7];

a1=a;

b=[2;2;3];

n=3;

l1=1;

s=0; m=0; m1=0; s1=0;q=0;

for i=1:(n-1)

    if (a(i,i)==0)

        for e=i+1:n

           

            if a(e,i)==0

            else

                for j=i:3

                    tempa(j)=a(e,j);

                    a(e,j)=a(i,j);

                    a(i,j)=tempa(j);

                end

              l1=-l

            end

        end

    end

    for k=(i+1):n      

        if (a(k,i)==0)

             else

            l=a(i,i)/a(k,i);

            for j=i:n

             a(k,j)=a(i,j)-a(k,j)*l;

            end

        end

    end

end

p=1;

for i=1:n

        if(abs(a(i,i))<10^-5)

        a(i,i)=0;

    end

    p=p*a(i,i);

end

p

det(a1)


Информация о работе Метод Гаусса решения системы линейных алгебраических уравнений