Newton–Raphson

Det er god trening å prate matematikk. Her er det fritt fram for alle. Obs: Ikke spør om hjelp til oppgaver i dette underforumet.

Newton–Raphson

Innlegg Gjest123 » 23/09-2020 10:32

Jeg sliter litt med en oppgave:

Bruk Newton-Raphsons metode for å finne tilnærminger til begge løsningene av ligningen:
f(x) = 3x^2 + 4x − 4
Bruk en feiltoleranse på E = 10^−12. Utforsk hvordan valget av initialverdi x0 påvirker
hvilken av løsningene algoritmen konvergerer mot.

Håper noen her klarer å hjelpe meg
Gjest123 offline

Re: Newton–Raphson

Innlegg SveinR » 23/09-2020 11:34

Nøyaktig hva er det du lurer på her? Er det å tolke hva oppgaven spør om, eller lurer du på hva Newton-Raphson metoden er, eller rett og slett hvordan du kan programmere den? For jeg antar det er meningen å programmere algoritmen her.
SveinR offline
Brahmagupta
Brahmagupta
Innlegg: 350
Registrert: 22/05-2018 21:12

Re: Newton–Raphson

Innlegg Gjest123 » 23/09-2020 12:10

Hvordan jeg kan programmere det
Gjest123 offline

Re: Newton–Raphson

Innlegg SveinR » 23/09-2020 12:29

Algoritmen sier at gitt et "løsningsgjett" $x_i$ for nullpunktet til en funksjon, så er neste iterasjon av løsningen gitt ved

$x_{i+1} = x_i - \frac{f(x_i)}{f'(x_i)}$

Slik at for en initialverdi $x_0$ så blir neste løsningsverdi $x_1$ gitt ved

$x_{1} = x_0 - \frac{f(x_0)}{f'(x_0)}$

og dette kan vi gjenta videre, så neste (forbedrede) løsningsverdi $x_2$ er gitt ved

$x_{2} = x_1 - \frac{f(x_1)}{f'(x_1)}$


Dette lar seg f.eks. programmere ved hjelp av en while-løkke, som løper helt til løsningsverdien blir god nok - som i ditt tilfelle er helt til "feilen" blir 1.0E-12. Nøyaktig hvordan du vil programmere dette kommer an på språket du bruker. Under er en pseudokode for hvordan man kan tenke:

Kode: Merk alt
x_0 = 1.0  #dette er en initialverdi som vi kan velge selv, det er gjerne vanlig å sette den til 1.0

løsning = x_0 #denne oppdaterer vi i løkken

while løsning IKKE god nok:
     ny_løsning = løsning - f(løsning)/f'(løsning) #dette er Newton-Raphson-formelen, litt omskrevet

     løsning = ny_løsning #her oppdaterer vi løsningen vår, og dette gjentas i hver iterasjon

print(løsning) #skriver ut den siste verdien vi fant, etter at vi har kommet ut av løkka


Du må her også tenke gjennom hvordan du kan finne verdien til den deriverte i programmet (hint: Bruk definisjonen til den deriverte).
SveinR offline
Brahmagupta
Brahmagupta
Innlegg: 350
Registrert: 22/05-2018 21:12

Hvem er i forumet

Brukere som leser i dette forumet: Ingen registrerte brukere og 24 gjester