Cím: Kalkulátor problémák
Szerző(k):  Lukács Ottó 
Füzet: 1979/november, 114 - 119. oldal  PDF  |  MathML 
Témakör(ök): Egyéb írások

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

1. Be nem épített függvények

 
Van egy zsebszámítógépem, HT TK ‐ 1024 a neve, magyar gyártmány. Sok mindent tud: leütöm az x-et, egy-egy billentyű benyomására kiszámítja x2-et, x-et, sin-cos-tgx-et, 1x-et stb. Egy billentyű benyomására megjelenik a π értéke 9 tizedes jegyre kerekítve, tud összeadni‐kivonni‐szorozni‐osztani.
Ezenkívül a sin, cos, tg szögfüggvények adott értékéből a szögek meghatározása is egy-egy gomb megnyomásával történhet. Adott szögfüggvényértékhez végtelen sok különböző szög tartozik, a kalkulátor azonban csak egyetlen értéket tud kijelezni. Ez az érték az ún. főérték, szokásos jele és értékkészlete
-π2Arcsinxπ20Arccosxπ-π2<Arctgx<π2.

Így például a tgx=1 értékből a gép egyedül az x=0,78... szöget keresi vissza, ebből nekünk kell a többi szögértéket meghatároznunk: x0,78+kπ, ahol k tetszőleges egész.
Sajnos, a kalkulátorban nincs Arcctgx-et számító szubrutin, adott ctgx értékből x-et nem lehet közvetlenül visszakeresni. Pedig a gyakorlatban erre is szükség lehet.
Ha rövid a kardod, toldd meg egy lépéssel ‐ tartja a közmondás. Hogyan lehetne az eddig felsorolt szubrutinok segítségével adott ctgx=a értékből x főértékét, Arctga-t meghatározni? Definíció szerint a főérték 0 és π közti érték:
0<Arcctgx<π.

 

 
1. ábra

 

I. Gondoljuk végig: az egységsugarú, origó középpontú körben Arctgx azt a szöget jelenti, amelynek a tangense x (ez az 1. ábrán az egyíves szög). Arcctgx azt a szöget jelenti, amelynek a cotangense x (ez az 1. ábrán a kétíves szög). Ha 0<Arctgx<π2, a két szög egy derékszögű háromszög két hegyesszöge, ezek összege tehát π2:
Arctgx+Arcctgx=π2.

Érvényes-e ez negatív szögre is? Igen, mert tg(-x)=-tgx, |Arctgx|<π2 miatt
Arctg(-x)=-Arctgx
(lásd a 2. ábrát), és ctg(π-x)=-ctgx, 0<Arcctgx<π miatt
Arcctg(-x)=π-Arcctgx
(lásd a 3. ábrát).
 

 
2. ábra

 

 
3. ábra

 


A két utóbbi egyenlőséget összeadva és rendezve azt kapjuk, hogy
Arcctgx=π2-Arctgx,
ez az összefüggés tehát érvényes minden x-re.
Így ez módot ad arra, hogy a kalkulátor meglevő szubrutinjaival adott ctgx értékből x-et visszakeressük. Például:
ctgx=0,5x=Arcctg0,5+kπ=π2-Arctg0,5+kπ1,107148718+kπ.

 
II. Készítsünk egy másik módszert is, más szubrutinok bevonásával.
Ha x>0, akkor 0<Arcctgx<π2 és
tg(Arcctgx)=1ctg(Arcctgx)=1x.

Ha egy 0 és π2 közti szám tangense 1x, akkor az a szám Arctg1x-szel egyenlő:
Arcctgx=Arctg1x,hax>0.

Ha x<0, akkor π2<Arcctgx<π, de most is
tg(Arcctgx)=1ctg(Arcctgx)=1x.
Ebből Arcctgx=Arctg1x+kπ következik, ahol k=1, hiszen most -π2<Arctg1x<0, π2<Arcctgx<π. Tehát
Arcctgx=Arctg1x+π,hax<0.

Ezek az eredmények azt mutatják, hogy Arcctgx értékét az 1x, az Arctg, a π és az összeadó szubrutinok segítségével is meghatározhatjuk. Például:
ctgx=-0,35,x=Arcctg(-0,35)+kπ=Arctg(-10,35)+(k+1)π-1,234121507+(k+1)π.

 
2. Egyenletek megoldása
 
Játsszunk egy kicsit a kalkulátorral. Vigyünk be 1 radiánt és vegyük ennek a cosinusát. A kapott értéknek is vegyük a cosinusát, majd az így kapott értéknek is számítsuk ki a cosinusát és így tovább. A cos-gomb nyomogatásával az alábbi számsorozatot kaptuk:
Sorszám  xi   cosxi    1.    1,5403023059     0,540 302 3059     2.    0,540 302 3059    0,857 553 2158     3.    0,857 553 2158    0,654 289 7905     4.    0,654 289 7905    0,793 480 3587  .........  58.    0,739 085 1333    0,739 085 1332    59.    0,739 085 1332    0,739 085 1332  

Így voltaképpen adott xi értékből cosxi-t számoltuk ki, azután az xi+1=cosxi értékből cosxi+1-et (i=1, 2, 3, ...).
 

 
4. ábra

 

A 4. ábra vázlatosan mutatja eljárásunkat. Először az y=cosx görbén megkeressük az A1(x1;cosx1) pontot, ezt az x tengellyel párhuzamosan rávetítjük az y=x egyenesen levő B1 pontra, ezt fölvetítjük y tengellyel párhuzamosan a cosx görbén levő A2(x2;cosx2) pontra, és így tovább. Az A1B1A2B2A3B3... töröttvonal fokozatosan egy pontot közelít meg, az y=cosx és y=x metszéspontját.
 
Az eljárással (úgynevezett ,,iteráció''-val) az
x=cosx
egyenlet megoldását határoztuk meg egyre pontosabban. Az x1, x2, x3, ... abszcissza-sorozat egyre nagyobb pontossággal közelíti meg az x=cosx egyenlet gyökét.
Az 59. lépésben kapott x59 a gép tanúsága szerint már megegyezik cosx59-cel, ezzel a kalkulátorral tehát az eljárás nem javít tovább a gyök pontosságán, az x=cosx egyenlet megoldása
x0,7390851332.

Az eljárást alkalmazhatjuk más
x=φ(x)
alakú egyenletek megoldására is. A kapott sorozat egyre nagyobb pontossággal megközelíti az egyenlet gyökét, ha a φ(x) ,,elég laposan'' metszi át az y=x egyenest, pontosabban: ha az érintőjének iránytangense, φ'(x) abszolút értékben kisebb 1-nél a gyökhely környezetében:
|φ'(x)|<1,
azaz a gyökhely környezetében az érintő hajlásszöge -45 és +45 között mozog (5a, b ábra). Az eljárás nem vezet a gyökhöz, ha |φ'(x)|>1, (5c, d ábra).
 

 
5. ábra

 

Mit tehetünk, ha |φ'(x)|>1? A 6. ábra mutatja, hogy az y=φ(x) és inverze, y=φ-1(x) ugyanazon pontban metszik az y=x egyenest (persze, mert egyik a másiknak tükörképe az y=x egyenesre). Ha |φ'(x)|>1, akkor |[φ-1(x)]'|<1 lesz a gyökhely környezetében. Így az iterációval az x=φ(x) egyenlet helyett az x=φ-1(x) egyenletet oldhatjuk meg.
 

 
6. ábra

 

Nézzük például az x+lnx=0 egyenletet. (Itt lnx természetes logaritmus, e alapú logaritmus.)
Az x=-lnx helyett (mivel -lnx deriváltja abszolút értékben |-1x|>1 a 0 és 1 közt keresendő gyökhely környezetében) az x=e-x egyenletből érdemes kiindulnunk. Itt az ex, 1x szubrutinok felhasználásával számíthatjuk ki a szükséges értékeket.
x   ex   1ex    1.    0,5065306597     1,648 721 271    0,606 530 659 7     2.    0,606 530 659 7  ...  0,545 239 211 9     3.    0,545 239 211 9  ...  0,579 703 094 9     4.  ......  0,560 064 627 9     5.  ......  0,571 172 149 0     6.  ......  0,564 862 947 0  .........  37.    0,567 143 290 5    38.    0,567 143 290 4    39.    0,567 143 290 4  

A kalkulátorral tovább nem javítható a gyökközelítés, az x+lnx=0 egyenlet gyöke
x0,5671432904.

 
 Lukács Ottó