Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1 семестр / Линейная Алгебра / 23_Кучеренко Антон_Модуль4

.docx
Скачиваний:
50
Добавлен:
05.06.2015
Размер:
13.83 Кб
Скачать

1) Написать функцию реализующую умножение двух матриц по определению

>> A=[1 2 3;1 0 1;5 4 3]

A =

1 2 3

1 0 1

5 4 3

>> B=[6 5 7;5 3 0;7 7 7]

B =

6 5 7

5 3 0

7 7 7

>>matrix_multiply(A,B)

ans =

37 32 28

13 12 14

71 58 56

function C=matrix_multiply(A,B)

n=size(A);

C=zeros(size(A));

for i= 1:1:n;

for j=1:1:n;

P=0;

for k=1:1:n;

P=P+A(i,k)*B(k,j);

end

C(i,j)=P;

end

end

2) Написать функцию реализующую метод Крамера для системы произвольной размерности

function X=CramersMethod(A,B)

n=size(A);

dx=zeros(size(A));

X=zeros(size(B));

d=det(A);

for j = 1:1:n

for i=1:1:n

if j==1

c=[B A(:,j+1)];

elseif j~=1

c=[A(:,1) B];

end

dx(j)=det(c);

end

X(j)=X(j)+dx(j)/d;

end

3) Написать функцию реализующую метод Гаусса для системы произвольной размерности

function x=Gauss(A,B)

n = size(A);

C = [A(:,1:n(1,2)) B(:,1)];

m = size(C);

for j = 1:n(1,2)-1

for k = j+1:n(1,1)

C(k,:) = C(k,:)-C(j,:).*C(k,j)./C(j,j);

end;

end;

for t = m(1,2)-1:-1:2

for l = t-1:-1:1

C(l,:) = C(l,:)-C(t,:).*C(l,t)./C(t,t);

end;

end;

for i = 1:n(1,1)

k = 0;

for j = 1:m(1,2)-1

k = k+1;

end;

if k == m(1,2) && C(i,j+1)~=0

disp('Решений нет');

end;

k=0;

for j = 1:m(1,2)

if C(i,j) == 0

k = k+1;

end;

if k == m(1,2)

disp('Бесконечно много решений');

end;

end;

end;

for i = 1:n(1,1)

for j = i:i

x(j) = (C(i,m(1,2)))/C(i,j);

end;

end;

end

4) Написать функцию реализующую вычисление обратной матрицы, используя уже написанную функцию из пункта 3)