- •1.Решение:
- •Зададим вектор-столбец свободных членов:
- •Сравнительная характеристика методов:
- •Контрольные вопросы
- •6. В чем заключается суть метода Жордана-Гаусса для решения систем линейных уравнений?
- •7. В чем заключается суть метода простой итерации для решения систем уравнений?
- •8. Как привести систему к виду с преобладающими диагональными коэффициентами?
- •9. В чем заключается суть метода Зейделя для решения систем уравнений?
МАРИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Кафедра физики и методики обучения физике
Отчет по лабораторной работе №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
Зададим матрицу системы, приведенной к виду, пригодному для метода простой итерации:
-->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.
