NMM minimodul 6 p. 1/2 Numeriske metoder i matlab Lektion 6 Tom Søndergaard Pedersen Palle Andersen Aalborg University
NMM minimodul 6 p. 2/2 Interpolation Polynomium, splines, mindste kvadraters metode. Polynomium: Teorem 1 Weierstrass Lad f være en kontinuert funktion i [a,b]. Givet et h > 0, vil der eksistere et polynomium p N(h) sådan at f(x) p N(h) (x) < h for alle x i [a,b]. Derfor eksisterer der en sekvens af polynomier således at f p n 0 når n
NMM minimodul 6 p. 3/2 Interpolation, polyfit Polynomial curve fitting Syntax(simpel): p = polyfit(x,y,n) hvor p er array med polynomium koefficienter. x og y er array s med sammenhørende værdier og n er polynomiets orden. x=[1.1 3.6 6.2 10.1]; y=[1.5 3.7 4.8 6.9]; p1=polyfit(x,y,1); p2=polyfit(x,y,2); p3=polyfit(x,y,3); xp=1.1:0.01:10.1; y1=polyval(p1,xp); y2=polyval(p2,xp); y3=polyval(p3,xp); plot(xp,y1,xp,y2,xp,y3,x,y, * )
NMM minimodul 6 p. 4/2 Interpolation, polyfit 8 Polynomium tilpasning, polyfit 7 6 Y værdi 5 4 3 2 ret linie 2. grads poly. 3. grads poly. 1 1 2 3 4 5 6 7 8 9 10 11 X værdi
NMM minimodul 6 p. 5/2 Optimering Optimering af en parameter, p, i en funktion y = f(x,p) således at der for N sammenhørende målepunkter [x m (1),y m (1)], [x m (2),y m (2)], [x m (3),y m (3)],..., [x m (N),y m (N)] gælder at P(p) = N (y m (i) y(i)) 2 i=1 er mindst mulig findes ved at løse ligningen dp(p) dp = N [(y m (i) f(x(i),p))( f(x,p) ) ] = 0 p x=x(i) i=1
NMM minimodul 6 p. 6/2 Optimering, 2 parametre Optimering af to parameter, (p 1, p 2 ), i en funktion y = f(x, p 1, p 2 ) således at der for N sammenhørende målepunkter [x m (1), y m (1)],[x m (2), y m (2)],[x m (3), y m (3)],...,[x m (N), y m (N)] gælder at P(p) = N (y m (i) y(i)) 2 i=1 er mindst mulig findes ved at løse de 2 ligninger P(p 1, p 2 ) p 1 = P(p 1, p 2 ) p 2 = N (y m (i) f(x(i), p 1, p 2 ))( f(x, p 1, p 2 ) ) x=x(i) = 0 p 1 i=1 N (y m (i) f(x(i), p 1, p 2 ))( f(x, p 1, p 2 ) ) x=x(i) = 0 p 2 i=1
NMM minimodul 6 p. 7/2 Optimering, mindste kvadrater Optimering af parametre, p = [p 1, p 2,.., p M ], i en funktion y = f(x, p) således at der for N sammenhørende målepunkter [x m (1), y m (1)],[x m (2), y m (2)],[x m (3), y m (3)],...,[x m (N), y m (N)] gælder at P(p) = N (y m (i) y(i)) 2 i=1 er mindst mulig bestemmes af karakteren af f(x, p) hvis f(x, p) er et polynomium i x med grad N 1 kan de M parametre bestemmes så polynomiet går igennem alle punkter, hvis Vandermonde determinanten V 0. hvis f(x, p) er et polynomium i x med grad < N 1 kan de M parametre bestemmes ved hjælp af matlab funktionen polyfit eller backslash operatoren så middel kvadratafstanden til de N punkter minimeres. hvis f(x, p) er lineær i p d.v.s f(x, p) = p 1 f 1 (x) + p 2 f 2 (x) + + p M f M (x) kan parametrene bestemmes som i et at de to ovenstående tilfælde hvis funktionen ikke er lineær i p bestemmes parametre ved optimering som beskrevet i forrige slides
NMM minimodul 6 p. 8/2 Interpolation, Splines Stykvis polynomiumtilpasning uden spring, knæk etc. Definition 3 Lad a = x 0 < x 1 < < x n = b. En funktion s:[a,b] R er en spline eller spline funktion af m te grad med kunderne (interpolationspunkterne) x 0,x 1, x n hvis 1. s er et stykvist polynomium sådan at på hvert underinterval [x k,x k+1 ] har s højest graden m, og 2. s er m 1 gange differentiabel overalt.
NMM minimodul 6 p. 9/2 Interpolation, Splines Eksempel 11. Er s en kvadratisk spline? s(x) = Spline hvis s og s kontinuert i 0, 2 x 2 + x x [ 1, 0] x x [0, 2] x 2 3x + 4 x [2, 5] x 0 s(x) 0 s (x) = 2x + 1 1 x 0 + s(x) 0 s (x) = 1 x 2 s(x) 2 s (x) = 1 x 2 + s(x) 2 s (x) = 2x 3 1
NMM minimodul 6 p. 10/2 Interpolation, Splines 14 Eksempel 11. En kvadratisk spline 12 10 8 y værdier 6 4 2 0 2 1 0 1 2 3 4 5 x værdier
NMM minimodul 6 p. 11/2 Interpolation, Splines 1.ordens (lineær) splines Linien der går i gennem (x k,f(x k )) og (x k+1,f(x k+1 )) er givet ved y = f(x k ) + f(x k+1) f(x k ) x k+1 x k (x x k ) eller hvor s k (x) = a k + b k (x x k ) a k = f(x k ) b k = f(x k+1) f(x k ) x k+1 x k
NMM minimodul 6 p. 12/2 Interpolation, Kubiske splines Mest almindelige splines er af 3. grad eller kubiske s k (x) = a k + b k (x x k ) + c k (x x k ) 2 + d k (x x k ) 3 her skal gælde s k (x k ) = f(x k ), s k (x k+1 ) = f(x k+1 ) (k = 0, 1,,n 1) s k (x k+1) = s k+1 (x k+1) (k = 0, 1,,n 2) s k (x k+1) = s k+1 (x k+1) (k = 0, 1,,n 2) hvilket giver 4n koefficienter og 4n 2 ligninger, så vi har 2 frihedsgrader.
NMM minimodul 6 p. 13/2 Interpolation, Kubiske splines Definition 4 Den naturlige kubiske spline er defineret ved indføre de to ekstra betingelser s (a) = s (b) = 0 Dette tillader splinefunktionen at være kontinuert med rette linier undenfor intervallet [a, b] og stadig være glat.
NMM minimodul 6 p. 14/2 Kubiske splines, Matlab spline Cubic spline data interpolation Syntax pp = spline(x,y) yy = spline(x,y,xx)
NMM minimodul 6 p. 15/2 Kubiske splines, Matlab x = 0:10; y = sin(x); xx = 0:.25:10; yy = spline(x,y,xx); plot(x,y, o,xx,yy) 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 0 1 2 3 4 5 6 7 8 9 10
NMM minimodul 6 p. 16/2 Kubiske splines, Matlab x = -4:4; y = [0.15 1.12 2.36 2.36 1.46.49.06 0]; cs = spline(x,[0 y 0]); xx = linspace(-4,4,101); plot(x,y, o,xx,ppval(cs,xx), - ); 3 2.5 2 1.5 1 0.5 0 0.5 4 3 2 1 0 1 2 3 4
NMM minimodul 6 p. 17/2 Differentialligninger, Euler løsning Eksempel: Beskrivelse af bil s bevægelse med kendt hastighed og hjulvinkel.
NMM minimodul 6 p. 18/2 Differentialligninger, Euler løsning Ligninger: dθ(t) dt dx F (t) dt dy F (t) dt = v B (t) tan(ϕ(t)) l = v B(t) cos(θ(t) + ϕ(t)) cos(ϕ(t)) = v B(t) sin(θ(t) + ϕ(t)) cos(ϕ(t))
NMM minimodul 6 p. 19/2 Differentialligninger, Euler løsning Den simpleste måde at tilnærme en differentialkoefficient er dx(t) dt lim t 0 x(t + t) x(t) t x(t + t) x(t) t dθ(t) dt dx F (t) dt dy F (t) dt θ(t + t) θ(t) t x F(t + t) x F (t) t y F(t + t) y F (t) t = v B (t) tan(ϕ(t)) l = v B(t) cos(θ(t) + ϕ(t)) cos(ϕ(t)) = v B(t) sin(θ(t) + ϕ(t)) cos(ϕ(t))
NMM minimodul 6 p. 20/2 Differentialligninger, Euler løsning θ(t + t) θ(t) t x F (t + t) x F (t) t y F (t + t) y F (t) t = v B (t) tan(ϕ(t)) l = v B(t) cos(θ(t) + ϕ(t)) cos(ϕ(t)) = v B(t) sin(θ(t) + ϕ(t)) cos(ϕ(t)) θ(t + t) = θ(t) + t v B (t) tan(ϕ(t)) l x F (t + t) = x F (t) + t v B(t) cos(θ(t) + ϕ(t)) cos(ϕ(t)) y F (t + t) = y F (t) + t v B(t) sin(θ(t) + ϕ(t)) cos(ϕ(t))