UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i MoD 190 Prøveeksamen — Numeriske beregninger Eksamensdag: Mai 2002 Tid for eksamen: 9.00 – 13.00 Oppgavesettet er på 4 sider. Vedlegg: 1 Tillatte hjelpemidler: Ingen Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene. Alle 8 delspørsmål vektlegges likt. Oppgave 1 Diverse Matlab-oppgaver 1a Bruk rand funksjonen (se vedlegg) til å lage et Matlab-program som beregner et Monte-Carlo estimat for volumet av {(x1 , x2 , x3 , x4 ) : x21 + x22 + x23 + x24 ≤ 1}, enhetskulen i IR4 . 1b Istedenfor å uttrykke polynominterpolanten ved hjelp av basisfunksjonene 1, x, . . . , xn kan vi bruke den alternative representasjonen k−1 n X x−u pn−1 (x) = ak . v k=1 Her er u og v skalarer som translaterer og skalerer x-området. Generaliser InterpV (se vedlegg) slik at den kan kalles med enten to, tre eller fire argumenter. I et kall på formen a=InterpV(x,y) antar vi at u = 0 og v = 1. I et kall på formen a=InterpV(x,y,u) antar vi at v = 1 og at u inneholder translasjonsfaktoren. I et kall på formen a=InterpV(x,y,u,v) antar vi at u og v inneholder henholdsvis translasjons- og skalerings faktoren. 1c Anta at funksjonen f er tilgjengelig via en M-fil og definer Z z φ(z) = f (x)dx. −z (Fortsettes på side 2.) Eksamen i MoD 190 Prøveeksamen, Mai 2002 Side 2 Bruk Matlab-funksjonen quad(fname,A,B) (se vedlegg) til å generere en array phiVals(i) som inneholder φ(ti ), t =linspace(0,1,100). 1d La f = f (x, y) være en kontinuerlig funksjon av to variable. La L være linjesegmentet som forbinder de gitte punktene (a, b) og (c, d). Lag en M-fil som bruker fzero (se vedlegg) til å beregne et punkt (x∗ , y ∗) på L slik at f (x∗ , y ∗) = (f (a, b) + f (c, d))/2. Oppgave 2 En kvadratisk minimeringsmetode Gitt en kontinuerlig og unimodal funksjon f : IR → IR. Vi skal i denne oppgaven utlede en algoritme for å finne minimumspunktet z slik at f (z) ≤ f (x) for alle x. La p2 være polynomet av grad ≤ 2 slik at p2 (xk ) = f (xk ) for k = 0, 1, 2. Newtonformen til p2 med interpolasjonspunktene i rekkefølge x2 , x1 , x0 er gitt ved p2 (x) = f [x2 ] + f [x1 , x2 ](x − x2 ) + f [x0 , x1 , x2 ](x − x2 )(x − x1 ), hvor f [ ] betegner dividerte differenser, f.eks f [x0 , x1 , x2 ] = f (x2 )−f (x1 ) x2 −x1 − f (x1 )−f (x0 ) x1 −x0 x2 − x0 . 2a La 1 1 f [x1 , x2 ] . x3 = (x1 + x2 ) − 2 2 f [x0 , x1 , x2 ] (1) Vis under en passelig betingelse at x3 er et minimumspunkt for p2 . 2b Ut fra (1) kan vi definere følgende iterasjonsprosess for å finne z: for k = 2 : n − 1 xk+1 = 12 (xk−1 + xk ) − f [xk−1 ,xk ] 1 2 f [xk−2 ,xk−1 ,xk ] Anta at funksjonen f er tilgjengelig via en M-fil. Lag en Matlabfunksjon zt=minmin(fname,x0,x1,x2,n) som til gitte x0 , x1 , x2 genererer x3 , x4 , . . . , xn og returnerer zt = xn . Programmet skal kun kalle f en gang for hver k. Du kan anta at x0 , x1 , . . . , xn alle er distinkte og at f [xk−2 , xk−1 , xk ] 6= 0 for alle k. (Fortsettes på side 3.) Eksamen i MoD 190 Prøveeksamen, Mai 2002 Side 3 2c Algoritmen bryter sammen dersom f [xk−2 , xk−1 , xk ] = 0 for en k. Gi en geometrisk tolkning av dette. 2d Forklar hvorfor vi ikke kan ha f [xk−2 , xk−1 , xk ] = 0 for en k dersom f har kontinuerlig 2. derivert og f 00 (x) > 0 for alle x. (Fortsettes på side 4.) Eksamen i MoD 190 Prøveeksamen, Mai 2002 Side 4 Matlab-vedlegg RAND % % % % % % % % % % Uniformly distributed random numbers. RAND(N) is an N-by-N matrix with random entries, chosen from a uniform distribution on the interval (0.0,1.0). RAND(M,N) and RAND([M,N]) are M-by-N matrices with random entries. RAND(M,N,P,...) or RAND([M,N,P,...]) generate random arrays. RAND with no arguments is a scalar whose value changes each time it is referenced. function a = InterpV(x,y) a = InverpV(x,y) This computes the Vandermonde polynomial interpolant where x is a column n-vector with distinct components and y is a column n-vector. a is a column n-vector with the property that if p(x) = a(1) + a(2)x + ... a(n)x^(n-1) then p(x(i)) = y(i), i=1:n n = length(x); V = ones(n,n); for j=2:n % Set up column j. V(:,j) = x.*V(:,j-1); end a = V\y; QUAD Numerically evaluate integral, adaptive Simpson quadrature. Q = QUAD(FUN,A,B) tries to approximate the integral of function FUN from A to B to within an error of 1.e-6 using recursive adaptive Simpson quadrature. The function Y = FUN(X) should accept a vector argument X and return a vector result Y, the integrand evaluated at each element of X. FZERO Scalar nonlinear zero finding. X = FZERO(FUN,X0) tries to find a zero of the function FUN near X0. FUN accepts real scalar input X and returns a real scalar function value F evaluated at X. The value X returned by FZERO is near a point where FUN changes sign (if FUN is continuous), or NaN if the search fails. X = FZERO(FUN,X0), where X is a vector of length 2, assumes X0 is an interval where the sign of FUN(X0(1)) differs from the sign of FUN(X0(2)). An error occurs if this is not true. Calling FZERO with an interval guarantees FZERO will return a value near a point where FUN changes sign.