Отчет по лабораторной работе Решение систем линейных алгебраических уравнений

МАРИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра физики и методики обучения физике

Отчет по лабораторной работе №4

РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ

АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ

                                                                                  Выполнил: Илдаркин С.С.

                                                                                  Проверил: Андреев А.И.

Йошкар-Ола

2014г.

Вариант №6

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

1.Решение:

1. Создадим файл ExchangeIldarkin.sci, содержащий описание функции? осуществляющей перестановку строк при обнаружении в текущей строке нулевого элемента на главной диагонали.

function z= ExchangeIldarkin(C, i)

   k=i+1;

   while C(k,i)==0

       k=k+1;

   end

   for j=1:size(C,1)

       s=C(i,j);

       C(i,j)=C(k,j);

       C(k,j)=s;

   end

   z=C;

endfunction

Создадим файл SimplexIldarkin.sci, содержащий описание функции, возвращающей расширенную матрицу системы к диагональному виду.

function z=SimplexIldarkin(A, b)

   N=size(A,1);

   C=cat(2,A,b);

   for i=1:N-1

       if C(i,i)==0

           C=ExchangeIldarkin(C,i);

       end

       for j=0:N

           C(i,N+1-j)=C(i,N+1-j)/C(i,i);

       end

       for m=i+1:N

           alpha=C(m,i);

           for j=i:N+1

               C(m,j)=C(m,j)-alpha*C(i,j);

           end

       end

   end

   C(N,N+1)=C(N,N+1)/C(N,N);

   C(N,N)=1;

   z=C;

endfunction

3. Создадим файл GaussIldarkin.sci, содержащий описание функции, возвращающей решение системы линейных уравнений методом Гаусса.

function z=GaussIldarkin(A, b)

   C=SimplexIldarkin(A,b);

   N=size(A,1);

   v(N)=C(N,N+1);

   for j=1:N-1

       s=0;

       for k=0:j-1

           s=s+C(N-j,N-k)*v(N-k);

       end

       v(N-j)=(C(N-j,N+1)-s)/C(N-j,N-j);

   end

   z=v';

endfunction

4. Зададим матрицу системы линейных уравнений:

-->A=[4.3,-2.1,23.3,-14.1;2.4,-15.4,3.5,5.5;5.4,8.3,-7.4,-12.7;16.3,-7.6,1.34,3.7]

A  =

   4.3   - 2.1     23.3  - 14.1  

   2.4   - 15.4    3.5     5.5   

   5.4     8.3   - 7.4   - 12.7  

   16.3  - 7.6     1.34    3.7

5. Зададим вектор-столбец свободных членов:

-->b=[15.5;2.5;8.6;12.1]

b  =

   15.5  

   2.5   

   8.6   

   12.1  

6. Решить систему уравнений, используя функцию GaussIldarkin():

-->x=GaussIldarkin(A,b)

x  =

 0.7608693  

- 0.2180535  

 0.1514984

- 0.5844282  

7. Проверим правильность решения системы линейных уравнений:

-->A*x

ans  =

   15.5  

   2.5   

   8.6   

   12.1

Ответ: решением системы методом Гаусса является вектор-столбец

 

Задача: Решить систему линейных алгебраических уравнений  методом итерации с точностью 0,001:

Решение:

Для начала преобразуем данную систему к виду пригодному для итерационного процесса, для этого возьмем первым уравнением четвертое (4-е), второе уравнение оставим на месте второго (так же), вместо третьего – первое(1-е), вместо четвертого уравнения возьмем третье уравнение (3) и умножим на 2 ((3)*2),и к полученному уравнению прибавим 1-е уравнение(т.е. ((3)*2)+(1)).

2. Разделим каждое уравнение на диагональный коэффициент и выразим из каждого уравнения диагональное неизвестное:

3.Создадим файл IteracIldarkin.sce , содержащий описание функции, возвращающей решение системы линейных уравнений методом простой итерации:function IteracIldarkin(C1, d1, eps) 

N=size(C1,1); 

R1=d1; 

q1=R1; 

q2=(C1*q1)+R1;

p=0; 

s=0; 

for i=1:N 

   if abs(q2(i)-q1(i))>s 

       s=abs(q2(i)-q1(i)); 

   end; 

end; 

while s>eps 

   p=p+1; 

   q1=q2; 

   q2=(C1*q1)+R1; 

   s=0; 

   for i=1:N 

   if abs(q2(i)-q1(i))>s 

       s=abs(q2(i)-q1(i)); 

   end; 

end; 

end; 

q2 

disp(q2)

(C1*q2)+R1-q2 

disp(p)

abs(q2-q1) 

endfunction

  1.  Зададим матрицу системы, приведенной к виду, пригодному для метода простой итерации:

-->A=[0,0.4662,-0.0822,-0.2269;0.1558,0,0.2272,0.3571;-0.1853,0.0905,0,0.6077;0.3822,0.3670,0.2126,0]

A  =

 

   0.        0.4662  - 0.0822  - 0.2269  

   0.1558    0.        0.2272    0.3571  

 - 0.1853    0.0905    0.        0.6077  

   0.3822    0.367     0.2126    0.      

 

  1.  Зададим вектор-столбец свободных членов:

-->b=[0.7423;-0.1623;0.6681;-0.8278]

b  =

   0.7423  

 - 0.1623  

   0.6681  

 - 0.8278

  1.   Найдем решение системы линейных уравнений:

-->IteracIldarkin(A,b,0.001)

   0.7611516  

 - 0.2165726  

   0.1536520  

 - 0.5832166

 

 

   7.

Ответ: решением системы является вектор-столбец ,

полученный на 7 шаге итерации.

Задача 3.Решить систему линейных алгебраических уравнений методом Зейделя с точностью 0,001:

Решение: 1. Создадим файл ZeidelIldarkin.sci, содержащий описание функции, выполняющей последовательно: а) приведение системы к нормальному виду; б) приведение нормальной системы к виду, пригодному для итерационного процесса Зейделя; в) реализацию итерационного процесса Зейделя.

function ZeidelIldarkin(A, b, eps)

N=size(A,1);

   C=A'*A;

   D=A'*b;

   for i=1:N

       D1(i)=D(i)/C(i,i);

   end;

   

   d1=D1;

   for i=1:N

       for j=1:N

           if i==j then 

               C1(i,j)=0;

           else

               C1(i,j)=-C(i,j)/C(i,i);

           end;

       end;

   end;

   R1=d1;

   q1=R1;

   t=size(C1);

   N=t(1,1);

   q2=zeros(t(1,1),1);

   p=0;

   s=0;

   for i=1:N

       if abs(q2(i)-q1(i))>s then

           s=abs(q2(i)-q1(i));

       end;

   end;

   while s>eps

       q2=q1;

       p=p+1;

       for f=1:N

           v=(C1*q1)+R1;

           x(f,1)=v(f,1);

           q1(f,1)=x(f,1);

       end;

       s=0;

       for i=1:N

           if abs(q2(i)-q1(i))>s then

               s=abs(q2(i)-q1(i));

           end;

       end;

           q1=x;

   end;

   disp('Ответы:')

   disp(q2)

   disp('Проверка:')

   disp(A*q2)

   disp('Число проходов:')

   disp(p)

   disp(abs(q2-q1))

endfunction

2. Зададим значения коэффициентов при неизвестных исходной системы линейных уравнений и столбец свободных членов:

-->A=[4.3,-2.1,23.3,-14.1;2.4,-15.4,3.5,5.5;5.4,8.3,-7.4,-12.7;16.3,-7.6,1.34,3.7]

-->b=[15.5;2.5;8.6;12.1]

ZeidelIldarkin(A,b,0.001)

3. Вычислим решение системы линейных уравнений, используя функцию ZeidelPodkovyrin():

-->ZeidelIldarkin(A,b,0.001)

Ответы:   

   0.7630792  

 - 0.2132503  

   0.1542072  

 - 0.5804710  

 

Проверка:   

   15.506735  

   2.4625792  

   8.5814992  

   12.117788  

 

Число проходов:   13.  

   0.0004049  

   0.0008800  

   0.0004963  

   0.0007250

Ответ: решением системы трех линейных уравнений является вектор, найденный на 13 шаге итерации.

Теперь решим уравнение  с помощью встроенных функций  fsolve().

Создадим файл функцию fun, в которой опишем нашу систему уравнений.

function [y]=fun(x)

y(1)=4.3*x(1)-2.1*x(2)+23.2*x(3)-14.1*x(4)-15.5;

y(2)=2.4*x(1)-15.4*x(2)+3.5*x(3)+5.5*x(4)-2.5;

y(3)=5.4*x(1)+8.3*x(2)-7.4*x(3)-12.7*x(4)-8.6;

y(4)=16.3*x(1)-7.6*x(2)+1.34*x(3)+3.7*x(4)-12.1;

endfunction

В командном окне наберем команды

 fsolve([0 0 0 0],fun) 

в результате получаем :

0.7608988  - 0.2180294    0.1519909  - 0.5846869  

Теперь решим методом обратного деления

-->A=[4.3,-2.1,23.3,-14.1;2.4,-15.4,3.5,5.5;5.4,8.3,-7.4,-12.7;16.3,-7.6,1.34,3.7]

A  =

   4.3   - 2.1     23.3  - 14.1  

   2.4   - 15.4    3.5     5.5   

   5.4     8.3   - 7.4   - 12.7  

   16.3  - 7.6     1.34    3.7   

 

-->b=[15.5;2.5;8.6;12.1]

b  =

   15.5  

   2.5   

   8.6   

   12.1  

Теперь вызовем:

-->A\b

Получим ответ:

ans  =

   0.7608693  

 - 0.2180535  

   0.1514984  

 - 0.5844282

Теперь решим методом обратной матрицы

-->A=[4.3,-2.1,23.3,-14.1;2.4,-15.4,3.5,5.5;5.4,8.3,-7.4,-12.7;16.3,-7.6,1.34,3.7]

A  =

   4.3   - 2.1     23.3  - 14.1  

   2.4   - 15.4    3.5     5.5   

   5.4     8.3   - 7.4   - 12.7  

   16.3  - 7.6     1.34    3.7   

 

-->b=[15.5;2.5;8.6;12.1]

b  =

   15.5  

   2.5   

   8.6   

   12.1  

Теперь вызовем:

 x=inv(A)*b

Получим:

x  =

   0.7608693  

 - 0.2180535  

   0.1514984  

 - 0.5844282  

Попробуем метод Гаусса

A=[4.3,-2.1,23.3,-14.1;2.4,-15.4,3.5,5.5;5.4,8.3,-7.4,-12.7;16.3,-7.6,1.34,3.7]

b=[15.5;2.5;8.6;12.1]

C=rref([A,b]);

[n,m]=size(C);

x=C(:,m);

disp(x);

В результате получим

   0.7608693  

 - 0.2180535  

   0.1514984  

 - 0.5844282  

Сравнительная характеристика методов:

Мы рассмотрели 3 метода решения систем уравнений. Сравнивая результаты решения, мы получим, что наиболее быстрым и точным  был метод Гаусса. Сравнивая метод итераций и метод Зейделя, мы выясняем что метод Зейделя был менее быстрым (результат  найден за 13 итераций) и менее  точным (значение невязки  составило   

).

Контрольные вопросы

1. Какие вы знаете группы методов решения систем линейных уравнений?Существует два метода решений систем линейных уравнений:а)точный(прямой) метод;б)приближенный метод;

2. Какие методы относятся к прямым методам решения систем линейных уравнений?

а) метод Гауса;б) метод Крамера;в) метод Гауса-Жордана;г) матричный метод.

3. Какие методы относятся к приближенным методам решения систем линейных уравнений?

а) Метод Гауса-Зейделя;б) метод Якоби;

4. Что значит решить систему уравнений?

Решить систему уравнений – это значит найти такие значения переменных, которые обращают каждое  уравнение системы в верное равенство.

5. В чем заключается суть метода Гаусса для решения систем линейных уравнений?

Пусть исходная система выглядит следующим образом

Матрица  называется основной матрицей системы,  — столбцом свободных членов.

Тогда, согласно свойству элементарных преобразований над строками, основную матрицу этой системы можно привести к ступенчатому виду (эти же преобразования нужно применять к столбцу свободных членов):

При этом будем считать, что базисный минор (ненулевой минор максимального порядка) основной матрицы находится в верхнем левом углу, то есть в него входят только коэффициенты при переменных  Тогда переменные  называются главными переменными. Все остальные называются свободными.

Если хотя бы одно число , где , то рассматриваемая система несовместна, т.е. у неё нет ни одного решения.

Пусть  для любых .

Перенесём свободные переменные за знаки равенств и поделим каждое из уравнений системы на свой коэффициент при самом левом  (, где  — номер строки):

,где 

Если свободным переменным системы (2) придавать все возможные значения и решать новую систему относительно главных неизвестных снизу вверх (то есть от нижнего уравнения к верхнему), то мы получим все решения этой СЛАУ. Так как эта система получена путём элементарных преобразований над исходной системой (1), то по теореме об эквивалентности при элементарных преобразованиях системы (1) и (2) эквивалентны, то есть множества их решений совпадают.

6. В чем заключается суть метода Жордана-Гаусса для решения систем линейных уравнений?

 В отличии от метода Гаусса, в методе Жордано-Гаусса применяют правила прямоугольника, когда направление поиска решения происходит по главной диагонали (преобразование к единичной матрице). В методе Гаусса направление поиска решения происходит по столбцам (преобразование к системе с треугольной матрицей). 

7. В чем заключается суть метода простой итерации для решения систем уравнений?

По своей сути, итерационный метод заключается в выполнении некоторого итерационного процесса до тех пор, пока решение системы уравнений не будет найдено с необходимой точностью. В свою очередь итерационный процесс на каждом своем шаге строит некоторое приближение искомого решения. Рассмотрим систему линейных алгебраических уравнений следующего вида: .

 Для того, чтобы построить итеративную процедуру метода Якоби, необходимо провести предварительное преобразование системы уравнений  к итерационному виду . Оно может быть осуществлено по одному из следующих правил:

  •  
  •  
  •  

где в принятых обозначениях D означает матрицу, у которой на главной диагонали стоят соответствующие элементы матрицы A, а все остальные нули; тогда как матрицы U и L содержат верхнюю и нижнюю треугольные части A, на главной диагонали которых нули,  — единичная матрица. Тогда процедура нахождения решения имеет вид:

Или в виде поэлементной формулы:

,где  счётчик итерации.

В отличие от метода Гаусса-Зейделя мы не можем заменять  на   в процессе итерационной процедуры, так как эти значения понадобятся для остальных вычислений. Это наиболее значимое различие между методом Якоби и методом Гаусса-Зейделя решения СЛАУ. Таким образом на каждой итерации придётся хранить оба вектора приближений: старый и новый.

Достаточное условие сходимости метода: Пусть . Тогда при любом выборе начального приближения :

  •  метод сходится;
  •  скорость сходимости метода равна скорости сходимости геометрической прогрессии со знаменателем ;
  •  верна оценка погрешности: .

Условие окончания итерационного процесса при достижении точности  в упрощённой форме имеет вид:

8. Как привести систему к виду с преобладающими диагональными коэффициентами?

Рассмотрим систему линейных уравнений следующего вида:

Приводим исходную систему к виду с преобладающими диагональными коэффициентами.Для этого, например первое уравнение запишем третьим, третье уравнение умножим на 2, вычтем второе и запишем на первом месте, а второе уравнение умножим на 2, вычтем первое и запишем на втором месте.

Коэффициенты, расположенные по диагонали и подчеркнутые, являются преобладающими по строке.

Составляем матрицы коэффициентов при неизвестных в левой части и свободных членов. 

Получаем преобразованную систему.

Разделим для этого каждое уравнение на свой диагональный коэффициент и выразим из каждого уравнения диагональное неизвестное.

9. В чем заключается суть метода Зейделя для решения систем уравнений?

. Возьмём систему:

 

И покажем, как её можно решить с использованием метода Гаусса-Зейделя.

Чтобы пояснить суть метода, перепишем задачу в виде:

Здесь в -м уравнении мы перенесли в правую часть все члены, содержащие  , для . Эта запись может быть представлена: где в принятых обозначениях  означает матрицу, у которой на главной диагонали стоят соответствующие элементы матрицы , а все остальные нули; тогда как матрицы  и содержат верхнюю и нижнюю треугольные части , на главной диагонали которых нули. Итерационный процесс в методе Гаусса-Зейделя строится по формуле  после выбора соответствующего начального приближения .

Метод Гаусса-Зейделя можно рассматривать как модификацию метода Якоби. Основная идея модификации состоит в том, что новые значения  используются здесь сразу же по мере получения, в то время как в методе Якоби они не используются до следующей итерации:

где 

Таким образом, i-тая компонента -го приближения вычисляется по формуле:

Достаточное условие сходимости метода: Пусть , где  – матрица, обратная к . Тогда при любом выборе начального приближения :

  •  метод Гаусса-Зейделя сходится;
  •  скорость сходимости метода равна скорости сходимости геометрической прогрессии со знаменателем ;
  •  верна оценка погрешности: .

Условие окончания итерационного процесса Зейделя при достижении точности  в упрощённой форме имеет вид: . Более точное условие окончания итерационного процесса имеет вид: .

← Предыдущая
Страница 1
Следующая →

Кафедра физики и методики обучения физике Отчет по лабораторной работе №4 РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ Найти решение системы линейных алгебраических уравнений  методом Гаусса

У нас самая большая информационная база в рунете, поэтому Вы всегда можете найти походите запросы

Искать ещё по теме...

Похожие материалы:

На лаштування інформаційної бази. Введення початкових залишків

Лабораторна робота. Мета: отримання навичок із створення інформаційної бази для організації обліку торговельної діяльності; заповнення параметрів облікової політики; встановлення прав користувача; введення початкових залишків.

Химические и физико-химические методы контроля состояния воздуха и газовых потоков

Для контроля применяют методы качественного и количественного анализа. Индикационный метод. Классификация экологической обстановки. Ранжирование нарушений экосистем.

Обучение персонала на предприятиях индустрии гостеприимства

Дипломный проект. Корпоративная система обучения персонала. Обучение персонала гостиничных предприятий. Методика обучения персонала гостиниц. Анализ системы управления и обучения персонала. Рекомендации по обучению персонала с учетом уровня знаний сотрудников. Гостеприимство в России.

Инвестиции и инвестиционная деятельность

Сущность инвестиций и их экономическое значение. Инвестиционная деятельность. Государственная инвестиционная политика и механизм инвестиционного рынка.

Учебно-методический комплекс дисциплины Гражданский  процесс

Учебно-методический комплекс составлен в соответствии с требованиями Федерального государственного образовательного стандарта   высшего профессионального образования по направлению «Юриспруденция»

Сохранить?

Пропустить...

Введите код

Ok