Newton' s metode Teori Bisektormetoden og sekantmetoden benytter begge skjæringspunkter mellom x - aksen og approksimerende linjer til funksjonen f som tilnærmede verdier til løsningen av likningen f (x) = 0. At sekantmetoden konvergerer raskere enn bisektormetoden, er en konsekvens av sekanter er bedre tilnærminger til funksjonen enn de linjer som bisektormetoden benytter. Den linje som best approksimerer f nær et punkt på grafen, er imidlertid tangenten til grafen i dette punktet. Newton s metode benytter tangenten i stedet for sekanten, og krever bare en approksimativ startverdi. Metoden krever imidlertid at et kjent uttrykk for f (x) er tilgjengelig. Tangenten svarer til lineær approksimasjon av funksjonen. Likningen for tangenten finnes derfor fra. ordens Taylorutvikling:» f Hxn- L + f ' Hx n- L Hxn - xn- L = 0 xn - xn- = - xn = xn- - Metoden konvergerer raskt der <<. Startverdier bør derfor ikke velges i nærheten av funksjo- nens ekstremalverdier.sjekker man feilestimatet, viser dette at metoden konvergerer kvadratisk for enkle røtter Code NewtonMethod@f_, 8x_, x0_<, n_ D := ModuleB9x, tol = 0-6 =, x = x0; k = 0; dx = ; WhileBAbs@dxD > tol && Hk < nl, :x = x - f@xd ; f '@xd dx = x - x; x = x; k ++ >; If@k n, Print@"Konvergens ikke oppnådd etter ", n, " iterasjoner"d, Print@xDD FF Newtons metode kan også formuleres som en fikspunktiterasjon: xn = xn- - f Hxn- L, f ' Hxn- L kan formuleres som ghxn L = xn - n =,, 3,...
Newtons metode kan også formuleres som en fikspunktiterasjon: xn = xn- - f Hxn- L, f ' Hxn- L n =,, 3,... kan formuleres som ghxn L = xn xn = ghxn- L NewtonMethod@f_, 8x_, x0_<, n_ D := f@ðd NestListBð &, x0, nf NewtonMethod3@f_, 8x_, x0_<, n_ D := f@ðd Når du bruker Nestlist - funksjonen, må du spesifisere antall iterasjoner. Da unngår du ihvertfall å komme inn i en uendelig sløyfe. FiksPointList vil stanse iterasjonen når resultatet ikke lenger endrer seg. Det vil si at svaret er nøyaktig med 6 sifre: $MachinePrecision 6 Newton s metode er implementert i Mathematica ved FindRoot - kommandoen, men gir bare sluttresultatet etter iterasjonene. NewtonMethodFigure@f_, 8x_, a_, x0_, b_<, n_:, opts D := Module@ 8xi = NewtonMethod@f, 8x, x0<, nd, lines, pts<, lines = 8Table@Line@88xi@@iDD, f@xi@@iddd<, 8xi@@i + DD, 0<<D, 8i,, n<d, RGBColor@0, 0, D, Dashing@80.0<D, Table@Line@88xi@@iDD, 0<, 8xi@@iDD, f@xi@@iddd<<d, 8i,, n<d<; pts = Table@Point@8xi@@iDD, f@xi@@iddd<d, 8i, n<d; Show@Plot@f@xD, 8x, a, b<, PlotStyle 8Thick, Blue<, PlotRange -> AllD, Graphics@8PointSize@0.0D, Red, pts, Black, lines<d, optsd D Oppgave Tegn grafen til J HxL,.Besselfunksjonen av orden. Bruk Newton s metode til å bestemme nullpunk tet i intervallet [,4]. Bruk 6 iterasjoner. f@x_d := BesselJB, xf NewtonMethod@f, 8x,.<, 6D
3.43 3.88 3.454 3.459 3.459 NewtonMethodFigure@f, 8x,,.0, 4<, 6D 0.6 0.4 0..0.5 3.0 3.5 4.0-0. Oppgave Beregn numerisk verdi for det irrasjonale tallet. Hint: Løsningen er nullpunkt til funksjonen f(x) = x -. Bestem nullpunktet ved Newton s metode med 6 iterasjoner. Vis de 4 første iterasjonene grafisk. f@x_d := x - NewtonMethod@f, 8x,.0<, 6D.4667.44.44.44 NewtonMethodFigure@f, 8x,,, <, 4D.0.0 0.5. -0.5 -.0.4.6.8.0 3
4 Oppgave 3 Tegn grafen til f (x) = Hx - L3 over intervallet [0,]. Bestem nullpunktet i dette intervallet ved Newton s metode. Prøv med 5 iterasjoner, siden metoden konvergerer langsomt for triple røtter. Prøv også den modifiserte metoden for dobbel rot med 5 iterasjoner. Skriv til slutt et program som løser oppgaven skreddersydd for triple røtter, og test programmet på samme eksempel ( med få iterasjoner). f@x_d := Hx - L3 NewtonMethod@f, 8x, 0.8<, 5D 0.866667 0.9 0.94074 0.960494 0.973663 0.9844 0.98894 0.9996 0.994798 0.99653 0.997688 0.998459 0.99897 0.99935 Konvergens ikke oppnådd etter 5 iterasjoner NewtonMethodDoubleRoot@f, 8x, 0.8<, 5D 80.8, 0.933333, 0.977778, 0.99593, 0.99753, 0.99977, 0.99976, 0.999909, 0.99997, 0.99999, 0.999997, 0.999999,.,.,.,.< NewtonMethodTripleRoot@f_, 8x_, x0_<, n_ D := 3 f@ðd NewtonMethodTripleRoot@f, 8x, 0.8<, D Power::infy : Infinite expression encountered. 0. Infinity::indet : Indeterminate expression 0. ComplexInfinity encountered. 80.8,., Indeterminate< Da nullpunktet x = ble funnet eksakt allerede etter en iterasjon, vil f (x) = 0 og programmet gir feilmelding om divisjon med null om du itererer flere ganger. Oppgave 4 Med utgangspunkt i oppgave 3, skriv et program som bestemmer nullpunktet til en funksjon som har rot med multiplisitet k. Test programmet på f(x) = Hx - Lk for valgfri k.
Med utgangspunkt i oppgave 3, skriv et program som bestemmer nullpunktet til en funksjon som har rot med multiplisitet k. Test programmet på f(x) = Hx - Lk for valgfri k. NewtonMethodMultipleRoot@f_, 8x_, x0_<, k_, n_ D := k f@ðd f@x_d = Hx - L5 Hx - L5 NewtonMethodMultipleRoot@f, 8x,.75<, 5, D 8.75,.< 5