Feladatok‎ > ‎

Folytonos függvény gyöke

Leírás

A matematikában rengetegféle egyenlettel találkozhatunk. Ezek egy része könnyen megoldható mérlegelvvel vagy valamilyen megoldóképlettel.

Azonban sokszor kellemetlen a matekkal kihozni egy egyenlet megoldásait, például az egyenlet bonyolultsága miatt. Ilyenkor nyúlhatunk például a grafikus megoldáshoz, aminek a lényege, hogy a nullára rendezett egyenletet függvényként ábrázoljuk egy Descartes-koordinátarendszerben, és a függvény zérushelyeit kerekítve leolvassuk az ábráról.

Írj egy programot, ami egy közelítő megoldást a 0-ra rendezett egyenletre.

Adott egy f(x) folytonos függvény (public static double f(double x)...), és egy [a, b] intervallum. Tudjuk, hogy [a,b]-n a függvény értelmezett, és f(a), f(b) ellentétes előjelű (egyik sem 0). A Bolzano-tétel szerint ekkor [a,b]-n lesz zérushely.

Innentől haladjunk intervallumfelezgetéssel! Hagyjuk el az [a,b] intervallum alsó vagy felső felét úgy, hogy a gyök benne maradjon az intervallumban! Folytassuk a felezgetést, amíg az intervallum hossza tetszőlegesen kicsire csökken!

Példa

Keressük meg az x^2-x-1=0 egyenlet gyökeit! Keressük a I=[0, 5] intervallumon!

f(x)=x^2-x-1

I1=[0, 5]
f(0)=-1
f(2.5)=2.75
f(5)=19

// f(0) és f(2.5) ellentétes előjelű, ezért I2=[0,2.5]-re is igaz a Bolzano-tétel
I2=[0,2.5]
f(0)=-1
f(1.25)=-0.6875
f(2.5)=2.75

// f(1.25) és f(2.5) ellentétes előjelű, ezért I3=[1.25,2.5]-re is igaz a Bolzano-tétel
I3=[1.25,2.5]
f(1.25)=-0.6875
f(1.875)=0.6406
f(2.5)=2.75

I4=[1.25,1.875]
...
I999=[1.618...,1.618...]
Tehát a végeredmény legyen 1.618

Bemenetek

f(x)=e^x-8x^2
I=[0,2]

f(x)=-2x^3+9x^2-10x+3
I=[2,4]