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

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

Linjärisering, Jacobimatris och Newtons metod.

Linjärisering och Newtons metod

Matlab övningsuppgifter

Linjära ekvationssystem

Optimeringsproblem. 1 Inledning. 2 Optimering utan bivillkor. CTH/GU STUDIO 6 TMV036c /2015 Matematiska vetenskaper

CTH/GU LABORATION 1 MVE /2013 Matematiska vetenskaper. Mer om grafritning

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

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

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

Linjära ekvationssystem i Matlab

Newtons metod och arsenik på lekplatser

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

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

MMA132: Laboration 2 Matriser i MATLAB

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

Parametriserade kurvor

Labb 3: Ekvationslösning med Matlab (v2)

Linjära system av differentialekvationer

Icke-linjära ekvationer

Laborationstillfälle 1 Lite mer om Matlab och matematik

Konvergens för iterativa metoder

TMV225 Inledande Matematik M

LABORATION cos (3x 2 ) dx I =

Interpolation Modellfunktioner som satisfierar givna punkter

Flervariabelanalys och Matlab Kapitel 2

Mer om geometriska transformationer

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

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

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

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

Lösningsförslag till inlämningsuppgift 3 i Beräkningsprogrammering Problem 1) function condtest format compact format long

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

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

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

Dubbelintegraler. 1 Inledning. 2 Rektangelregeln. CTH/GU LABORATION 5 MVE /2018 Matematiska vetenskaper

x 2 x 1 W 24 november, 2016, Föreläsning 20 Tillämpad linjär algebra Innehåll: Projektionssatsen Minsta-kvadratmetoden

15 februari 2016 Sida 1 / 32

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28

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

Matriser och vektorer i Matlab

Mer om funktioner och grafik i Matlab

Funktionsytor och nivåkurvor

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

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

Geometriska transformationer

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

Från förra gången: Newton-Raphsons metod

Minsta-kvadratmetoden

Numerisk Analys, MMG410. Lecture 10. 1/17

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

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod

Ickelinjära ekvationer

TANA17 Matematiska beräkningar med Matlab

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

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

Introduktion till Matlab

Introduktion till Matlab

Matlab övningsuppgifter

1 Ickelinjär optimering under bivillkor

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

Funktioner och grafritning i Matlab

Fel- och störningsanalys

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

Laboration 2. Laborationen löses i grupper om två och redovisas individuellt genom en lappskrivning den 3/10. x = 1±0.01, y = 2±0.05.

2. (a) Skissa grafen till funktionen f(x) = e x 2 x. Ange eventuella extremvärden, inflektionspunkter

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

Kurvanpassning. Kurvanpassning jfr lab. Kurvanpassning jfr lab

Matematik och Kemi på Chalmers

2320 a. Svar: C = 25. Svar: C = 90

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

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

För teknologer inskrivna H06 eller tidigare. Skriv GAMMAL på omslaget till din anomyna tentamen så att jag kan sortera ut de gamla teknologerna.

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

Introduktion till Matlab

Introduktion till MATLAB

Fel- och störningsanalys

Sammanfattninga av kursens block inför tentan

Symboliska beräkningar i Matlab

Introduktion till Matlab

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

MMA132: Laboration 1 & 2 Introduktion till MATLAB

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

Laboration 2, M0043M, HT14 Python

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Mer om funktioner och grafik i Matlab

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

SF1669 Matematisk och numerisk analys II Bedömningskriterier till tentamen Måndagen den 16 mars 2015

SF1625 Envariabelanalys

MATLAB Laboration problem med lokala extremvärden

Tentamen, del 2 DN1240 Numeriska metoder gk II för F

Matriser och linjära ekvationssystem

% Föreläsning 4 22/2. clear hold off. % Vi repeterar en liten del av förra föreläsningen:

Sidor i boken f(x) = a x 2 +b x+c

TAIU07 Matematiska beräkningar med Matlab

Flervariabelanalys E2, Vecka 3 Ht08

Kravspecifikation Fredrik Berntsson Version 1.3

Repetition, Matematik 2 för lärare. Ï x + 2y - 3z = 1 Ô Ì 3x - y + 2z = a Ô Á. . Beräkna ABT. Beräkna (AB) T

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Introduktion till Matlab

Transkript:

CTH/GU LABORATION 3 MVE270-2013/2014 Matematiska vetenskaper Newtons metod 1 Inledning Vi skall lösa system av icke-linjära ekvationer. Som exempel kan vi ta, { x1 (1 + x 2 2) 1 = 0 x 2 (1 + x 2 1 ) 2 = 0 som är ett system av två ekvationer i två obekanta (Exempel 1, Adams 13.6). Om vi inför de två funktionerna f 1 (x 1, x 2 ) = x 1 (1 + x 2 2 ) 1 f 2 (x 1, x 2 ) = x 2 (1 + x 2 1) 2 kan ekvationssystemet skrivas { f1 (x 1, x 2 ) = 0 f 2 (x 1, x 2 ) = 0 Med vektorbeteckningar f = (f 1, f 2 ), x = (x 1, x 2 ), och 0 = (0, 0), ser vi att f : R 2 R 2 och vi kan skriva ekvationerna på den kompakta formen f(x) = 0. Vi skall använda Newtons metod för att lösa sådana ekvationer. Men vi börjar med att rita upp noll-nivåkurvorna till f 1 respektive f 2. 3 2.5 f 1 (x 1, x 2 ) = 0 2 1.5 1 0.5 f 2 (x 1, x 2 ) = 0 0 0.5 1 1 0.5 0 0.5 1 1.5 2 2.5 3 Vi ser lösningen till f(x) = 0 som den punkt där noll-nivåkurvorna till f 1 och f 2 skär varandra. En första approximation av lösningen kan vi läsa av i grafiken för att sedan förbättra denna med Newtons metod. Vi skall beskriva Newtons metod, men först skall vi se hur vi ritar noll-nivåkurvor. 1

Vi börjar med att beskriva de två komponentfunktionerna f 1 och f 2. För att vi skall kunna beräkna dessa med matriser av x 1 - och x 2 -värden låter vi dem bero av två separata variabler. >> f1=@(x1,x2)x1.*(1+x2.^2)-1; >> f2=@(x1,x2)x2.*(1+x1.^2)-2; Nu kan vi använda contour på ett enkelt sätt. Eftersom contour kan ges antal nivåer eller en vektor med nivåvärden måste vi ge vektorn [0 0], ger vi bara 0 tolkas det som ingen nivå. >> x1=linspace(-1,3,30); x2=linspace(-1,3,30); >> [X1,X2]=meshgrid(x1,x2); >> Z1=f1(X1,X2); Z2=f2(X1,X2); >> contour(x1,x2,z1,[0 0], g ) >> hold on >> contour(x1,x2,z2,[0 0], b ) >> grid on Koden ovan ger bilden på förra sidan. När vi skall använda Newtons metod vill vi beskriva problemet med den vektorvärda funktionen f och med vektorn x som variabel. Med koden >> f=@(x)[f1(x(1),x(2)) f2(x(1),x(2))]; bildar vi denna funktion. Lägg märke till hur vi använder komponentfunktionerna f 1 och f 2 samt hur vi plockar ut x 1 - och x 2 -värdena ur vektorn x. Med [...] ser vi till att f blir en vektor. 2 Newtons metod Låt f : R R vara en deriverbar funktion. Vi skall lösa ekvationen f(x) = 0 med Newtons metod. Det här gjorde vi i envariabelanalysen så detta blir lite repetition. Antag att vi har en approximativ lösning x k och vi vill hitta en bättre approximation x k+1. Vi bildar linjäriseringen av f i x k : och löser L(x) = 0 istället för f(x) = 0. Lösningen får bli nästa approximation: L(x) = f(x k ) + f (x k )(x x k ) f(x k ) + f (x k )(x x k ) = 0 (1) x k+1 = x k f(x k) f (x k ). Detta är Newtons metod. Geometriskt betyder (1) att vi följer tangenten och hittar x k+1 där denna skär x-axeln. Som stoppvillkor för iterationen tar vi x k+1 x k tol Det betyder att vi accepterar x k+1 om ändringen i sista iteration är mindre än toleransen tol. Vi tillåter maximalt k max iterationer (k max = 10 är rimligt). 2

Som ett litet exempel tar vi f(x) = cos(x) x och vi skall lösa f(x) = 0. En graf (rita den gärna) visar att vi har ett nollställe och vi tar x 0 = 1 som startapproximation. >> f=@(x)cos(x)-x; Df=@(x)-sin(x)-1; >> x=1; >> kmax=10; tol=0.5e-8; >> for k=1:kmax h=-f(x)/df(x); x=x+h; disp([x h]) if abs(h)<tol, break, end end 0.750363867840244-0.249636132159756 0.739112890911362-0.011250976928882 0.739085133385284-0.000027757526078 0.739085133215161-0.000000000170123 System av ekvationer Nu är det dags för system av n ekvationer i n obekanta f 1 (x 1,...,x n ) = 0. f n (x 1,...,x n ) = 0 Om vi låter x 1 x =. x n, f = f 1. f n, 0 = så har vi f : R n R n, och vi kan skriva systemet på formen f(x) = 0. 0., 0 Antag att vi har en approximativ lösning x k och vi vill hitta en bättre approximation x k+1. Vi bildar linjäriseringen av f i x k : och löser L(x) = 0 istället för f(x) = 0. L(x) = f(x k ) + Df(x k )(x x k ) = 0. Om vi låter h = x x k så kan L(x) = 0 skrivas som ekvationen Df(x k )h = f(x k ). Detta är ett linjärt ekvationssystem, Jacobimatrisen Df(x k ) är en n n-matris, som vi löser med avseende på h. Nu bildar vi nästa approximation av lösningen till f(x) = 0: x k+1 = x k + h. 3

Som stoppvillkor för iterationen tar vi x k+1 x k tol Vi avbryter när vi har tillräcklig noggrannhet och vi tillåter maximalt k max iterationer (k max = 10 är rimligt). Nu ser vi åter på exemplet från inledningen (Exempel 1, Adams 13.6). Vi har alltså [ x1 (1 + x f(x) = 2 2 ) 1 ] [ ] 1 + x 2 x 2 (1 + x 2, Df(x) = 2 2x 1 x 2 1) 2 2x 1 x 2 1 + x 2, 1 och skall lösa f(x) = 0. Vi har ju redan beskrivit funktionen och dess komponenter. Nu måste vi även beskriva Jacobimatrisen >> Df=@(x)[1+x(2)^2 2*x(1)*x(2) 2*x(1)*x(2) 1+x(1)^2]; Från bilden med noll-nivåkurvorna ser vi att x 0 = (0.25, 2) nog är en bra startapproximation av nollstället och vi bestämmer det noggrant med Newtons metod enligt >> x=[0.25;2]; >> kmax=10; tol=0.5e-8; >> for k=1:kmax h=-df(x)\f(x); x=x+h; disp([x norm(h)]) if norm(h)<tol, break, end end 0.217391304347826 1.913043478260870 0.092869605927364 0.214829670172721 1.911781803315968 0.002855484777347 0.214829232694196 1.911768811990568 0.000012998689285 0.214829232680284 1.911768811998807 0.000000000016168 Vi ritar ut nollstället med en liten röd ring med plot(x(1),x(2), ro ) så vi får ser att det är rätt nollställe vi har bestämt. Uppgift 1. Låt f(x) = (x 3 1 + x2 2 1, ex 1x 2 + x 1 + x 2 2). Lös ekvationssystemet f(x) = 0. Rita upp noll-nivåkurvorna till f 1 och f 2 för att se var ungefär lösningarna (skärningspunkterna) ligger. Hur många lösningar finns det? Läs av i grafiken en första approximation av en lösning för att sedan förbättra denna med Newtons metod. Rita ut lösningen med en liten ring. Upprepa tills du beräknat alla lösningar till systemet. 3 Ekvationslösning i Matlab I Matlab Optimization Toolbox finner vi fsolve som använder en modifierad version av Newtons metod. För en sista gång ser vi på exemplet från inledningen. Vi har alltså [ ] x1 (1 + x f(x) = 2 2) 1 x 2 (1 + x 2 1 ) 2 = 0, och i Matlab löser vi med (samma startapproximation som tidigare) 4

>> f=@(x)[x(1)*(1+x(2)^2)-1 x(2)*(1+x(1)^2)-2]; >> x0=[0.25;2]; >> x=fsolve(f,x0) x = 0.214829232694215 1.911768811990538 Uppgift 2. Låt f(x) = (sin(x 1 ) x 2, x 1 cos(x 2 )). Lös ekvationssystemet f(x) = 0. Rita upp noll-nivåkurvorna till f 1 och f 2 för att se var ungefär lösningarna ligger. Hur många lösningar finns det? Läs av en första approximation av en lösning och förbättra den sedan med fsolve. Rita ut lösningen med en liten ring. Upprepa tills du beräknat alla lösningar till systemet. Använd ginput för att läsa av startapproximation i grafiken. 5

6

CTH/GU Uppföljning av LABORATION 3 MVE270-2013/2014 Matematiska vetenskaper 1 Målsättning Avsikten med denna laboration är att lära sig att lösa system av icke-linjära ekvationer med Newtons metod samt med fsolve, ett färdigt program för ekvationslösning i Matlab. 2 Kommentarer och förklaringar Newtons metod utnyttjar funktions- och derivatavärden för att lokalt med linjärisering approximera den funktion vi söker nollställe till. Varje ny approximation ger en bättre bestämning av nollstället. Det finns dock en svag punkt, en linjärisering är inte alltid en bra approximation i ett stort område. Vi måste därför alltid ge Newtons metod en bra första gissning av nollstället. Men det är inget större problem om vi har två ekvationer i två obekanta för då kan vi rita noll-nivåkurvor för att får grepp om hur många nollställen det finns, var ungefär de ligger och vilka som är av intresse för oss. Har vi fler obekanta (och fler ekvationer) får vi med kunskap om tillämpningen söka startapproximationer. Det färdiga programmet fsolve bygger på en modifiering av Newtons metod. Derivatan av funktionen (som vi söker nollställe till) approximeras i programmet så vi behöver inte ge den. 3 Lärandemål Efter denna laboration skall du kunna redogöra för den grundläggande idén i Newtons metod lösa ekvationer f(x) = 0 i fallet n = 2, genom att rita upp noll-nivåkurvor, grovt lokalisera nollställen av intresse och sedan bestämma dem noggrant med Newtons metod använda fsolve för lösning icke-linjära ekvationssystem 7