===== 1. Hibabecslések ===== ==== 1.1. Hibák osztályozása ==== - Kiküszöbölhetetlen hibák. Első sorban a bemenő (input) adatok hibáit soroljuk ide. - Matematikai modell hibája. Mivel minden modell csak közelíti a valós, modellezett objektumot, ezért a modell mindig hibát tartalmaz az objektum leírása szempontjából. - Módszer-hiba. Ez a hiba a kiválasztott numerikus módszertől függ. - A számítógép alkalmazása kapcsán keletkezett hibák (első sorban, kerekítési hibák). A gyakorlati problémák esetén figyelembe kell venni mind a négy hiba típus lehetőségét. Egy probléma megoldása kapcsán különböző hiba-elemzéseket szoktak végrehajtani. - Direkt elemzés. Ismerjük a bemenő adatok hibáit. Meg kell állapítani az eredmény hibáját. Ez az elemzés a leggyakoribb. - Inverz elemzés. Adva van az eredmény megengedett hibája (vagy az elvárt pontosság). Meg kell állapítani a bemenő adatok olyan megengedett hibáit, hogy az eredmény megfelelő pontosságú legyen. - A bemenő adatok pontosságának egyeztetése. Például, ha az egyik adat hibája nagy, akkor nincs értelme törekedni a többi adatot nagyobb pontosságára. - Az adatok stabilitásának problémája (hibaterjedés elemzése). ==== 1.2. Abszolút hiba ==== Legyen $a_0$ – az adat pontos értéke, és $a$ -- az $a_0$ közelítő értéke, akkor az $a - a_0$ lesz az adat //közelítő értékének a hibája//. A közelítő érték hiba-becslését (hibakorlátját) $\Delta a$-val jelöljük: $$\boxed{|a-a_0|\leqslant \Delta_a.}\tag{1.1} \label{eq:1.1}$$ **1.1. Példa.** Számítsuk ki egy téglalap területét: $$a=5,\!43\text{ m},\quad b=3,\!82\text{ m}$$ $$\Delta_a= \Delta_b=0,\!01$$ $$S=ab = 20,\!7426\text{ m}^2$$ $$(a+0,\!01) (b+0,\!01) = 20,\!8352\text{ m}^2$$ $$(a-0,\!01) (b-0,\!01) = 20,\!6502\text{ m}^2$$ $$\Delta_S = 0,\!093\text{ m}^2$$ $$|S-S_0|\leqslant 0,\!0926$$ $$S\approx 20,\!74\text{ m}^2$$ ==== 1.3. Relatív hiba ==== Az $a_0$ adat az $a$ közelítő értékének a //relatív hibája//: $$\delta_a=\displaystyle\frac{\Delta_a}{|a_0|}$$ Mivel általános esetben az $a_0$ értéke ismeretlen, a relatív hibát így fogjuk meghatározni: $$\boxed{\delta_a=\displaystyle\frac{\Delta_a}{|a|} },\quad (a\neq 0).\tag{1.2}\label{eq:1.2}$$ //A relatív hibát gyakran százalékban szokták megadni//. Visszatérve az előző példához, kiszámítjuk a relatív hibát: $$S\approx 20,\!7426,\quad\Delta_S= 0,\!0926.$$ $$\delta_S\approx\displaystyle\frac{0,\!0926}{20,\!7426}\approx 0,\!045.$$ Egy adat //relatív hibabecslése// és a //biztos számjegyeinek számának// kapcsolata a következő (közelítőleg): Ha $\delta=10 %$, akkor az adat egy biztos számjegyet tartalmaz, ha $\delta=1%$, akkor az adat két biztos számjegyet tartalmaz, ha $\delta=0,\!1 %$ akkor az adat három biztos számjegyet tartalmaz, .... A matematikai táblázatokban a függvények értékei úgy vannak kerekítve, hogy a táblázat csak biztos számjegyeket tartalmazzon, és egy adat abszolút hibája nem haladja meg az utolsó megadott számjegy-egység értékének a felét. ==== 1.4. Aritmetikai műveletek abszolút hibái ==== Az összeg abszolút hibája Az adatok pontos értékei legyenek $a_0$, $b_0$, az $a$ és a $b$ pedig, -- az adatok közelítő értékei, és $$|a-a_0|\leqslant\Delta_a\quad|b-b_0|\leqslant\Delta_b.$$ Akkor az $a+b$ összeg hiba-becslése: $$\boxed{\Delta_{a+b} = \Delta_a + \Delta_b}.\tag{1.3}$$ A többi aritmetikai művelet esetén hasonló képleteket kaphatunk. A //kivonás// $a-b$ abszolút hibája: $$\boxed{\Delta_{a-b} = \Delta_a + \Delta_b}.\tag{1.4}$$ A //szorzat// $ab$ abszolút hibája: $$\boxed{\Delta_{ab}\approx |a|\Delta_b + |b|\Delta_a}.\tag{1.5}$$ Az //osztás// $a/b$ abszolút hibája: $$\boxed{\Delta_{a/b}\approx\displaystyle\frac{|a|\Delta_b + |b|\Delta_a}{|b^2|}}.\tag{1.6}$$ Ha a $b$ értéke közzel van a nullához, akkor az osztás abszolút hibája nagyon nagy lehet. Több adat összeadása esetén $$S=\displaystyle\sum_{k=1}^n a_k \tag{1.7}$$ az //összeg// hiba-becslése: $$\Delta_S=\displaystyle\sum_{k=1}^n \Delta_k \tag{1.8}\label{eq:1.8}$$ Az $\eqref{eq:1.8}$ hibabecslés túlzott, mivel értéke sokkal nagyobb lehet a reális eltéréstől. Ha $n>10$, akkor célszerű alkalmazni a statisztikai hiba-becslést (Csebotárjov-féle szabály): $$\Delta_S=\sqrt{3n}\cdot\Delta_k,\tag{1.9}\label{eq:1.9}$$ amely sokkal pontosabb eredményt ad, mint az $\eqref{eq:1.8}$ képlet. Az $\eqref{eq:1.9}$ képletben azt feltételezzük, hogy a hibák nagyságrendje körülbelül azonos. Ha az egyik adat abszolút hibája lényegesen nagyobb a többi abszolút hibánál, $$\Delta_1\gg\Delta_k,\quad k>1, \tag{1.10}$$ akkor az összeg abszolút hibáját egyszerűbben lehet megállapítani: $$\Delta_S\approx\Delta_1.\tag{1.11}$$ **1.2. Példa.** ^ érték ^ abszolút hiba ^ | 345,4 | 0,05 | | 235,2 | 0,05 | | 11,75 | 0,005 | | 9,27 | 0,005 | | 0,35 | 0,005 | | 0,18 | 0,005 | | 0,08 | 0,005 | | 0,02 | 0,005 | | 0,00 | 0,005 | $$ S=602,\!25,\quad \Delta_S=0,\!05+0,\!05=0,\!1.$$ ==== 1.5. Aritmetikai műveletek relatív hibái ==== A $a+b$ összeg relatív hibája: $$\boxed{\delta_{a+b}=\max\{\delta_a,\delta_b\} }.\tag{1.12}$$ Több adat esetén: $$\Delta_S=\displaystyle\sum_{k=1}^n \Delta_k \tag{1.13}\label{eq:1.13}$$ $$\delta_S\leqslant\max_{k}\delta_k.\tag{1.14}$$ Kivonás $a-b$ relatív hibája: $$\boxed{\delta_{a-b}=\displaystyle\frac{\Delta_a+\Delta_b}{|a-b|} },\quad a>0,b>0.\tag{1.15}$$ //Megjegyzés//. Ha az $a$ és $b$ számok értékei közel vannak egymáshoz, akkor a kivonás relatív hibája nagyon nagy lehet! Ezért, ha van lehetőség, a kivonás műveletet ki kell küszöbölni az algoritmusból (a kifejezések átalakításával)! Szorzás $ab$ relatív hibája: $$\boxed{\delta_{ab} = \delta_a + \delta_b}.\tag{1.16}$$ Osztás $a/b$ relatív hibája: $$\boxed{\delta_{a/b} = \delta_a + \delta_b}.\tag{1.17}$$ Több adat esetén a szorzások és osztások $$r=\displaystyle\frac{\displaystyle\prod_{k=1}^m a_k}{\displaystyle\prod_{j=1}^n b_j}\tag{1.18}$$ relatív hibája: $$\delta_r=\displaystyle\sum_{k=1}^m \delta_{a_k}+\displaystyle\sum_{j=1}^n \delta_{b_j}.\tag{1.19}$$ Ha $n+m>10$, akkor lehet a statisztikai hibabecslést alkalmazni. Feltételezve, hogy a $\delta_a$, $\delta_b$ relatív hibák értékei azonos nagyságrendűek, akkor a következő hiba-becslést kapunk: $$\delta_r\approx\sqrt{3(n+m)}\delta.\tag{1.20}$$ Ha az egyik szám relatív hibája lényegesen nagyobb a többi relatív hibánál: $$\delta_{a_1}\gg\delta_{a_k},\quad \delta_{a_1}\gg\delta_{b_j},$$ akkor $$\delta_r\approx\delta_{a_1}.\tag{1.21}$$ **1.3. Példa.** Számítsuk ki az $$r=\displaystyle\frac{3,\!2\cdot 356,\!7\cdot 0,\!0481}{7,\!1948\cdot 34,\!56}=0,\!221$$ értékét, ha az adott számok mindegyik számjegye biztos. A legnagyobb relatív hiba $$\delta_1=\frac{0,\!05}{3,\!2}=0,\!016$$ és $$\delta_r = 1,\!6\%$$ $r$ abszolút hibája: $$\Delta_r =r\cdot\delta_r =0,\!221\cdot 0,\!016=0,\!0036,$$ $$\Delta_r <0,\!005$$ és a kerekítés után $r=0,\!22$ értéket kapunk. **1.4. Példa** $$a=1,\!137,\quad b=1,\!073,$$ $$\Delta_a = \Delta_b = 0,\!011.$$ Akkor: $$c=a-b =0,\!064,\quad\Delta_c = \Delta_a + \Delta_b = 0,\!022.$$ $$\delta_c=\frac{0,\!022}{0,\!064}\approx 0,\!35\, (35\%),$$ Ez az eredmény egy biztos számjegyet sem tartalmaz! **1.5. Példa** Számítsuk ki a $$d=1-\cos 1^{\circ}\tag{1.22}\label{eq:1.22} $$ értékét! Mivel $$\cos 1^{\circ} =0,\!9998, \quad \Delta_{\cos} = 0,\!00005,$$ $$d=0,\!0002,\quad\Delta_d = 0,\!00005,$$ akkor $$\delta_d=\displaystyle\frac{0,\!00005}{0,\!0002}=0,\!25.$$ A hiba-becslés $25\%$. Ezt a $\delta_d$ hiba-becslést csökkenthetjük, ha átalakítjuk a $\eqref{eq:1.22}$ képletet. Mivel $$1 - \cos 2x =2\sin^2x,$$ akkor: $$d=1-\cos 1^{\circ}=2 \sin^2 0^{\circ}30^\prime =2g^2,\quad g=\sin 0^{\circ}30^\prime$$ és $$g= 0,\!0087,\quad \Delta_g =0,\!00005,$$ $$d=2g^2=0,\!000151.$$ $$\delta_d=\displaystyle\frac{0,\!00005}{0,\!00087}=0,\!0058,\, (0,\!58\%)$$ $$\delta_d =2\delta_g =0,\!016$$ $$\Delta_d =d\cdot\delta_d=0,\!000151\cdot 0,\!0116 = 0,\!0000018.$$ Láthatjuk, hogy az átalakításokkal lényegesen csökkentettük az eredmény relatív hibáját. **1.6. Példa.** Számítsuk ki a kör területét, ha annak az átmérője $d=0,\!842\text{ m}$ és $\Delta_d=1\text{ mm}$. $$S=3,\!1416/4\cdot 0,\!842 = 0,\!5568\text{ m}^2$$ $$\delta_{dd}=2,\quad\delta_d = 0,\!0024,\, (0,\!24\%),$$ $$\delta_S= \delta_{\pi/4} + \delta_{dd} = 0,\!0024,$$ $$\Delta_S =S,\quad\delta_S=0,\!0014,$$ $$S=0,\!557\text{ m}^2.$$ ==== 1.6 Függvények hibabecslése ==== Legyen $y=f(x)$ kétszer differenciálható függvény. Akkor a másodrendű Taylor-felbontásból: $$f(a_0)=f(a)+f´(a)(a_0-a)+f´´(ζ) (a_0-a)^2/2\tag{1.23}$$ $$a – \Delta_a < ζ < a + \Delta_a$$ és $$|f(a_0)-f(a)|\leqslant|f^\prime(a)| \Delta_a +M/2 (\Delta_a)^2$$ ahol $$M=\max|f´(ζ)|.$$ Ez alapján a függvényérték abszolút hiba-becslése: $$\delta_{f(a)}=|f^{\prime}(a)|\,\Delta_a\tag{1.24}\label{eq:1.24}.$$ Megállapíthatjuk a függvényérték //relatív hiba-becslését// is: $$\delta_{f(a)}=\frac{\Delta_{f(a)}}{|f(a)|}\approx\frac{|f^\prime(a)|\,\Delta_a}{|f(a)|}\cdot\frac{|a|}{|a|}=\frac{|f^\prime(a)|\,|a|}{|f(a)|}\cdot\frac{\Delta_a}{|a|}=\frac{|f^\prime(a)|\,|a|}{|f(a)|}\cdot\delta_a\tag{1.25}$$ $$\delta_{f(a)}\approx\frac{|f^\prime(a)|\,|a|}{|f(a)|}\cdot\delta_a\tag{1.26}\label{eq:1.26}$$ $$\frac{\delta_{f(a)}}{\delta_a}=\frac{|f^\prime(a)|}{|f(a)|}\,|a|\tag{1.27}\label{eq:1.27}$$ A $\eqref{eq:1.27}$ képlet alapján megállapíthatjuk, hogy a független változónak az eltérése milyen mértékben növeli a függvény értékének az eltérését. Ezt a mennyiséget a pontbeli kondíciószámának nevezzük: $$\operatorname{cond}(f, x)=\frac{|f^\prime(x)|\,|x|}{|f(x)|}\tag{1.28}$$ Akkor a $\eqref{eq:1.26}$ alapján: $$\delta_{f(a)}=\operatorname{cond}(f, a)\,\delta_a $$ Ha a $\operatorname{cond}(f, x)$ értéke nagy, akkor az lényegesen növeli a függvény relatív hibáját a független változó relatív hibájához képest. Megjegyezzük, hogy egy a függvény kondíciószáma $\operatorname{cond}(f, x)$ függ a $x$ változótól is, és általános esetben a függvényérték hibája változhat pontokként. Azt mondjuk, hogy a függvény rosszul kondicionált, vagy numerikusan instabil, ha nagy annak nagy a kondíciószáma. A lineáris algebra problémák elemzésének is fontos eleme a kondíciószám fogalma. Ha $f(x)>0$, akkor: $$\delta_{f(a)}=\frac{|f^\prime(a)|}{|f(a)|}\,\Delta_x=\left|\left[\ln f(x)\right]^\prime\right|\Delta_x\tag{1.29}\label{eq:1.29}$$ //Konkrét függvények hibabecslései// //Hatványozás//. $$y=x^a\tag{1.30}$$ $$\Delta_y=a x^{a-1}\Delta_x\tag{1.31}$$ $$\delta_y=|a|\,\delta_x\tag{1.32}$$ //Exponenciális függvény//. $$y=a^x,\quad(a>0)\tag{1.33}$$ $$\Delta_y=a^x ·\ln a·\Delta_x\tag{1.34}$$ $$\delta_y= \Delta_x \ln a\tag{1.35}$$ Ha $y=e^x$, akkor $$\delta_y= \Delta_x$$ //Logaritmikus függvény//. $$y=\ln x\tag{1.37}$$ $$\Delta_y=\frac{\Delta_x}{x}= \delta_x\tag{1.38}$$ a $y=\lg x$ esetén: $$\Delta_y=0,\!4343\, \delta_x\tag{1.39}$$ //Trigonometrikus függvények//. $$y=\sin x,\quad \Delta_{\sin x}=|\cos x|\,\Delta_x\leqslant \Delta_x\tag{1.40}$$ $$y=\cos x,\quad \Delta_{\cos x}=|\sin x|\,\Delta_x\leqslant \Delta_x\tag{1.41} $$ $$y=\operatorname{tg}x,\quad \Delta_{\operatorname{tg}x}=(1+\operatorname{tg}^2x)\,\Delta_x \geqslant\Delta_x\tag{1.42}$$ $$y= \operatorname{ctg}x,\quad\Delta_{\operatorname{ctg}x}=(1+\operatorname{ctg}^2x)\,\Delta_x\geqslant\Delta_x\tag{1.43}$$ **1.7. Példa** Számítsuk ki a $y=\sin x$ abszolút hibáját, ha $x=25^\circ 20^\prime$ és $\Delta_x =1^\prime$. Mivel $1^\prime =0,\!000291$ radián, akkor $$\Delta_{\sin x}=|\cos x|\Delta_x=\cos 25^\circ 20^\prime\cdot 0,\!000291=0,\!00026.$$ //Inverz hibabecslés elemzése//. Adva van a $y=f(x)$ függvény maximális megengedett abszolút hibája $\Delta_y$. Meg kell állapítani, hogy milyen lehet a független változó $x$ abszolút hibája $\Delta_x$, hogy a függvény abszolút hibája ne haladja meg az adott $\Delta_y$ értéket. Ha $f^\prime(x)\neq 0$, akkor a $\eqref{eq:1.24}$ alapján: $$\Delta_x= \frac{\Delta_y}{|f^\prime(x)|}\tag{1.44}$$