Konditionstal

Konditionstal är inom numerisk analys ett mått på hur väl ett visst problem lämpar sig för numeriska beräkningar. Ett problem, exempelvis ett linjärt ekvationssystem A x = b {\displaystyle Ax=b\,\!} , kan vara olika känsligt för störningar i högerledet så att det orsakar en förändring i lösningen x {\displaystyle x\,\!} .

Är konditionstalet för en matris till ett problem litet kallas det att matrisen är välkonditionerad, och problemet är lätt att lösa med god noggrannhet. Är konditionstalet istället stort är matrisen illa-konditionerad. Då är problemet känsligare för fel och därmed svårare att lösa med bra noggrannhet. Ett olösligt problem, till exempel att invertera en singulär matris, har oändligt stort konditionstal.

Definition

Konditionstalet av en matris A {\displaystyle A} kan definieras som

κ ( A ) = A 1 A {\displaystyle \kappa (A)=\Vert A^{-1}\Vert \cdot \Vert A\Vert } ,

där {\displaystyle \Vert \cdot \Vert } är någon matrisnorm.

Om man också vill understyka vilken matrisnorm som används kan man t.ex. skriva

κ ( A ) = A 1 A {\displaystyle \kappa (A)=\Vert A^{-1}\Vert _{\infty }\cdot \Vert A\Vert _{\infty }}

som då avser den oändliga matrisnormen, dvs maximala radsumman, av matrisen A {\displaystyle A} .

Härledning

För att härleda konditionstalet, betraktar vi först ett linjärt ekvationssystem A x = b {\displaystyle Ax=b\,\!} som här är ett exakt system med den exakta lösningen x {\displaystyle x\,\!} . Om vi nu har en förändring d b {\displaystyle db\,\!} i högerledet, så kommer vi också att få en förändring d x {\displaystyle dx\,\!} i lösningen.

A ( x + d x ) = b + d b {\displaystyle A(x+dx)=b+db\,\!} , det vill säga A x + A d x = b + d b {\displaystyle Ax+Adx=b+db\,\!} .

Eftersom A x = b {\displaystyle Ax=b\,\!} så är

A d x = d b {\displaystyle Adx=db\,\!}

vilket är ekvivalent med

d x = A 1 d b {\displaystyle dx=A^{-1}db\,\!}

Nästa steg är att uppskatta det relativa felet d x x {\displaystyle {\frac {\Vert dx\Vert }{\Vert x\Vert }}} för uttrycket. Om man först tar normen av uttrycket så fås

d x = A 1 d b A 1 d b {\displaystyle \Vert dx\Vert =\Vert A^{-1}db\Vert \leq \Vert A^{-1}\Vert \cdot \Vert db\Vert }

vilket är en uppskattning av det absoluta felet.

Om man på samma sätt också tar normen av A x = b {\displaystyle Ax=b\,\!} fås

b = A x A x {\displaystyle \Vert b\Vert =\Vert Ax\Vert \leq \Vert A\Vert \cdot \Vert x\Vert }


Av dessa uttryck följer att

b d x A x A 1 d b {\displaystyle \Vert b\Vert \cdot \Vert dx\Vert \leq \Vert A\Vert \cdot \Vert x\Vert \cdot \Vert A^{-1}\Vert \cdot \Vert db\Vert }


och om man slutligen dividerar bägge leden med x {\displaystyle \Vert x\Vert } och b {\displaystyle \Vert b\Vert } får man

d x x A A 1 d b b {\displaystyle {\frac {\Vert dx\Vert }{\Vert x\Vert }}\leq \Vert A\Vert \cdot \Vert A^{-1}\Vert \cdot {\frac {\Vert db\Vert }{\Vert b\Vert }}}

Här ser vi alltså att konditionstalet κ ( A ) = A A 1 {\displaystyle \kappa (A)=\Vert A\Vert \cdot \Vert A^{-1}\Vert } är den skalfaktor som styr hur relativa felet i indata b {\displaystyle b\,\!} påverkar det relativa felet i lösningen x {\displaystyle x\,\!} . Med detta samband kan vi nu uppskatta en övre gräns för känsligheten hos ett linjärt ekvationssystem.

Vad är då det minsta värde som κ ( A ) {\displaystyle \kappa (A)\,\!} kan anta? För ett ekvationssystem där det relativa felet för x {\displaystyle x\,\!} är 1 = x x {\displaystyle 1={\frac {\Vert x\Vert }{\Vert x\Vert }}} , så följer

x x = E = A A 1 A A 1 = κ ( A ) {\displaystyle {\frac {\Vert x\Vert }{\Vert x\Vert }}=\Vert E\Vert =\Vert A\cdot A^{-1}\Vert \leq \Vert A\Vert \cdot \Vert A^{-1}\Vert =\kappa (A)} , där E {\displaystyle E\,\!} är enhetsmatrisen.
Alltså är κ ( A ) 1 {\displaystyle \kappa (A)\geq 1}

Också matrisen kan innehålla störningar. Uttrycket för att uppskatta känsligheten hos lösningen ser då ut såhär:

d x x κ ( A ) 1 r ( d A A + d b b ) {\displaystyle {\frac {\Vert dx\Vert }{\Vert x\Vert }}\leq {\frac {\kappa (A)}{1-r}}{\Bigg (}{\frac {\Vert dA\Vert }{\Vert A\Vert }}+{\frac {\Vert db\Vert }{\Vert b\Vert }}{\Bigg )}} där r = d A A 1 {\displaystyle r=\Vert dA\Vert \cdot \Vert A^{-1}\Vert } och r < 1 {\displaystyle r<1\,\!}

Tillämpning

Exempel

Vi vill bestämma en övre gräns för d x x {\displaystyle {\frac {\Vert dx\Vert _{\infty }}{\Vert x\Vert _{\infty }}}} till ett givet ekvationssystem A x = b ¯ {\displaystyle Ax={\bar {b}}\,\!} , där

A = ( 0.6 0.25 0.4 0.2 ) {\displaystyle A={\begin{pmatrix}0.6&0.25\\0.4&0.2\end{pmatrix}}} , A 1 = ( 10 12.5 20 30 ) {\displaystyle A^{-1}={\begin{pmatrix}10&-12.5\\-20&30\end{pmatrix}}} och b ¯ = ( 1.000 0.400 ) {\displaystyle {\bar {b}}={\begin{pmatrix}1.000\\0.400\end{pmatrix}}} .

Elementen i b ¯ {\displaystyle {\bar {b}}\,\!} är givna med tre korrekta decimaler. Det innebär att vi har ett fel i b ¯ {\displaystyle {\bar {b}}\,\!} som är 0.5 10 3 {\displaystyle \leq 0.5\cdot 10^{-3}} , dvs d b = ( 0.5 10 3 0.5 10 3 ) {\displaystyle db={\begin{pmatrix}0.5\cdot 10^{-3}\\0.5\cdot 10^{-3}\end{pmatrix}}}

Vi ska alltså beräkna d x x κ ( A ) d b b {\displaystyle {\frac {\Vert dx\Vert _{\infty }}{\Vert x\Vert _{\infty }}}\leq \kappa (A)_{\infty }\cdot {\frac {\Vert db\Vert _{\infty }}{\Vert b\Vert _{\infty }}}} .

Konditionstalet för A {\displaystyle A} är

κ ( A ) = A 1 A = 0.85 50 = 42.5 {\displaystyle \kappa (A)=\Vert A^{-1}\Vert _{\infty }\cdot \Vert A\Vert _{\infty }=0.85\cdot 50=42.5} .

Normen av b ¯ {\displaystyle {\bar {b}}} är

b ¯ = max ( 1 , 0.4 ) = 1 {\displaystyle \Vert {\bar {b}}\Vert _{\infty }=\max(1,0.4)=1} .

Normen av d b {\displaystyle db\,\!} är

d b = 0.5 10 3 {\displaystyle \Vert db\Vert _{\infty }=0.5\cdot 10^{-3}} .

Gränsen för den relativa felet i lösningen blir då

d x x 42.5 0.5 10 3 1 0.022 {\displaystyle {\frac {\Vert dx\Vert _{\infty }}{\Vert x\Vert _{\infty }}}\leq 42.5\cdot {\frac {0.5\cdot 10^{-3}}{1}}\leq 0.022}

Referenser

Eldén, Lars; Linde Wittmeyer-Koch (2001). Numeriska beräkningar -analys och illustrationer med MATLAB. Lund: Studentlitteratur AB. ISBN 978-91-44-02007-5