20.07.2013 Views

Software matematic

Software matematic

Software matematic

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

86 Algebră liniară în MATLAB<br />

Să presupunem că b s-a init¸ializat cu b=A*ones(n,1). Un astfel de sistem are<br />

solut¸iax = [1,1,...,1] T . Operatorul \ ne dă, pentru n=100<br />

>> x=A\b;<br />

>> reshape(x,10,10)<br />

ans =<br />

1 1 1 1 1 1 0 0 0 0<br />

1 1 1 1 1 1 0 0 0 0<br />

1 1 1 1 1 1 0 0 0 0<br />

1 1 1 1 1 0 0 0 0 0<br />

1 1 1 1 1 0 0 0 0 0<br />

1 1 1 1 1 0 0 0 0 0<br />

1 1 1 1 1 0 0 0 0 0<br />

1 1 1 1 1 0 0 0 0 0<br />

1 1 1 1 1 0 0 0 0 0<br />

1 1 1 1 1 0 0 0 0 1<br />

>> norm(b-A*x)/norm(b)<br />

ans =<br />

0.3191<br />

rezultat total eronat, des¸i A este bine condit¸ionată<br />

>> cond(A)<br />

ans =<br />

44.8023<br />

Dacă rezolvăm folosind metoda QR, se obt¸ine<br />

>> [Q,R]=qr(A);<br />

>> x2=R\(Q’*b);<br />

>> x2’<br />

ans =<br />

Columns 1 through 6<br />

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000<br />

...<br />

Columns 97 through 100<br />

1.0000 1.0000 1.0000 1.0000<br />

>> norm(b-A*x2)/norm(b)<br />

ans =<br />

8.6949e-016<br />

Funct¸ia linsolve permite rezolvarea mai rapidă a sistemelor de ecuat¸ii liniare<br />

prin specificarea matricei sistemului. Apelată sub forma<br />

x = linsolve(A,b,opts)<br />

rezolvă sistemul liniar A*x=b, selectând un rezolvitor adecvat în funct¸ie de proprietăt¸ile<br />

matricei A, descrise de structura opts. Nu se face nici un test pentru a

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!