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

Задание:

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

Заголовок функции такого вида:

function C = matrix_multiply(A,B)

function C=matrix_multiply(A,B)

n=size(A);

C=zeros(size(A));

for i= 1:1:n

for j=1:1:n

C(i,j)=A(i,j)*B(i,j);

end

end

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

Заголовок функции такого вида:

function X = CramersMethod(A,B)

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 = GaussMethod(A,B)

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)

Заголовок функции такого вида:

function X = GaussInverse(A,B)

function C=GaussInverse(A,B)

n=size(A,2);

d=Gauss(A,B);

d=transpose(d);

C=zeros(size(A));

for i= 1:n

C(i,:)=A(i,:)*d(i,1);

end

Соседние файлы в папке Линейная Алгебра