2023(e)ko otsailaren 17(a), ostirala

5. astea | Newton-en hurbilketa-metodoa

Newton-en hurbilketa-metodoa



Newton–Raphson metodoa (Newton-en metodo gisa ere ezagutzen dena) zenbakizko analisi-metodo bat da. Metodo honek funtzioen erro gero eta hobeak lortzen ditu, hau da, funtzioa zero egiten duen x balioa bilatzen du. Beste era batez esanik, funtzioak OX ardatza mozten duen balioa (funtzioaren erroa) ematen du Newton–Raphson metodoak. Algoritmoa erroaren hurbilketa batekin hasten da eta urrats bakoitzean erroaren hurbilketa hobea lortzen du.



Irudi honetan laugarren graduko polinomio baten erroak ikusten dira:







Eta animazio honetan Newton–Raphson metodoa erakusten da, non ƒ funtzioa urdinez ageri den eta bere tangentea gorriz. Ikus daitekeenez ƒ funtzioaren x erroarentzat xn+1 hurbilketa hobea da xn baino.






Animazioa ikusteko irudiaren gainean klik egin.

Ikusi nola programatu duten GeoGebra bitartez.







Newton–Raphson metodoa (Newton-en metodo gisa ere ezagutzen dena) zenbakizko analisi-metodo bat da. Aldagai bakarreko funtzio errealen kasuan honakoa da metodoa:


Izan bedi ƒ funtzioa x errealentzat definitua, eta izan bedi ƒ' bere deribatua. Erroaren hasierako hurbilketa bat behar dugu, x0. Erroaren hurbilketa horretan oinarrituz hurbilketa hobea izango den x1 honelaxe lortzen da:





Iterazioak eginez, n+1 hurbilketa n hurbilketan oinarritzen da formula honen arabera:





Formula horren zergatia geometrikoki adieraz daiteke. Hurrengo irudiko lerro urdina f(x) funtzioa da, eta lerro zuzen gorria f(x) funtzioaren tangentea (xn, f(xn)) puntuan:








Berde koloreko distantziari hobekuntza deitzen badiogu, orduan alfa angeluaren tangentea f(xn)/hobekuntza litzateke, baina tangente hori f(x) funtzioaren deribatua (xn, f(xn))puntuan da, lerro zuzen gorriaren malda alfa angeluaren tangentea da. Horregatik:



tag(alfa)= f(xn)/hobekuntza   eta aldi berean   tag(alfa)=malda= f'(xn)

beraz    f'(xn)= f(xn)/hobekuntza     (non  hobekuntza=xn-xn+1)




f'(xn)= f(xn)/(xn-xn+1)    nondik    xn-xn+1= f(xn)/f'(xn)




xn+1 = xn f(xn)/f'(xn)







Behar diren datuak











Newton–Raphson metodoa aplikatzeko hiru datu behar dira. Batetik f(x) funtzioa (esate baterako ax2+bx+c polinomioa), bestetik soluzioaren x0 hurbilketa bat, eta, azkenik prozesu errepikakorra bukaraziko duen rDoitasuna. Adibidez, funtzioa bigarren graduko polinomio bat izanik eta nahi dugun zehaztasuna milioarena bada 0.000001, datuak hauek lirateke:


  • a, b eta c koefizienteak (teklatuaren bitartez irakurrita)

  • x0 hurbilketa (teklatuaren bitartez irakurri eta rEmaitza aldagaian gorde)

  • rDoitasuna (teklatuaren bitartez irakurrita edo balio konstantea izan dadila, adibidez 0.000001)


f(x) funtzioaren ax2+bx+c=0 ekuazioaren erro bat rDoitasuna prezisioarekin kalkulatzeko, Newton–Raphson metodoaren algoritmoa aplikatuko dugu non prozesu errepikakorra amaitu dadin baldintza hau beteko den:

abs(xn+1 - xn) < rDoitasuna




Baldintza horren esanahia hau da: lortu den xn+1 azken soluzioa eta bere aurreko xn soluzioa oso hurbil daude, horregatik lortu den hobekuntza aldez aurretik erabakitako prezisioa baino txikiagoa da.




Non xn+1 hurrengo hurbilpena eskuratzeko bere aurreko xn soluzioan oinarritu beharra dagoen:

xn+1 = xn (axn2+bx+c)/(2axn+b)



Prozesu errepikakorra eteteko aurreko baldintza honelaxe idatziko litzateke programan:


abs(rEmaitza - rAurrekoa) < rDoitasuna




Programaren hasiera hau izan daiteke:











Datuak irakurri ondoren (polinomioaren koefizienteak eta lehen hurbilpena), prozesu errepikakorra iterazioz-iterazio adieraztean honako ibilbide hau izango genuke:


rDOITASUNA konstantea definitu    


a irakurri    


b irakurri    


c irakurri    


x0 irakurri    


x1 = x0 (ax02+bx+c)/(2ax0+b)


x2 = x1 (ax12+bx+c)/(2ax1+b)


x3 = x2 (ax22+bx+c)/(2ax2+b)


...













Newton–Raphson metodoa erabiliko dugu bost kasu hauetan:






iruzkinik ez:

Argitaratu iruzkina