Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет_№4.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
397.82 Кб
Скачать

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

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

Отчет по лабораторной работе №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

p

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.