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
, kan vara olika känsligt för störningar i högerledet så att det orsakar en förändring i lösningen
.
Ä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
kan definieras som
,
där
är någon matrisnorm.
Om man också vill understyka vilken matrisnorm som används kan man t.ex. skriva
![{\displaystyle \kappa (A)=\Vert A^{-1}\Vert _{\infty }\cdot \Vert A\Vert _{\infty }}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b53a2d44f9697e832221a1e63933180247b4a19e)
som då avser den oändliga matrisnormen, dvs maximala radsumman, av matrisen
.
Härledning
För att härleda konditionstalet, betraktar vi först ett linjärt ekvationssystem
som här är ett exakt system med den exakta lösningen
. Om vi nu har en förändring
i högerledet, så kommer vi också att få en förändring
i lösningen.
, det vill säga
.
Eftersom
så är
![{\displaystyle Adx=db\,\!}](https://wikimedia.org/api/rest_v1/media/math/render/svg/14bc52f47527eb2b3760148dc4f97df7160e438e)
vilket är ekvivalent med
![{\displaystyle dx=A^{-1}db\,\!}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1d00ab66647cffdeae7aa41f8a080b5c0718f115)
Nästa steg är att uppskatta det relativa felet
för uttrycket.
Om man först tar normen av uttrycket så fås
![{\displaystyle \Vert dx\Vert =\Vert A^{-1}db\Vert \leq \Vert A^{-1}\Vert \cdot \Vert db\Vert }](https://wikimedia.org/api/rest_v1/media/math/render/svg/c11e10c35e2118521b8d31a5aba56c1584439159)
vilket är en uppskattning av det absoluta felet.
Om man på samma sätt också tar normen av
fås
![{\displaystyle \Vert b\Vert =\Vert Ax\Vert \leq \Vert A\Vert \cdot \Vert x\Vert }](https://wikimedia.org/api/rest_v1/media/math/render/svg/63406876e39f57b03cade27cbd83a83b1140aedd)
Av dessa uttryck följer att
![{\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 }](https://wikimedia.org/api/rest_v1/media/math/render/svg/2973ac038a2a07e6fc17f06e15ca8059c4b5347b)
och om man slutligen dividerar bägge leden med
och
får man
![{\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 }}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/aa77c224c4878395ecf1bc53d01b76831f04a6f6)
Här ser vi alltså att konditionstalet
är den skalfaktor som styr hur relativa felet i indata
påverkar det relativa felet i lösningen
. 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
kan anta? För ett ekvationssystem där det relativa felet för
är
, så följer
, där
är enhetsmatrisen.
- Alltså är
![{\displaystyle \kappa (A)\geq 1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1837385dcb2f604965f82dc2c9e0835f999f50c6)
Också matrisen kan innehålla störningar. Uttrycket för att uppskatta känsligheten hos lösningen ser då ut såhär:
där
och ![{\displaystyle r<1\,\!}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d279b8b7aa81d188acdd1173b27515c5406375bc)
Tillämpning
Exempel
Vi vill bestämma en övre gräns för
till ett givet ekvationssystem
, där
,
och
.
Elementen i
är givna med tre korrekta decimaler. Det innebär att vi har ett fel i
som är
, dvs
Vi ska alltså beräkna
.
Konditionstalet för
är
.
Normen av
är
.
Normen av
är
.
Gränsen för den relativa felet i lösningen blir då
![{\displaystyle {\frac {\Vert dx\Vert _{\infty }}{\Vert x\Vert _{\infty }}}\leq 42.5\cdot {\frac {0.5\cdot 10^{-3}}{1}}\leq 0.022}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b1c41fb2f63836496a7b925f3fa53987a50d8a13)
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