stefan@it.uu.se Eempel f ( ) = e + = 5 3 f ( ) = + + 5= f (, y) = cos( ) sin ( ) + y = Kan endast i undantagsfall lösas eakt Kan sakna lösning, ha en lösning, ett visst antal lösningar eller oändligt många lösningar Löses genom att formulera om till f ( ) = e + = f (, y) = cos( ) sin( ) + y = och beräkna nollställen En direkt metod är en metod där man med ändligt antal steg hittar eakt lösning (eakt upp till noggrannhet i indata eller ε M ). Eempel: Gauss-elimination Finns inga direkta metoder för icke-linjära! Istället iterativa metoder Börja med en startgissning och använd någon metod för att successivt leta sig fram närmare och närmare lösningen Ger en sekvens av approimationer,, 3,K till den eakta lösningen * Om k närmar sig lösningen och = så konvergerar lösningen annars divergerar den Ickelinjära ekvationer => iterativa metoder
Felet vid iteration k: e k = k el. e = k k men inte känd, istället används vanligen ek = k k k e k eller k = k Viktigt med snabb konvergens. Konvergenshastighet definieras e r lim k+ = C lim e r k+ = C ek k ek k, C konstant - r =, C< => linjär konvergens - r > => superlinjär konvergens - r = => kvadratisk konvergens - Tolkning? Eempel Iteration nr 3 4 5 Uppmätt fel e k Linjär konv Kvadratisk konv -.5.5.5.63 - - -4-8 -6 Aldrig så rena siffror som i eemplet Gäller dessutom egentligen då k, dvs när man börjar närma sig roten. Kan ta lite tid innan metoden börjar konvergera
Ett par metoder Bisektionsmetoden Eempel f ( ) < Bestäm startintervall t e = = Obs måste vara olika f ( tecken på, ) > f ( ) f ( ) Vet då att det finns ett nollställe på intervallet Halvera + = =.5 Välj det intervall som innehåller teckenbyte: f ( ) > f ( ) < Välj högra intervallet. Vet då att [, ] 3 Halvera + 3 = =.75 Välj det intervall som innehåller teckenbyte: f ( 3 ) > f ( ) < Välj vänstra intervallet. Vet då att [, 3] 3
3 4 Halvera + 3 4 = =.65 Välj det intervall som innehåller teckenbyte: f ( 3 ) > f ( 4 ) < Välj högra intervallet. Vet då att [ 3, 4] Upprepa tills tillräckligt nära Bisektionsmetoden är säker (hittar alltid en rot förutsatt att det finns en i startintervallet) långsam Linjär konvergens med C = / Newton-Raphsons metod Eempel f ( ) Börja med startgissning t e =. Beräkna nollstället till tangenten i f ( ) => 4
f ( ) Beräkna nollstället till tangenten i f ( ) => f ( ) Beräkna nollstället till tangenten i f ( ) => 3 Ligger nu mycket nära nollstället 3 Newton Raphsons metod säker? f ( ) Newton Raphsons metod är osäker Antag startgissning = Hamnar långt från roten snabb kvadratisk konvergens (ibland kubisk) 5
Härledning Newton-Raphsons metod Taylorutveckla kring k och ta med termer upp till :a derivata (linjära termer) Hitta nollstället till detta uttryck f ( k + h) = f ( k ) + hf ( ) + h k f ( ) + L= k f ( k ) + hf ( k ) = f ( k ) + ( k+ k ) f ( k ) = h f ( k ) k k + k+ = k f ( k ) f ( k ) Newton-Raphsons metod Ganska mycket kan gå fel Hamnar nära eller i etrempunkt => f ( k ) blir eller nästan Svårt att förutse vilket nollställe som hittas, någon punkt hamnar på en plats så att tangenten skjuter iväg till ett annat nollställe Kan även hamna i cykliska förlopp studsar hela tiden mellan samma sekvens av värden f ( k ) = Newton-Raphsons metod Man kan visa att N-R konvergerar om är tillräckligt nära lösningen Hur kommer man tillräckligt nära? Koppla in Bisektionsmetoden:. Bestäm ett intervall där nollstället finns. Kör N-R 3. om konvergens så klart annars (N-R t e hamnat utanför intervallet) koppla in Bisektion några steg för att minska intervallet 4. Gå till punkt med nytt intervall Kombinerar N-R snabbhet och Bisektions säkerhet 6
Hur ska man avgöra konvergens? Stoppvillkor vanligen k + k < tol tol ges av användaren k+ där Bör även kolla att f ( k ) Kan få problem om diffus skärning liten även långt från. Leder till att f ( k ) k + = k f ( k k) k f ( k ) Kan leda till att iterationerna stannar en bit från Om detta kan vara ett problem kan man använda uppskattningen f ( ) k k min f ( ζ ) på sin beräknade lösning, där ζ väljs i ett intervall där både och k ingår. Räcker vanligen med en grov uppskattning av f (ζ ) Motsvarar stort konditionstal för linjära system 7