Sprawozdanie
Dawid Kasiński
Grupa T11A
14.11.2011r
Przedmiot: Technika obliczeniowa i symulacja (Labolatoria)
Temat: Temat 3
Zadanie 1. Napisz algorytm metody Gaussa.
mA=rand(4);
vb=rand(4,1);
mAb=[mA,vb];
mAb(1,:)=mAb(1,:)/mAb(1,1);
mAb(2:end,:)=mAb(2:end,:)-mAb(2:end,1)*mAb(1,:);
mAb(2,:)=mAb(2,:)/mAb(2,2);
mAb(3:end,:)=mAb(3:end,:)-mAb(3:end,2)*mAb(2,:);
mAb(3,:)=mAb(3,:)/mAb(3,3);
mAb(4:end,:)=mAb(4:end,:)-mAb(4:end,3)*mAb(3,:);
mAb(4,:)=mAb(4,:)/mAb(4,4);
mAb(1:(end-1),end)=mAb(1:(end-1),end)-mAb(end,end)*mAb(1:(end-1),end-1);
mAb(1:(end-1),end-1)=zeros(size(mAb(1:(end-1),end-1)));
mAb(1:(end-2),end)=mAb(1:(end-2),end)-mAb(end-1,end)*mAb(1:(end-2),end-2);
mAb(1:(end-2),end-2)=zeros(size(mAb(1:(end-2),end-2)));
mAb(1:(end-3),end)=mAb(1:(end-3),end)-mAb(end-2,end)*mAb(1:(end-3),end-3);
mAb(1:(end-3),end-3)=zeros(size(mAb(1:(end-3),end-3))) ;
Zadanie 2. Napisz algorytm metody Cramera
mA=rand(4);
vb=rand(4,1);
det Ma= det(mA);
if det mA==0 disp(‘układ równań osobliwych); return;end
for i=1; size (mA,2)
mA1=mA; mA1(: , i)=vb;
x(i,1)= det(mA1)/det(mA);
end
disp(‘rozwiązanie wynosi’)
x
Wnioski:
Algorytm dla metody Gaussa ma w sobie jakieś nie scisłości i jest nie skończony, nie potrafiłem go poprawić pomimo wielu prób. Metoda Cramera- Jeżeli macierz jest osobliwa program nie obliczy wyników, algorytm jest krótki ale program ma swoje wady gdyż dla dużych układów równań metoda ta jest mało efektywna ze względu na dużą złożoność obliczeniową.