UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

advertisement
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.
Download