Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?
FizikaCikk

Egy egyszerű egyenletmegoldó eljárás

Woynarovich Ferenc

Kevés az olyan egyenlettípus, amely zárt alakban megoldható, a legtöbb esetben valamilyen numerikus megoldáshoz kell folyamodnunk. Mindig lehetőségünk van a próbálgatásra, amit ügyesen végrehajtva megbízható eredményre juthatunk, de bizonyos esetekben a megoldás megkeresésére szisztematikus, könnyen automatizálható eljárás is a rendelkezésünkre áll. Az alábbiakban egy ilyet mutatunk be. Ez az

\(\displaystyle (1) \)\(\displaystyle x=f(x)\)

típusú egyenletek esetében alkalmazható, és az \(\displaystyle f(x)\) függvények egy széles osztályában eredményes. A módszer lényege, hogy az

\(\displaystyle x_{n+1}=f(x_n) \)

képzési szabály segítségével egy sorozatot generálunk. Ennek a sorozatnak az elemei az \(\displaystyle f(x)\) megfelelő tulajdonságai esetén egyre pontosabban megközelítenek egy, a kiinduló \(\displaystyle x_1\) megválasztásától független

\(\displaystyle x_\infty=\xi \)

értéket, ami nyilván az egyenletünk megoldása, hisz tetszőleges pontossággal teljesül, hogy:

\(\displaystyle (2) \)\(\displaystyle \xi=f(\xi).\)

A továbbiakban \(\displaystyle x\) általában az egyenletben szereplő változót, \(\displaystyle \xi\) pedig mindig az egyenlet megoldását jelöli.

A módszer működése az 1. ábrán szemléletesen követhető.


1. ábra

Az eljárás nem mindig konvergál: ha az \(\displaystyle y=f(x)\) függvény görbéje túl meredeken metszi az \(\displaystyle y=x\) egyenest, akkor a sorozatnak nincs határértéke, a tagjai az \(\displaystyle n\) növekedésével egyre messzebb kerülnek a megoldástól (2. ábra).


2. ábra

Ahhoz, hogy az eljárás konvergenciájára kvantitatív feltételeket állapíthassunk meg, vizsgáljuk meg (az amúgy analitikusan is kezelhető) \(\displaystyle f(x)=mx+b\) lineáris függvény esetét! Az

\(\displaystyle x_{n+1}=mx_n+b \)

rekurzió szerint

$$\begin{align*} x_2&=mx_1+b,\\ x_3&=m^2x_1+mb+b,\\ x_4&=m^3x_1+m^2b+mb+b,\\ \vdots&\\ x_{n+1}&=m^nx_1+\left(\sum_{i=0}^{n-1}m^i\right)b=m^nx_1+\frac{m^n-1}{m-1}b. \end{align*}$$

Látni való, hogy ez a kifejezés az \(\displaystyle n\to\infty\) esetben az

\(\displaystyle x_\infty=\frac{b}{1-m} \)

értékhez tart, ha \(\displaystyle |m|<1\), de nincs határértéke, ha \(\displaystyle |m|\geq 1\). A két egyenes metszéspontja bármely \(\displaystyle m\not=1\) érték mellett \(\displaystyle \xi={b}/({1-m})\)-nél van, de ezt az eljárás csak \(\displaystyle |m|<1\) esetén adja vissza. Tekintettel arra, hogy a számunkra érdekes (fizikában előforduló) folytonos és sima függvények a metszéspont környékén jó közelítéssel egyenessel helyettesíthetők, azt mondhatjuk: ha az \(\displaystyle y=f(x)\) függvény az \(\displaystyle y=x\) egyenest úgy metszi, hogy a \(\displaystyle \xi\) metszéspontban az \(\displaystyle m_f\) meredeksége \(\displaystyle +1\) és \(\displaystyle -1\) közé esik, azaz \(\displaystyle |m_f|<1\), akkor az algoritmus a metszéspont közeléből indítva konvergens. Az eddigieket végiggondolva a következő precíz megállapítást tehetjük:

Ha az \(\displaystyle (1)\) egyenlet megoldását jelentő \(\displaystyle \xi\) pont egy \(\displaystyle \xi-d<x<\xi+d\) \(\displaystyle (d>0)\) környezetében az \(\displaystyle y=f(x)\) függvény görbéje határozottan a \(\displaystyle \xi\)-n átmenő \(\displaystyle +1\) meredekségű \(\displaystyle y=x\) és \(\displaystyle -1\) meredekségű \(\displaystyle y=2\xi-x\) egyenesek között halad a

\(\displaystyle (3a) \)\(\displaystyle \xi -\alpha(x-\xi)\leq f(x)\leq \xi +\alpha(x-\xi),\quad \mbox{ha}\quad 0\leq x-\xi<d,\)

és

\(\displaystyle (3b) \)\(\displaystyle \xi +\alpha(x-\xi)\leq f(x)\leq \xi -\alpha(x-\xi),\quad \mbox{ha}\quad 0\geq x-\xi>-d \)

szabály szerint, ahol \(\displaystyle 0<\alpha<1\), akkor a közelítő eljárásunkat a \(\displaystyle \xi-d<x<\xi+d\) tartomány bármely pontjából indítva az az \(\displaystyle x_\infty=\xi\) értékhez fog tartani.

Állításunkat egyszerűen igazolhatjuk. Az \(\displaystyle f(x)\) menetére vonatkozó (3\(\displaystyle a\)) és (3\(\displaystyle b\)) feltételünk szerint

\(\displaystyle \left| f(x)-\xi \right|\leq \alpha\left| x-\xi \right|,\quad \mbox{ha}\quad \left|x-\xi \right|\leq d, \)

amit a sorozat képzésekor lépésről lépésre alkalmazva az

\(\displaystyle \left| x_{n+1}-\xi \right|\leq \alpha\left| x_n-\xi \right| \)

egyenlőtlenség sorozatot kapjuk. Fontos látni, hogy a \(\displaystyle 0<\alpha<1\) feltétel miatt, ha \(\displaystyle \left|x_1-\xi \right|<d\), akkor az \(\displaystyle \left|x_n-\xi \right|< d\) is teljesül minden \(\displaystyle n\)-re, tehát a képzési szabály nem vezet ki a \(\displaystyle \xi-d<x<\xi+d\) intervallumból. Ennek alapján

\(\displaystyle \left| x_{n+1}-\xi \right|\leq \alpha^n\left| x_1-\xi \right|, \)

és mivel \(\displaystyle n\) növelésével \(\displaystyle \alpha^n\) nullához tart, az \(\displaystyle x_n\) értékek valóban egyre pontosabban megközelítik \(\displaystyle \xi\)-t.

Az itt megfogalmazott feltétel az eljárás konvergenciájára nézve egy elégséges, a szükségesnél szigorúbb feltétel. Vannak olyan esetek, amikor ez nem teljesül, a rekurzió mégis konvergens, de olyan nincs, hogy a fentiek teljesülnek, az eljárás viszont mégsem használható. (Lehetséges például olyan eset, hogy az iterációt valahonnan a fenti \(\displaystyle (\xi-d,\xi+d)\) tartományon kívülről indítva is eljutunk a \(\displaystyle \xi\)-hez, de ez általában nem garantálható.) Itt nem célunk a pontos, mindenre kiterjedő feltételek feltérképezése, csak azt akartuk bemutatni, hogy ez a megoldási módszer milyen feltételek között használható biztosan.

A gyakorlatban nem ismerjük \(\displaystyle \xi\)-t, így az \(\displaystyle f(x)\)-et sem tudjuk a \(\displaystyle \xi\) közelében elemezni, de ha szükséges, pl. grafikus ábrázolással képet alkothatunk arról, hogy hol várható a megoldás, és az eljárás konvergensnek ígérkezik-e. Ha igen, a rekurziót addig folytatjuk, amíg az eredmény megkívánt pontosságának megfelelő értékes jegyek már nem változnak az újabb tagok generálásakor. (A sorozat egymást követő elemeinek a felhasználásával ennél szabatosabb hibabecslés is lehetséges, de a gyakorlatban ez a ,,konyhaszabály'' is bőven megfelel.)

Ennél izgalmasabb kérdés, mit tehetünk, ha a sorozatunknak nincs határértéke, a gyök várható környezetében az egymást követő tagok különbsége nem csökken, hanem egyre nő? Ha valóban van az adott környezetben az egyenletnek megoldása, a divergenciát az okozza, hogy ott az \(\displaystyle f(x)\) meredeksége túl nagy (\(\displaystyle |m_f|>1\)). Ebben az esetben az egyenletünket úgy kell átalakítani, hogy a gyök helye ne változzon, de az \(\displaystyle x\)-szel egyenlővé tett függvény meredeksége a megfelelő határok közé kerüljön. Ezt többféleképpen is megtehetjük.

A) Tegyük fel, hogy az \(\displaystyle F(x)\) az \(\displaystyle f(x)\) inverze, azaz

\(\displaystyle F(f(x))=x. \)

Az \(\displaystyle x=\xi\) helyen (2) miatt

\(\displaystyle F(\xi)=\xi, \)

tehát az

\(\displaystyle x=F(x) \)

egyenlet gyöke(i) ugyanott van(nak), ahol az (1) egyenleté. Ez nem meglepő, hiszen az \(\displaystyle y=f(x)\) és az \(\displaystyle y=F(x)\) görbéi egymás tükörképei az \(\displaystyle y=x\) egyenesre. Ebből az is következik, hogy a két függvény \(\displaystyle m_f\) és \(\displaystyle m_F\) meredeksége a metszéspontban egymás reciproka:

\(\displaystyle m_fm_F=1. \)

Így ha \(\displaystyle |m_f|>1\), akkor \(\displaystyle |m_F|<1\), és az eljárásunk \(\displaystyle f(x)\) helyett \(\displaystyle F(x)\)-et használva konvergálni fog.

B) Az

\(\displaystyle x=g(x) \)

egyenlet gyökei is megegyeznek az (1) egyenlet gyökeivel, ha

\(\displaystyle g(x)=cx+(1-c)f(x)\quad(c\not=1). \)

Ennek a meredeksége a gyök helyén

\(\displaystyle m_g=c+(1-c)m_f, \)

tehát \(\displaystyle c\) alkalmas megválasztásával a meredekség ,,behúzható'' a \(\displaystyle \pm1\) tartomány belsejébe.

Mindkét trükk szemléltethető a P. 5626. feladat megoldásában (lásd lapunk 2025. februári számában) szerepet kapott

\(\displaystyle x=\frac{\ctg x}{2} \)

egyenlettel. Ahogy arról meggyőződhetünk, az

\(\displaystyle (4a) \)\(\displaystyle x_{n+1}=\frac{\ctg x_n}{2}\)

szabállyal képzett sorozat, akárhonnan indítjuk, nem konvergál. Ugyanakkor az inverz függvény használata eredményes: az

\(\displaystyle (4b) \)\(\displaystyle x_{n+1}=\arcctg 2x_n\)

rekurzió 10 értékes jegy pontossággal az \(\displaystyle x_\infty=0{,}6532711871\) értékhez tart. Ugyanehhez konvergál az

\(\displaystyle (4c) \)\(\displaystyle x_{n+1}=\frac{x_n}{2}+\frac{\ctg x_n}{4}\)

sorozat is, ami a B) eljárásban \(\displaystyle c=1/2\)-nek felel meg. Megjegyezzük, az

\(\displaystyle (4d) \)\(\displaystyle x_{n+1}=\frac{x_n}{2}+\frac{\arcctg 2x_n}{2}\)

sorozat is konvergens, de fontos látnunk, ez nem a \(\displaystyle (4c)\) rekurzió függvényének az inverzét használja, hanem \(\displaystyle (4b)\) módosítása a B) eljárás szerint \(\displaystyle c=1/2\) választással. A különböző eljárások különböző nagyságú lépésekben közelítik meg az eredményt, különböző sebességgel konvergálnak. Konyhaszabálynak elfogadhatjuk, hogy annál gyorsabb a konvergencia, minél kisebb a jobb oldal meredekségének az abszolút értéke a határérték közelében. A \(\displaystyle (4b)\), \(\displaystyle (4c)\) és \(\displaystyle (4d)\) sorozatokban a meredekségek rendre \(\displaystyle -0{,}74\), \(\displaystyle -0{,}17\) és \(\displaystyle 0{,}13\), ennek megfelelően a \(\displaystyle (4c)\) és \(\displaystyle (4d)\) sorozat számottevően gyorsabban közelíti meg az \(\displaystyle x_\infty\) értéket, mint a \(\displaystyle (4b)\) sorozat.


3. ábra

Végül néhány szót kell szólnunk arról az esetről is, amikor az (1) egyenletnek több gyöke is van. Előfordulhat, hogy az eljárás egyik gyököt sem találja meg, mert az \(\displaystyle m_f\) meredekség abszolút értéke minden gyök esetében nagyobb egynél. Ilyenkor az A) vagy a B) trükk segítségével elérhetjük, hogy az eljárás bármely kiválasztott gyök esetében megfelelő kezdőértékről indítva konvergáljon. Az viszont biztos nem lehetséges, hogy az eljárás minden további manipuláció nélkül minden gyök esetében konvergens legyen: ha mondjuk \(\displaystyle f(x)\) a \(\displaystyle \xi_i\) gyök környezetében teljesíti a \(\displaystyle (3a)\) és \(\displaystyle (3b)\) feltételeket, akkor a szomszédos \(\displaystyle \xi_{i-1}\), illetve \(\displaystyle \xi_{i+1}\) esetében biztos nem fogja, mert ott \(\displaystyle |m_f|\) túl nagy lesz, ahogy azt a 3. ábrán is láthatjuk.

A LapLegfrissebb szám

A KöMaL 2026. februári száma

A LapLegfrissebb szám

A KöMaL 2025. szeptemberi száma

A LapLegfrissebb szám

A KöMaL 2025. októberi száma

A LapLegfrissebb szám

A KöMaL 2025. novemberi száma

A LapLegfrissebb szám

A KöMaL 2026. márciusi száma

A LapLegfrissebb szám

A KöMaL 2026. januári száma

A LapLegfrissebb szám

A KöMaL 2025. decemberi száma

A LapMegrendelés

A KöMaL megrendelése

A KöMaL egy példányának ára 2025. szeptembertől 1600 Ft, előfizetése 1 évre 12500 Ft – BJMT tagoknak 12000 Ft.

MatfundTámogatás

Kérjük, támogassa adója 1%-ával a KöMaL-t!

A KöMaL kiadásának, a versenyek teljes lebonyolításának, díjazásának és a díjkiosztóval egybekötött Ifjúsági Ankétok szervezésének költségeit 2007 óta a MATFUND Középiskolai Matematikai és Fizikai Alapítvány fizeti.

Kérjük, személyi jövedelemadója 1%-ának felajánlásával álljon a több, mint 125 éve alapított Középiskolai Matematikai és Fizikai Lapok mellé!

PontversenyVersenykiírás

Versenykiírás a KöMaL 2025–2026. évi pontversenyeire

Azok is figyelmesen olvassák el a Versenykiírást, akik tavaly már részt vettek versenyünkben.

Idén is matematikából, fizikából és informatikából indítunk versenyeket. Egyénileg, illetve csapatban is lehet versenyezni, a versenyek 9 hónapon keresztül, 2025. szeptemberétől 2026. június elejéig tartanak. Minden hónapban új feladatokat tűzünk ki, és a megoldásokat a következő hónap elejéig küldheted be. A verseny végeredményét a 2026. szeptemberi számunkban hirdetjük ki. A díjakat jövő ősszel, a KöMaL Ifjúsági Ankéton adjuk át.

FizikaMintamegoldás

A P. 5679. fizika feladat megoldása

P. 5679. Vízszintes talajon súrlódásmentesen mozoghat egy \(\displaystyle M\) tömegű, lapos felületű, kezdetben álló kiskocsi, amelynek egyik végén egy \(\displaystyle m=M/2\) tömegű, kicsiny hasáb helyezkedik el. A kiskocsi \(\displaystyle \ell=24~\mathrm{cm}\) hosszú, a rajta lévő hasáb és a kiskocsi között a súrlódási együttható \(\displaystyle \mu=0{,}2\).

a) Legfeljebb mekkora \(\displaystyle v_0\) sebességgel lökhetjük meg a kicsiny hasábot, hogy ne essen le a kiskocsiról?

b) Mekkora lesz a kiskocsi és a hasáb sebessége abban a pillanatban, amikor a hasáb lerepül a kiskocsiról, ha \(\displaystyle v_1=2v_0\) sebességgel lökjük meg a hasábot?

Közli: Wiedemann László, Budapest

FizikaMintamegoldás

A P. 5674. fizika feladat megoldása

P. 5674. Egy hőerőgép egy \(\displaystyle C\) hőkapacitású, kezdetben \(\displaystyle T\) hőmérsékletű test és egy állandó \(\displaystyle T_0\) hőmérsékletű, nagy méretű hőtartály között üzemel.

Vizsgáljuk a következő két esetet: \(\displaystyle T=T_0+\Delta T\) és \(\displaystyle T=T_0-\Delta T\). Melyik esetben nyerhetünk több munkát?

Példatári feladat nyomán

I. megoldás. A maximális, reverzibilis folyamatban működő gép (Carnot-gép) által végzett munka a hatásfok folyamatos változása miatt mindkét esetben integrálással fejezhető ki.