Entry 3454

pliki z pierwszych zajec

   

Submitted by joru on March 30, 2010 at 1:01 p.m.
Language: Matlab. Code size: 1.3 KB.

%plik odwracaj.m
function[b]=odwracaj(a) 
%funckja odwraca macierz A
b=eye(size(a));
[n,m]=size(a); 
if n~=m 
	disp('Macierz nie jest kwadratowa') ;
	break 
end 
if det(a)==0
	disp('Macierz jest osobliwa') ;
	break 
end 
for i=1:n-1
	for j=i+1:n 
		l=a(j,i)/a(i,i) ;
		a(j,:)=a(j,:)-l*a(i,:); 
		b(j,:)=b(j,:)-l*b(i,:);
	end 
end 
for i=n:-1:2 
	for j=i-1:-1:1 
		b(j,:)=b(j,:)-a(j,i)/a(i,i)*b(i,:) ;
	end 
end 
for i=1:n
	b(i,:)=b(i,:)/a(i,i);
end;


%plik slove.m
function[b]=slove(a,b) 
[n,m]=size(a); 
[k,_ignore]=size(b(:));
if n~=m 
	disp('Macierz A nie jest kwadratowa') ;
	break 
end 
if k~=m
	disp('Macierz B nie pasuje do A') ;
	break 
end 
if det(a)==0
	disp('Macierz jest osobliwa') ;
	break 
end 
% koniec sprawdzania danych wejsciowych
%zerowanie dolnego trojkata A
for i=1:n-1
	for j=i+1:n 
		l=a(j,i)/a(i,i) ;
		a(j,:)=a(j,:)-l*a(i,:); 
		b(j)=b(j)-l*b(i);
	end 
end 
%koniec, A jest m.trojkatna gorna
%teraz podstawiamy od dolu, czyli zerujemy gorny trojkat A
for i=n:-1:2 
   for j=i-1:-1:1 
      b(j)=b(j)-a(j,i)/a(i,i)*b(i) ;
      %a(j,:)=a(j,:)-a(j,i)/a(i,i)*a(i,:)
      %ale zer nie wpisujemy, bosmy lenie ;)
   end 
end 
%w A sa wartosci niezerowe tylko na przekatnej
%wynik wpisujemy do b
for i=1:n
	b(i)=b(i)/a(i,i);
end;

This snippet took 0.01 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).