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.