Ickelinjära ekvationer



Relevanta dokument
Block 5: Ickelineära. ekvationer? Läroboken. Löpsedel: Icke-lineära. ekvationer. Vad visade laborationen? Vad visade laborationen?

Icke-linjära ekvationer

Icke-linjära ekvationer

Sammanfattninga av kursens block inför tentan

Föreläsning 1. Numeriska metoder grundkurs II, DN1240. Carina Edlund Mottagningstid i rum 4516: onsdagar kl.

LABORATION cos (3x 2 ) dx I =

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

MMA132: Laboration 1 Introduktion till MATLAB

Lösningsförslag Tentamen i Beräkningsvetenskap I, 5.0 hp,

Numerisk Analys, MMG410. Lecture 10. 1/17

MMA132: Laboration 2 Matriser i MATLAB

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

2D1210, Numeriska Metoder, GK I för V 2.

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Facit Tentamen i Beräkningsvetenskap I (1TD393) STS ES W K1

ALA-a Innehåll RÄKNEÖVNING VECKA 7. 1 Lite teori Kapitel Kapitel Kapitel Kapitel 14...

Omtentamen i DV & TDV

Sekantmetoden Beräkningsmatematik TANA21 Linköpings universitet Caroline Cornelius, Anja Hellander Ht 2018

Lennart Carleson. KTH och Uppsala universitet

Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer

Kapitel 4. Iterativ lösning av ekvationer

Labb 3: Ekvationslösning med Matlab (v2)

6.3. Direkta sökmetoder

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Föreläsning 6: Introduktion av listor

Fixpunktsiteration. Kapitel Fixpunktsekvation. 1. f(x) = x = g(x).

Konvergens för iterativa metoder

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

Teknisk Beräkningsvetenskap I Tema 3: Styvhetsmodellering av mjuk mark med icke-linjära ekvationer

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Fredag 26 augusti 2005 TID:

Inlämningsuppgift 4 NUM131

Gruppuppgifter 1 MMA132, Numeriska metoder, distans

Linjärisering och Newtons metod

G VG MVG Programspecifika mål och kriterier

Newtons metod och arsenik på lekplatser

Lösandet av ekvationer utgör ett centralt område inom matematiken, kanske främst den tillämpade.

Facit till Några extra uppgifter inför tentan Matematik Baskurs. x 2 x

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

Institutionen för Matematik. F1 - Linjär algebra och numerisk analys, TMA671 Svar till övningar i Heath s bok och extraövningar

Tentaupplägg denna gång

FÖRELÄSNING 1 ANALYS MN1 DISTANS HT06

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Felfortplantning och kondition

6 Derivata och grafer

LABORATIONSHÄFTE NUMERISKA METODER GRUNDKURS 1, 2D1210 LÄSÅRET 03/04. Laboration 3 3. Torsionssvängningar i en drivaxel

R AKNE OVNING VECKA 1 David Heintz, 31 oktober 2002

Lathund algebra och funktioner åk 9

9-1 Koordinatsystem och funktioner. Namn:

Sammanfattning (Nummedelen)

Inbyggda funktioner i MATLAB

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik

Föreläsning 4: Kombinatorisk sökning

Prov kapitel FACIT Version 1

Varning!!! Varning!!!

FÖRSÄTTSBLAD TILL TENTAMEN. ELLER (fyll bara i om du saknar tentamenskod): Datum: 16 januari Bordsnummer:

Permutationer med paritet

OBS - ranking NYTT RANKINGSYSTEM. Jan-Erik Thomasson INNEHÅLL

ANDREAS REJBRAND Matematik Numeriska serier. Andreas Rejbrand, april /29

Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 2 juni 2014

TATA42: Föreläsning 10 Serier ( generaliserade summor )

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 13:e januari klockan

Introduktion till Matlab

Begrepp Värde (mätvärde), medelvärde, median, lista, tabell, rad, kolumn, spridningsdiagram (punktdiagram)

Uppgift 1 ( Betyg 3 uppgift )

Newtons metod. 1 Inledning. CTH/GU LABORATION 3 MVE /2014 Matematiska vetenskaper

Intervallhalveringsmetoden, GKN sid 73. Sekantmetoden, GKN sid 79

Repetitionsuppgifter i Matematik inför Basår. Matematiska institutionen Linköpings universitet 2014

RödGrön-spelet Av: Jonas Hall. Högstadiet. Tid: minuter beroende på variant Material: TI-82/83/84 samt tärningar

Programmeringsteknik med C och Matlab

Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, Del A

Linjärisering, Jacobimatris och Newtons metod.

MATEMATIK Datum: Tid: förmiddag Hjälpmedel: inga. Mobiltelefoner är förbjudna. A.Heintz Telefonvakt: Christo er Standar, Tel.

Institutionen för matematik Envariabelanalys 1. Jan Gelfgren Datum: Fredag 9/12, 2011 Tid: 9-15 Hjälpmedel: Inga (ej miniräknare)

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, Del A

Newtons metod. 1 Inledning. 2 Newtons metod. CTH/GU LABORATION 6 MVE /2013 Matematiska vetenskaper

MMA132: Laboration 1 & 2 Introduktion till MATLAB

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

Processidentifiering och Polplacerad Reglering

Textsträngar från/till skärm eller fil

Dataprojekt. Nanovetenskapliga tankeverktyg. January 18, 2008

NATIONELLT KURSPROV I MATEMATIK KURS C HÖSTEN 2009

Kort introduktion till Casio fx-9750 GII. Knappsats

Signalanalys med snabb Fouriertransform

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.

Grunderna i stegkodsprogrammering

Ordinära differentialekvationer,

TAIU07 Matematiska beräkningar med Matlab

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Laboration: Grunderna i Matlab

Funktioner och grafritning i Matlab

Mälardalens högskola Akademin för utbildning, kultur och kommunikation

Numeriska metoder, grundkurs II. Dagens program. Hur skriver man en funktion? Administrativt. Hur var det man gjorde?

Transkript:

Löpsedel: Icke-linjära ekvationer Ickelinjära ekvationer Beräkningsvetenskap I Varför är det svårt att lösa icke-linjära ekvationer? Iterativa metoder Bisektion/intervallhalvering Newton-Raphsons metod Noggrannhet/stoppvillkor hastighet/exekveringstid Läroboken Kap 5.1 (s 114-116), 5.4 (s 122-128), 5.6 (s.132-135) Kap 6.2 (s 144-149), 6.4 (s 151-154), 6.6 (s 157-161) Standardformulering av ickelineär ekvation: f(x) = 0 Ekvationen representeras i Matlab genom att vi definierar en Matlab-funktion som beskriver f(x) Matlabs inbyggda kommando för att lösa f(x) = 0 heter fzero fzero hittar ett nollställe per anrop Kräver startgissning eller intervall Använda fzero kräver viss kunskap om problemet och var man ska leta Plott ger ingen vettig information! Andel av en viss substans kan bara anta värden mellan 0 och 1. Ny plott: Problem för värdet 1. Visar sig att det blir division med noll 1

Exkludera 1, t ex mellan 0 och 0.8. Ny plott igen: Bättre. Här kan man se att det finns ett nollställe någonstans nära 0 Obs att det a intressanta i grafen är själva nollstället. Grafen i övrigt betyder ingenting. Nytt kommando för plottning: fplot Praktisk att använda då det man ska rita är en matematisk funktion som definieras i en Matlabfunktion, t ex funktionen func Ritas på intervallet [a b] med kommandot fplot(@func, [a b]) Man slipper använda linspace för att skapa x-axel och indelning ordnas automatiskt Ickelinjära i Matlab Skriv först på formen f(x) = 0 => problemet blir att hitta nollställe Använd fzero @func kallas för ett funktionshandtag x0 är startgissning f(x) = 0 x = fzero(@func, x0) I matlabfunktionen func finns f(x) definierad Går även att använda intervall som gissning x = fzero(@func, [a b]) Vad gör fzero? fzero bygger på en kombination av två olika grundalgoritmer: bisektionsmetoden Sekantmetoden, en variant av Newton- Raphsons metod (dessutom används invers interpolation, som vi hoppar över här) Kan datorn inte bara räkna ut lösningen...? Det finns väl formler för lösningarna? Nej!! Polynomekvationer kan bara lösas upp till grad 4 Exakt lösning i matematisk mening ger sällan siffervärden Hur beräknas egentligen 2? Tumregel: Icke-linjära problem iterativa metoder 2

Iterativ metod Iterativ metod - princip I en iterativ metod låter man x 0 vara en startgissning Man bildar sedan { x k } k=1 som en följd av approximationer till den exakta lösningen Om konvergens så är x = I praktiken kan man aldrig nå dit utan man stannar när tolerans uppfylld Hur bra kan det bli på en dator? x = startgissning x = ny gissning Ny gissning beräknas utgåe från någon formel eller princip Kan lyckas konvergens eller misslyckas divergens Hur snabbt metoden hittar lösningen - konvergenshastighet Bisektionsmetoden, idé a Idé: - Halvera intervallet - Välj som nytt intervall den del där teckenbyte finns - Upprepa m m b Etc tills intervallet tillräckligt litet Bisektionsmetoden, pseudokod Indata: Startintervall [a, b] så att f(a) och f(b) har olika tecken xl = a; xu = b xr = xl + (xu-xl)/2 if sign(f(xl))==sign(f(xr)) then xl = xr else xu = xr Newton-Raphsons, idé Från idé till formel Idé: - Hitta nollställe till tangenten i en punkt - Välj detta nollställe som ny punkt - Upprepa tills tillräckligt nära lösningen x 2 x 1 x 0 f(x) x Tangentens lutning: f (x 0 ) Tangentens lutning: (0-f(x 0 ))/(x 1 -x 0 ) (x 0, f(x 0 )) Ger: x 1 = x 0 f(x 0 )/f (x 0 ) (x 1, 0) x 0 f(x) x 3

Newton-Raphsons metod, pseudokod x = startgissning x = x f(x)/fprime(x) Tänker oss att fprime innehåller f (x), kan även beräknas numeriskt Newton-Raphsons brister Newton-Raphsons metod är snabb men... ganska mycket kan gå fel Hamnar nära eller i extrempunkt => blir 0 eller nästan 0 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 Robustare: Bisektion + N-R Man kan visa att N-R konvergerar om startgissningen är tillräckligt nära lösningen Hur kommer man tillräckligt nära? Koppla in Bisektionsmetoden, t ex så här: 1. Bestäm ett intervall där nollstället finns 2. Kör N-R 3. Om konvergens så klart annars (N-R t ex hamnat utanför intervallet) koppla in Bisektion några steg för att minska intervallet 4. Gå till punkt 1 med nya intervallet Kombinerar N-R:s snabbhet och Bisektions säkerhet. fzero innehåller en mer sofistikerad algoritm enligt samma princip. Hittills Vilket stoppvillkor? Newton-Raphson: Man brukar använda eller där tol ges av användaren Om skillnaden mellan två steg liten bör man vara nära roten Används även som uppskattning av felet Bisektion: Stanna då intervallet < tolerans, dvs while abs(xu xa)> tol där tol ges av användaren Man vet då att felet högst är intervallets längd Som lösning x k+1 används xr xl xr xu 4

Vad händer om metoderna inte konvergerar? Det kanske inte finns något nollställe. Man hamnar i en oändlig loop eftersom stoppvillkoret aldrig uppfyllt Man brukar därför lägga till maximalt antal iterationer som stoppvillkor maxiter = 100; % t ex 100 iter = 0; while ( )&(iter < maxiter) iter = iter + 1; Kan man inte använda f(x k+1 ) < tol? Problem vid diffus skärning - Långt från - stort avstånd mellan och x k - f(x k+1 ) 0 - Långt från - stort avstånd mellan x och k - f(x k+1 ) 0 Viktigt att metoder konvergerar snabbt, mäts med konvergenskvot: lim x k+1 = C k r x k, C konstant r = 1, C<1 => linjär konvergens r = 2 => kvadratisk konvergens r = 3 => kubisk konvergens Gäller i limes, men kan ses när man närmar sig lösningen Tolkning: fel i iteration k+1 = C (fel i iteration k) r Har man felet i iteration k vet man alltså vad felet i nästa iteration blir Hur vet man felet, inte känd? Man använder uppskattning eller Test >> [x,fx,fel] = NewtonRaphson(@func1, 3); >> [x fel fel.^2] ans = 3.0000 1.0000e+000 1.0000e+000 2.3320 6.6802e-001 4.4625e-001 1.9228 4.0920e-001 1.6744e-001 1.7604 1.6237e-001 2.6363e-002 1.7346 2.5795e-002 6.6536e-004 1.7340 6.2460e-004 3.9012e-007 1.7340 3.6208e-007 1.3110e-013 Fel vid iteration k+1 är ungefär felet vid iteration k i kvadrat => kvadratisk konvergens hos Newton-Raphson Vilken konvergenskvot har Bisektion? Felet halveras varje steg, dvs Linjär konvergens med C=1/2 Detta gör att Newton-Raphson konvergerar MYCKET snabbare (Bisektion å andra sidan säkrare) 5