Side 1 av 1

Løse ligninger med rref i MATLAB - kan det gå galt?

Lagt inn: 23/10-2013 23:57
av Flabbrø
Anta at jeg skal løse følgende ligningssystem (størrelsen kan i praksis være en annen):
[tex]\begin{bmatrix}{a_0}^2&{a_0}^1&{a_0}^3\\ {a_1}^2&{a_1}^1&{a_1}^3\\ {a_2}^2&{a_2}^1&{a_2}^3\\ \end{bmatrix} \mathbf{x} = \begin{bmatrix}b_0\\ b_1 \\ b_2 \end{bmatrix}[/tex]
Og at jeg gjør dette i MATLAB ved å radredusere den utvidede matrisen
[tex]\begin{bmatrix}{a_0}^2&{a_0}^1&{a_0}^3 & {b_0}\\ {a_1}^2&{a_1}^1&{a_1}^3&b_1\\ {a_2}^2&{a_2}^1&{a_2}^3&b_2\\ \end{bmatrix}[/tex]
med kommandoen rref.

Hvor stor lit kan jeg feste til svaret? Risikerer jeg at det ødelegges av avrundingsfeil? Er det en annen måte jeg burde gå fram for å løse ligningene?

Re: Løse ligninger med rref i MATLAB - kan det gå galt?

Lagt inn: 24/10-2013 00:58
av Gommle
I MATLAB burde du generelt bruke \-operatoren.

F.eks.

[tex]A\pmb u = \pmb b \ \Leftrightarrow \ \pmb u = A^{-1}\pmb b[/tex]

Some i MATLAB blir

Kode: Velg alt

u = A\b
Om det er en skikkelig svær matrise burde du ta en kikk på sparse-matriser og linsolve

Re: Løse ligninger med rref i MATLAB - kan det gå galt?

Lagt inn: 24/10-2013 23:24
av Flabbrø
Det stemmer, ja. Takk!

Men spørsmålet står fortsatt: Hvor mye kan jeg stole på løsningen? Risikerer jeg å finne en løsning der det ikke finnes? Kan løsningen være rundet av feil?

Re: Løse ligninger med rref i MATLAB - kan det gå galt?

Lagt inn: 24/10-2013 23:35
av Gustav
Si at du skal løse systemet Ax=b der A er en kvadratisk matrise.

Det er jo mulig å tenke seg at det(A) er svært liten slik at den avrundes feilaktig til 0. Da vil det jo få konsekvenser for løsningen.


Du kan jo teste følgende i matlab:

La $0<\epsilon<<1$, og $A=\begin{pmatrix}1+\epsilon&1\\1&1\end{pmatrix}$.

Prøv deg frem med ulike $\epsilon$ og løs systemet $\begin{pmatrix}1+\epsilon&1\\1&1\end{pmatrix}\begin{pmatrix}x_1\\x_2\end{pmatrix}=\begin{pmatrix}1\\2\end{pmatrix}$.

Det skal ha en unik løsning for alle $\epsilon$ ulik 0, og ingen løsning for $\epsilon=0$

Re: Løse ligninger med rref i MATLAB - kan det gå galt?

Lagt inn: 25/10-2013 00:03
av Vaktmester
Leste denne "regelen" om numeriske beregninger en gang: Hvis noe er umulig ved 0, så vil det være vanskelig nær 0. (Vanskelig = vanskelig å gjøre utregningene eller at løsningen ikke god)

Re: Løse ligninger med rref i MATLAB - kan det gå galt?

Lagt inn: 29/10-2013 22:08
av Flabbrø
Mange takk for svarene!