
1 семестр_1 / ЛА / Модуль 4 / МП-12_Николаев_Олег_lab2_m4
.docxОтчет к упражнению 1
Написать функцию реализующую умножение двух матриц по определению
Заголовок функции такого вида:
function C = matrix_multiply(A,B)
function C=matrix_multiply(A,B)
[m,n]=size(A);
[n1,q]=size(B);
if(n1~=n)
C='Inner matrix dimensions must agree.'
return
end
for i= 1:1:m
for j=1:1:q
S=0;
for k=1:1:n
S=S+A(i,k)*B(k,j);
end
C(i,j)=S;
end
end
end
Отчет к упражнению 2
Написать функцию реализующую метод Крамера для системы произвольной размерности
Заголовок функции такого вида:
function X = CramersMethod(A,B)
function X = CramersMethod(A,B)
n=size(A);
d=det(A);
if(d==0)
X='Нет решений'
return
end
for j=1:1:n
C=A;
C(:,j)=B;
X(j)=det(C)/d;
end
X=X.';
end
Отчет к упражнению 3
Написать функцию реализующую метод Гаусса для системы произвольной размерности
Заголовок функции такого вида:
function X = GaussMethod(A,B)
function X = GaussMethod(A,B)
C=[A -B];
[m,n]=size(C);
for i=2:1:m
for j=1:1:i-1
k=C(j,j)/C(i,j);
C(i,:)=C(i,:).*k-C(j,:);
end
end
if(C(n:1:m,n)~=0)
X='Нет решений'
return
end
for j=n-1:-1:1
X(j)=-sum(C(j,j+1:1:n))./C(j,j);
C(:,j)=C(:,j).*X(j);
end
X=X.';
end
Отчет к упражнению 4
Написать функцию реализующую вычисление обратной матрицы, используя уже написанную функцию из пункта 3)
Заголовок функции такого вида:
function X = GaussInverse(A,B)
function X = GaussInverse(A)
if(det(A)==0)
X='Обратной матрицы не существует'
return
end
E=eye(size(A));
X=zeros(size(A));
for j=1:1:size(E,2)
X(:,j)=GaussMethod(A,E(:,j));
end
end
Отчет к упражнению 5
Сравнить скорость работы функций с встроенными в MATLAB функциями для решения систем и нахождения обратных матриц.
A=[2 3 1;3 1 -1;2 -1 5];
B=[11;2;15];
tic
inv(A);
toc
Elapsed time is 0.000103 seconds.
tic
GaussInverse(A);
toc
Elapsed time is 0.027727 seconds.