plik


ÿþAdam Szustalewicz Matematyka obliczeniowa 2002/2003 w.10 16.12.02 WykBad 10: Metody numeryczne: Metoda eliminacji Gaussa 1. Terminy egzaminu: 1. Kolokwium: ? 2. Egzamin: 1. ? 2. ? 3. (popr.) ? 2. Obliczanie warto[ci wyznacznika (prosze obejrze i zastanowi sie nad tre[ciami funkcji, skryptów, ... nadesBanych przez stu- dentów) " Katarzyna Zima: %program na liczenie wyznacznika przez doprowadzenie macierzy do macierzy trójkatnej function r=wyzn(A) [n,m]=size(A) k=2; if n~=m r= n~=m ;break end if n==1 r=A(1,1); else for j=1:(m-1) for i=k:n A(i,:)=A(i,:)-A(j,:)*A(i,j)/A(j,j); end k=k+1; end s=1; for i=1:n s=s*A(i,i); end r=s end " Marta Stój: clc,clear,close all % Obliczanie wyznacznika za pomoca metody eliminacji % "A" jest to macierz diagonalna % "w" jest wartoscia wyznacznika fprintf( Podaj macierz A w podanej ponizej postaci\n ); fprintf( [a11,...,a1n;...;an1,...,ann]\n ); A=input( A=  ); n=length(A); for i=2:n j=1; while j<i while A(i,j)~=0 A(i,j:n)=A(1,j:n)-A(1,j)./A(i,j).*A(i,j:n); end j=j+1; 1 Adam Szustalewicz Matematyka obliczeniowa 2002/2003 w.10 16.12.02 end end A w=A(1,1); for l=2:n w=w*A(l,l); end w " Sebastian Szczepkowicz: function z=wyzn(A) %Jest to program do obliczania wyznacznika %macierzy metoda podana na wykladzie [n m]=size(A); if(n~=m) disp( Podana macierz nie jest kwadratowa! ) break end for(k=1:(n-1)) for(i=(k+1):n) A(i,:)=A(i,:)-A(k,:).*(A(i,k)/A(k,k)); end end A z=1; disp( Wartosc wyznacznika macierzy A wynosi: ) for(i=1:n) z=z*A(i,i); end " Dawid BogdaDski: %Dawid BogdaDski %skrypt ten sluzy do wyliczenia wyznacznika macierzy [n*n] %nalezy podac macierz np [1 2 3;4 5 6;7 8 9] %ZMIENNE: %A - macierz %i - numer wiersza %j - numer kolumny %k - numer kolumny w petli %wsp - wspolczynnik w odejmowaniu wierszy %n, m - wymiar macierzy %wyznacznik - bez komentarza clc;clear;close all; A=input( Podaj macierz  ) [n m]=size(A); if n~=m, %aby policzyc wyznacznik macierz musi byc n*n disp( To nie jest macierz kwadratowa ) break end fprintf( Wyznacznik: %d\n\n ,det(A)) for j=1:n-1 %biore kolumny od 1-wszej do n-1 for i=j+1:n wsp=A(i,j)/A(j,j); for k=j:n %k - sluzy do okreslania kolumn A(i,k)=A(i,k)-(A(j,k)*wsp); end 2 Adam Szustalewicz Matematyka obliczeniowa 2002/2003 w.10 16.12.02 end end fprintf( Tak wyglada macierz po przeksztalceniu:\n\n ) disp(A) wyznacznik=A(1,1); %licze wyznacznik for i=2:n wyznacznik=wyznacznik*A(i,i); end fprintf( a jej wyznacznik wynosi: %d\n ,wyznacznik) 2a. Obliczanie wyznacznika macierzy trójkatnej (pomysB p. BogdaDskiego) " skrypt %nie wiem ktora metoda liczenia wyznacznika jest lepsza bo nawet %z macierza 100*100 czas liczenia wyznacznika u mnie na komputerze %byl rowny 0.Na pracowni w instytucie wyszlo mi ze chyba ten drugi %sposob jest szybszy. %mozna jeszcze zmierzyc czas dzialania calego %programu i porownac go z czasem wykonywania funkcji det(A) - na %pracowni wyszlo mi ze moja metoda jest ok 10 razy wolniejsza od det(A) clc;clear;close all; A=input( Podaj macierz  ) [n m]=size(A); if n~=m, disp( To nie jest macierz kwadratowa ) break end tic; B=mac(A,n); fprintf( Tak wyglada macierz po przeksztalceniu:\n\n ) disp(B) ktora=input( Która metoda policzy (1 czy 2)? -  ); if ktora==1 tic; w=wyzn1(B,n); t1=toc; elseif ktora==2 tic; w=wyzn2(B,n); t1=toc; else break end disp([ Czas liczenia wyznacznika:  ,num2str(t1)]) fprintf( Wyznacznik wynosi: %d\n ,w) " funkcje: function w=wyznacznik1(A,n) wyznacznik1=A(1,1); for i=2:n wyznacznik1=wyznacznik1*A(i,i); end w=wyznacznik1; %================% function w=wyznacznik(A,n) w=prod(diag(A)); %================% function B=macierz(A,n) 3 Adam Szustalewicz Matematyka obliczeniowa 2002/2003 w.10 16.12.02 for j=1:n-1 for i=j+1:n wsp=A(i,j)/A(j,j); for k=j:n A(i,k)=A(i,k)-(A(j,k)*wsp); end end end B=A; %================% 2b. Obliczanie wyznacznika macierzy przekatniowej (test czasu operacji macierzowych) " test czasu obliczen % test czasu % asz 13.12.02 % otrzymane wyniki: 1.54 i 11.7 , 1.65 i 11.48 .... % clc;clear;close all; ile=1024^2; A=hilb(10); [m n]=size(A); disp(  ) % metoda 1: tic for ii=1:ile wyznacznik=A(1,1); for i=2:n wyznacznik=wyznacznik*A(i,i); end w=wyznacznik; end t1=toc; disp([ Czas liczenia wyznacznika met. 1:  ,num2str(t1)]) disp(  ) % metoda 2: tic for ii=1:ile w=prod(diag(A)); end t1=toc; disp([ Czas liczenia wyznacznika met. 2:  ,num2str(t1)]) disp(  ) 3. Rozwiazywanie ukBadu równaD liniowych 1. program function [x,err]=rozwuklrlin(a,b,wybor) % Dane: % rozwiazujemy ukl. r. lin. ax=b z macierza kwadratowa a. % wybor=1 - zwykla metoda eliminacji Gaussa, % wybor=2 - z czesciowym wyborem elementow glownych, % wybor=3 - z pelnym wyborem elementow glownych. % Wyniki: % err=0 - rozwiazanie poprawne, 4 Adam Szustalewicz Matematyka obliczeniowa 2002/2003 w.10 16.12.02 % err=1 - brak rozwiazania; % macierz ukladu jest osobliwa lub zle sa rozmiary danych. % x - rozwiazanie otrzymane gdy err=0 . % err=1; n=size(a,1); if n ~= size(a,2) | n ~= size(b,1), x=1; return; end a=[a b]; n1=n+1; numer=1:n; err=0; % eliminacja: for i=1:n-1 if wybor==2 % czesciowy [r,w]=max(abs(a(i:n,i))); w=w+i-1; if i~=w r=a(i,:); a(i,:)=a(w,:); a(w,:)=r; end elseif wybor==3 % pelny [r,w]=max(abs(a(i:n,i:n))); [r,k]=max(r); w=w(k)+i-1; k=k+i-1; numer(i)=k; if i~=w r=a(i,:); a(i,:)=a(w,:); a(w,:)=r; end if i~=k r=a(:,i); a(:,i)=a(:,k); a(:,k)=r; end end if abs(a(i,i))<1e-30, err=1; break; end i1=i+1; for w=i1:n a(w,i1:n1)=a(w,i1:n1)-a(w,i)/a(i,i)*a(i,i1:n1); end end %i if err, x=1; return; end % postepowanie odwrotne: x=zeros(n,1); for w=n:-1:1 r=a(w,n1); for j=n:-1:w+1 r=r-a(w,j)*x(j); end if abs(a(w,w))<1e-30, err=1; x=1; return; end x(w)=r/a(w,w); end for w=n:-1:1 if w ~= numer(w) i=numer(w); r=x(i); x(i)=x(w); x(w)=r; end end %================================% clear; clc for n=10:13 5 Adam Szustalewicz Matematyka obliczeniowa 2002/2003 w.10 16.12.02 fprintf( n = %i  ,n); x0=ones(n,1); %x0=[n:-1:1] ; A=hilb(n); A=rot90(rot90(A)); b=A*x0; format long e fprintf( det(A) = %10.5e\n ,det(A)); x=A\b; fprintf( dzielenie lewe: x=A\\b\n ); [abserr,i]=max(abs(x-x0)); fprintf( rozw: max |x(i)-x0(i)| = %10.5e dla i = %i \n , abserr, i); [relerr,i]=max(abs((x-x0)./x0)); fprintf( rozw: max |x(i)-x0(i)|/|x0(i)| = %10.5e dla i = %i \n , relerr, i); fprintf( rozw: norm(x(i)-x0(i)) = %10.5e \n , norm(x -x0 )); fprintf( rozw: norm((x(i)-x0(i))/x0(i)) = %10.5e \n , norm((x -x0 )./x0 )); res=A*x-b; [absres,i]=max(abs(res )); fprintf( residua: max |res(i)| = %10.5e dla i = %i \n\n , absres, i); x=inv(A)*b; fprintf( macierz odwrotna: x=inv(A)*b \n ); [abserr,i]=max(abs(x-x0)); fprintf( rozw: max |x(i)-x0(i)| = %10.5e dla i = %i \n , abserr, i); [relerr,i]=max(abs((x-x0)./x0)); fprintf( rozw: max |x(i)-x0(i)|/|x0(i)| = %10.5e dla i = %i \n , relerr, i); fprintf( rozw: norm(x(i)-x0(i)) = %10.5e \n , norm(x -x0 )); fprintf( rozw: norm((x(i)-x0(i))/x0(i)) = %10.5e \n , norm((x -x0 )./x0 )); res=A*x-b; [absres,i]=max(abs(res )); fprintf( residua: max |res(i)| = %10.5e dla i = %i \n\n , absres, i); x=invhilb(n)*b; fprintf( macierz odwrotna do m. Hilberta: x=invhilb(n)*b \n ); [abserr,i]=max(abs(x-x0)); fprintf( rozw: max |x(i)-x0(i)| = %10.5e dla i = %i \n , abserr, i); [relerr,i]=max(abs((x-x0)./x0)); fprintf( rozw: max |x(i)-x0(i)|/|x0(i)| = %10.5e dla i = %i \n , relerr, i); fprintf( rozw: norm(x(i)-x0(i)) = %10.5e \n , norm(x -x0 )); fprintf( rozw: norm((x(i)-x0(i))/x0(i)) = %10.5e \n , norm((x -x0 )./x0 )); res=A*x-b; [absres,i]=max(abs(res )); fprintf( residua: max |res(i)| = %10.5e dla i = %i \n\n , absres, i); for w=1:3 fprintf( wariant = %i\n ,w); [x,err]=rozwuklrlin(A,b,w); if err, disp( blad ); return; end [abserr,i]=max(abs(x-x0)); fprintf( rozw: max |x(i)-x0(i)| = %10.5e dla i = %i \n , abserr, i); [relerr,i]=max(abs((x-x0)./x0)); fprintf( rozw: max |x(i)-x0(i)|/|x0(i)| = %10.5e dla i = %i \n , relerr, i); fprintf( rozw: norm(x(i)-x0(i)) = %10.5e \n , norm(x -x0 )); fprintf( rozw: norm((x(i)-x0(i))/x0(i)) = %10.5e \n , norm((x -x0 )./x0 )); res=A*x-b; [absres,i]=max(abs(res )); fprintf( residua: max |res(i)| = %10.5e dla i = %i \n\n , absres, i); end % w end % n 6 Adam Szustalewicz Matematyka obliczeniowa 2002/2003 w.10 16.12.02 2. wyniki n = 10 det(A) = 2.16443e-053 dzielenie lewe: x=A\b rozw: max |x(i)-x0(i)| = 6.59440e-004 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 6.59440e-004 dla i = 4 rozw: norm(x-x0) = 1.06944e-003 rozw: norm((x-x0)./x0) = 1.06944e-003 residua: max |res(i)| = 2.22045e-016 dla i = 6 macierz odwrotna: x=inv(A)*b rozw: max |x(i)-x0(i)| = 1.26912e-003 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 1.26912e-003 dla i = 4 rozw: norm(x-x0) = 1.86823e-003 rozw: norm((x-x0)./x0) = 1.86823e-003 residua: max |res(i)| = 3.83150e-004 dla i = 10 macierz odwrotna do m. Hilberta: x=invhilb(n)*b rozw: max |x(i)-x0(i)| = 3.26378e-004 dla i = 2 rozw: max |x(i)-x0(i)|/|x0(i)| = 3.26378e-004 dla i = 2 rozw: norm(x-x0) = 4.21137e-004 rozw: norm((x-x0)./x0) = 4.21137e-004 residua: max |res(i)| = 2.85108e-005 dla i = 10 wariant = 1 rozw: max |x(i)-x0(i)| = 4.51406e-004 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 4.51406e-004 dla i = 4 rozw: norm(x-x0) = 7.30886e-004 rozw: norm((x-x0)./x0) = 7.30886e-004 residua: max |res(i)| = 4.44089e-016 dla i = 9 wariant = 2 rozw: max |x(i)-x0(i)| = 4.20154e-004 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 4.20154e-004 dla i = 4 rozw: norm(x-x0) = 6.80452e-004 rozw: norm((x-x0)./x0) = 6.80452e-004 residua: max |res(i)| = 4.44089e-016 dla i = 5 wariant = 3 rozw: max |x(i)-x0(i)| = 1.12803e-004 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 1.12803e-004 dla i = 4 rozw: norm(x-x0) = 1.82509e-004 rozw: norm((x-x0)./x0) = 1.82509e-004 residua: max |res(i)| = 4.44089e-016 dla i = 10 n = 11 det(A) = 3.02760e-065 dzielenie lewe: x=A\b rozw: max |x(i)-x0(i)| = 2.40990e-002 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 2.40990e-002 dla i = 4 rozw: norm(x-x0) = 3.81435e-002 rozw: norm((x-x0)./x0) = 3.81435e-002 residua: max |res(i)| = 4.44089e-016 dla i = 10 macierz odwrotna: x=inv(A)*b rozw: max |x(i)-x0(i)| = 3.83427e-002 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 3.83427e-002 dla i = 4 rozw: norm(x-x0) = 5.74069e-002 rozw: norm((x-x0)./x0) = 5.74069e-002 7 Adam Szustalewicz Matematyka obliczeniowa 2002/2003 w.10 16.12.02 residua: max |res(i)| = 6.67994e-003 dla i = 11 macierz odwrotna do m. Hilberta: x=invhilb(n)*b rozw: max |x(i)-x0(i)| = 1.95779e-002 dla i = 3 rozw: max |x(i)-x0(i)|/|x0(i)| = 1.95779e-002 dla i = 3 rozw: norm(x-x0) = 3.46847e-002 rozw: norm((x-x0)./x0) = 3.46847e-002 residua: max |res(i)| = 1.89118e-005 dla i = 11 wariant = 1 rozw: max |x(i)-x0(i)| = 5.75958e-003 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 5.75958e-003 dla i = 4 rozw: norm(x-x0) = 9.11785e-003 rozw: norm((x-x0)./x0) = 9.11785e-003 residua: max |res(i)| = 2.22045e-016 dla i = 6 wariant = 2 rozw: max |x(i)-x0(i)| = 3.62386e-002 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 3.62386e-002 dla i = 4 rozw: norm(x-x0) = 5.73571e-002 rozw: norm((x-x0)./x0) = 5.73571e-002 residua: max |res(i)| = 4.44089e-016 dla i = 10 wariant = 3 rozw: max |x(i)-x0(i)| = 1.64588e-002 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 1.64588e-002 dla i = 4 rozw: norm(x-x0) = 2.60504e-002 rozw: norm((x-x0)./x0) = 2.60504e-002 residua: max |res(i)| = 2.22045e-016 dla i = 6 n = 12 det(A) = 2.60311e-078 Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.735365e-017. (Type "warning off MATLAB:nearlySingularMatrix" to suppress this warning.) > In E:\0102\dydaktyka\023-mat-obliczeniowa\2003\w910\testrozwuklrlin.m at line 10 dzielenie lewe: x=A\b rozw: max |x(i)-x0(i)| = 1.34155e-002 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 1.34155e-002 dla i = 4 rozw: norm(x-x0) = 2.13345e-002 rozw: norm((x-x0)./x0) = 2.13345e-002 residua: max |res(i)| = 2.22045e-016 dla i = 6 Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.397469e-017. > In E:\0102\dydaktyka\023-mat-obliczeniowa\2003\w910\testrozwuklrlin.m at line 21 macierz odwrotna: x=inv(A)*b rozw: max |x(i)-x0(i)| = 8.98991e-001 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 8.98991e-001 dla i = 4 rozw: norm(x-x0) = 1.25056e+000 rozw: norm((x-x0)./x0) = 1.25056e+000 residua: max |res(i)| = 5.33780e-002 dla i = 12 macierz odwrotna do m. Hilberta: x=invhilb(n)*b rozw: max |x(i)-x0(i)| = 4.92120e-001 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 4.92120e-001 dla i = 4 rozw: norm(x-x0) = 6.76726e-001 rozw: norm((x-x0)./x0) = 6.76726e-001 8 Adam Szustalewicz Matematyka obliczeniowa 2002/2003 w.10 16.12.02 residua: max |res(i)| = 5.10909e-002 dla i = 12 wariant = 1 rozw: max |x(i)-x0(i)| = 2.49174e-001 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 2.49174e-001 dla i = 4 rozw: norm(x-x0) = 4.02622e-001 rozw: norm((x-x0)./x0) = 4.02622e-001 residua: max |res(i)| = 1.11022e-016 dla i = 5 wariant = 2 rozw: max |x(i)-x0(i)| = 1.04360e+000 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 1.04360e+000 dla i = 4 rozw: norm(x-x0) = 1.68382e+000 rozw: norm((x-x0)./x0) = 1.68382e+000 residua: max |res(i)| = 4.44089e-016 dla i = 8 wariant = 3 rozw: max |x(i)-x0(i)| = 3.69348e-003 dla i = 5 rozw: max |x(i)-x0(i)|/|x0(i)| = 3.69348e-003 dla i = 5 rozw: norm(x-x0) = 5.69924e-003 rozw: norm((x-x0)./x0) = 5.69924e-003 residua: max |res(i)| = 4.44089e-016 dla i = 12 n = 13 det(A) = 1.89355e-092 Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 9.864959e-019. (Type "warning off MATLAB:nearlySingularMatrix" to suppress this warning.) > In E:\0102\dydaktyka\023-mat-obliczeniowa\2003\w910\testrozwuklrlin.m at line 10 dzielenie lewe: x=A\b rozw: max |x(i)-x0(i)| = 4.11328e+001 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 4.11328e+001 dla i = 4 rozw: norm(x-x0) = 6.99932e+001 rozw: norm((x-x0)./x0) = 6.99932e+001 residua: max |res(i)| = 8.88178e-016 dla i = 7 Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 9.864959e-019. > In E:\0102\dydaktyka\023-mat-obliczeniowa\2003\w910\testrozwuklrlin.m at line 21 macierz odwrotna: x=inv(A)*b rozw: max |x(i)-x0(i)| = 2.86264e+001 dla i = 6 rozw: max |x(i)-x0(i)|/|x0(i)| = 2.86264e+001 dla i = 6 rozw: norm(x-x0) = 4.40703e+001 rozw: norm((x-x0)./x0) = 4.40703e+001 residua: max |res(i)| = 1.41711e-001 dla i = 13 macierz odwrotna do m. Hilberta: x=invhilb(n)*b rozw: max |x(i)-x0(i)| = 3.05647e+001 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 3.05647e+001 dla i = 4 rozw: norm(x-x0) = 3.29710e+001 rozw: norm((x-x0)./x0) = 3.29710e+001 residua: max |res(i)| = 3.49021e+000 dla i = 13 wariant = 1 rozw: max |x(i)-x0(i)| = 3.88894e+001 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 3.88894e+001 dla i = 4 rozw: norm(x-x0) = 6.62962e+001 rozw: norm((x-x0)./x0) = 6.62962e+001 9 Adam Szustalewicz Matematyka obliczeniowa 2002/2003 w.10 16.12.02 residua: max |res(i)| = 1.11022e-015 dla i = 11 wariant = 2 rozw: max |x(i)-x0(i)| = 5.64717e+000 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 5.64717e+000 dla i = 4 rozw: norm(x-x0) = 9.44844e+000 rozw: norm((x-x0)./x0) = 9.44844e+000 residua: max |res(i)| = 4.44089e-016 dla i = 8 wariant = 3 rozw: max |x(i)-x0(i)| = 2.05486e+000 dla i = 4 rozw: max |x(i)-x0(i)|/|x0(i)| = 2.05486e+000 dla i = 4 rozw: norm(x-x0) = 3.51873e+000 rozw: norm((x-x0)./x0) = 3.51873e+000 residua: max |res(i)| = 4.44089e-016 dla i = 13 4. Uwarunkowanie zadania rozwiazywania ukBadu równaD liniowych Rozwiazujemy ukBad równaD Ax = b z macierza nieosobliwa A. Zaburzamy prawa strone b ’! b + ´b ; wtedy zmianie ulega rozwiazanie dokBadne: A (x + ´x) = (b + ´b) . Mozemy napisa: A ´x = ´b czyli ´x = A-1 ´b . Dla zgodnych norm speBnione sa nierówno[ci: ||´x|| d" ||A-1|| ||´b|| oraz ||b|| d" ||A|| ||x|| . Stad otrzymujemy nierówno[ ||´x|| ||´b|| d" ||A|| ||A-1|| . ||x|| ||b|| DEF. Wielko[ cond(A) = ||A|| ||A-1|| nazywamy wskaznikiem uwarunkowania zadania rozwiazywania ukBadu równaD liniowych Ax = b . 5. Zadania 1. Wyznaczy rozwiazania ponizszych ukBadów równaD liniowych. Wyja[ni tak duze róznice pomiedzy rozwiazaniami. 1000 x1 + 2001 x2 = 4003 1000 x1 + 1999 x2 = 4003 oraz x1 + 2 x2 = 4 x1 + 2 x2 = 4 2. Stosujac arytmetyke z 3 cyframi znaczacymi rozwiaza podany nizej ukBad równaD nastepujacymi algo- rytmami: (a) eliminujac z drugiego równania x1, (b) eliminujac niewiadoma x1 z pierwszego równania. .10010 - 3 x1 + .100101 x2 = .100101 .100101 x1 + .100101 x2 = .200101 3. Zaprogramowa rozwiazywanie ukBadu równaD liniowych za pomoca wzorów Cramera (dla chetnych: proponuje opracowa wersje rekurencyjna) i porówna wyniki z wynikami zamieszczonymi w materiaBach... * * * 10

Wyszukiwarka

Podobne podstrony:
@PSI W10a Proces strukturalnego tworzenia oprogramowania
w10a przyklady operacji plikowych (2)
DSaA W10a BinomialHeaps

więcej podobnych podstron