Matematikk 1000 Eksamensaktuelle numerikk-oppgåver Som kj er numeriske metodar ein sentral del av dette kurset. Dette vil også sette preg på eksamen. Men vi kjem ikkje til å bruke datamaskin på sjølve eksamen, så numerikk-oppgåvene vil vere litt ulike dei de har fått på obligane. I dette oppgåvesettet vil de sjå eksempel på korleis eksamensoppgåver i numerikk kan sjå ut. Oppgåve 1 Skript-jeopardy Her er det gitt nokre skript. Ingen av dei er kommentert. Forklar kort kva for eit matematisk problem kvar av dei løyser kva dei reknar ut. Og, hvis metoden har eit namn vi bør kjenner til: Kva heiter metoden? a) S=0; for n=1:10; S=S+n^3; S b) a=-2; b=2; N=50; DeltaX=(b-a)/N; T=0; for n=0:n x=a+n*deltax; Funk=sin(x^2); if n==0 n==n T=T+DeltaX/2*Funk; else T=T+DeltaX*Funk; T 1
c) x0=-1; xgm=1e2; xny=x0; while abs(xgm-xny)>1e-3 xgm=xny; xny=xgm-(-xgm+3-exp(xgm-1))/(-1-exp(xgm-1)); x=xny d) Dette er eit skript som forsøker å estimere integralet 2 0 x/(x2 2) dx ved hjelp av trapesmetoden: a=0; b=2; N=100; DeltaX=(b-a)/N; T=0; for n=0:n x=a+n*deltax; Funk=x/(x^2-2); if n==0 n==n T=T+DeltaX/2*Funk; else T=T+DeltaX*Funk; T Her er det gjort ein grov feil. Kva for ein? Oppgåve 2 Eulers metode a) Eulers metode er ein av eire teknikkar som gjer oss i stand til å numerisk estimere løysinga av initialverdiproblem av typen y = F (x, y), y(x 0 ) = y 0. Kva fordel har slike teknikkar framfor analytiske teknikkar vi har lært? Har slike numeriske teknikkar noko ulempe? b) Skriptet nedanfor implementerar løysinga av eit initialverdiproblem. Kva for eit? % Initialkrav: x0=0; y0=1; % Sluttverdi for x: 2
xslutt=10; % Bestemmer antal steg - og steglengde N=50; h=(xslutt-x0)/n; % Begynnar på vektor med y-verdiar yvektor(1)=y0; % For-løkke som lagar vektor med y-verdiar for i=1:n x=xvektor(i); y=yvektor(i); yd=x+2*sqrt(x)*sin(y); yvektor(i+1)=y+yd*h; % Lagar vektor med x-verdiar: xvektor=x0:h:xslutt % Plottar resultatet plot(xvektor,yvektor,'k','linewidth',2) set(gca,'fontsize',20) xlabel('x') ylabel('y') c) Vi køyrer dette skriptet Octave/Matlab og får opp plottet vist i gur 1. Figur 1: Resultatet ved køyring av skriptet i deloppgåve 3 b). I kor stor grad kan vi påsta at dette faktisk er grafen til løysinga av initialverdiproblemet? Nemn eit krav som er nødvig for at estimatet skal vere i nærleiken av den eksakte løysinga. 3
Oppgåve 3 Diverse summar a) Dette skriptet, som er mangelfullt kommentert, reknar ut ein sum: % Set S til 0. S=0; for i=1:10; S=S+1/i; % Skriv S til skjerm S Kva for ein sum blir rekna ut? Skriv han ved hjelp av -notasjon. b) Juster skriptet slik at det reknar ut summen 14 n=3 n. c) Dette skriptet, som også er mangelfullt kommentert, reknar ut ein spesiell type sum: % Start og slutt: a=0; b=5; % Bestemmer N og dx N=10; dx=(b-a)/n; % Set R til 0 R=0; for i=1:n x=a+(i-1)*dx; % Bestemmer x f=sqrt(x^2+1); % Bestemmer f R=R+f*dx; % Skriv R til skjerm R Kva kallar vi ein sum av denne typen? Ein kan bruke dette skriptet til å estimere eit integral. Kva for eit integral? Og korleis? d) Føreslå ei justering på skriptet over slik at integralet blir estimert på ein meir eektiv måte. 4
Oppgåve 4 Estimat frå tabell a) Denne tabellen viser temperaturane ein bestemt stad på re klokkeslett ein bestemt dag: Temperatur ( C) 14.3 14.7 15.0 15.2 Klokkeslett 13:56 13:58 14:00 14:02 Bruk tabellen til å estimere den deriverte til Temperaturen klokka 14:00. b) Eit basseng blir fylt med ein slange der trykket avtar. Farten det blir fylt med, målt i liter per sekund, er gitt for nokre bestemte tidpunkt i denne tabellen: Straum (l/s) 2.4 2.3 2.0 1.8 1.7 Tid (s) 0 0.5 1 1.5 2 Bruk tabellen til å estimere kor mykje vatn som har blitt fylt i dette tidsrommet. c) Volumet ved tida t = 15 s, V (15 s), var 164 l. Lat oss gå ut frå at vi også veit at V (15 s) = 1.3 l/s. Bruk dette til å estimere V (14 s) og V (16 s). Oppgåve 5 Finn fem feil Skripta nedanfor implementerar løysingar av ulike gitte problem. Men dei har alle ein feil 1. Desse feila er ikkje av tyrkleif-typen. Og feila treng ikkje vere av reint teknisk karakter dei kan også vere meir teoretiske. Finn feilen i kvart av tilfella. a) Problem: Løys likninga sin x = ln x. % Bestemmer x_0 x0=1; % Bestemmer presisjon: Pres=1e-4; % Tilordnar ny og gamal x-verdi xny=x0; xgml=100; % While-løkke som køyrer så lenge differansen er større enn Pres while abs(xny-xgml)>pres 1 Eventuelle eire feil er utilsikta. 5
xgml=xny; % Lar xgml vere xny frå forige iterasjon % Renkar ut xny: xny=xgml-(sin(xgml)-log(xgml))/(cos(xgml)+1/xgml); % Skriv løysing til skjerm xny b) Problem: Rekn ut integralet 3 1 sin x 2 + 1 dx. % Start- og sluttverdi: a=1; b=3; % Antal del-intevall N=10; % Steglengde: h=1/n; % Fyrste ledd: f=sin(sqrt(a^2+1)); T=1/2*f*h; % For-løkke f.o.m. 2. t.o.m. nest siste ledd for i=1:(n-1) x=a+i*dx; f=sin(sqrt(x^2+1)); T=T+f*h; % Siste ledd: f=sin(sqrt(b^2+1)); T=T+1/2*f*h; % Skriv svar til skjerm T c) Problem: Gitt funmksjonen f(x) = x, partisjonen P = {0, 0.2, 0.5, 1, 1.5, 1.7, 2} og seleksjonen S = {0.1, 0.3, 1, 1, 1.75, 1.8}, rekn ut Riemann-summen R P,S. % Partisjon P=[0, 0.2, 0.5, 1, 1.5, 1.7, 2]: % Seleksjon S=[0.1, 0.3, 1, 1, 1.25, 1.8]; % Bestemmer lengda N=length(P) 6
% Set R til null R=0; % For-løkke som reknar ut Riemann-summen for i=1:n xstjerne=s(i); DeltaX=P(i+1)-P(i); f=sqrt(xstjerne); R=R+f*DeltaX; % Skriv Riemann-summen til skjerm R (Hint: Kor mange ledd skal Riemann-summen ha?) d) Problem: Finn eventuelle nullpunkt til funksjonen f(x) = (x2 + 1)e x/2 x 2 4x + 2 i intervallet [0, 2]. % Høgre og venstre grense a=0; b=2; % Funksjonsverdiar i punkta: fa=(a^2+1)*exp(a/2)/(a^2-4*a+2); fb=(b^2+1)*exp(b/2)/(b^2-4*b+2); % Bestemmer presisjon Pres=1e-4; % Halverar intevallet så lenge det er vidare enn Pres while abs(b-a)>pres c=(a+b)/2; fc=(c^2+1)*exp(c/2)/(c^2-4*c+2); if fa*fc>0 a=c; else b=c; % Skriv svar til skjerm c e) Problem: Løys dette initialverdiproblemet: y = x + y, y(0) = 0. 7
% Initialkrav: x0=0; y0=0; % Sluttverdi for x: xslutt=5; % Bestemmer antal steg - og steglengde N=20; h=(xslutt-x0)/n % Lagar x-vektor xvektor=x0:h:xslutt; % Begynnar på y-vektor yvektor(1)=y0; % For-løkke som lagar vektor med y-verdiar for i=1:n x=x0+i*h; y=yvektor(i); yd=x+sqrt(y); yvektor(i+1)=y+yd*h; % Plottar resultatet plot(xvektor,yvektor) (Hint: Denne feilen er litt subtil. Det går gale heilt i starten.) Oppgåve 6 Numerikk på ein elementær funksjon I denne oppgåva tar vi utgongspunkt i denne funksjonen: f(x) = x x 2 + 1. a) Bruk framover-, bakover- og midpunktformelen til å estimere f (2). Bruk steglengda h = 0.5, og regn feilen i estimatet for kvar av dei tre formlane. b) Estimér integralet 2 0 f(x) dx ved hjelp av trapesmetoden. Integrasjonsområdet skal delast inn i 4 del-intervall. c) Med n = 2m (m N) del-intervall gir Simpsons metode 2 dette estimatet på intregralet ( 1 S 2m = h 3 f(x 0) + 4 3 f(x 1) + 2 3 f(x 2) +... + 4 3 f(x 2m 1) + 1 ) 3 f(x 2m). Bruk også denne metoden til å estimere integralet over. Bruk 4 delintervall her også. 2 Denne metoden er ikkje pensum. Det bør likevel gå bra å bruke den gitte formelen. 8
d) For kvar av metodane over: Kor stor blir feilen? e) Finn ei tilnærma løysing av likninga f(x) = 1 ved å bruke Newtons metode. Start iterasjonen ved å la x 0 vere 1 og bruk to iterasjonar. f) Likninga over kan faktisk løysast analytisk. Finn løysinga og bruk dette til å bestemme feilen i tilnærminga over. Oppgåve 7 Skisse til løysing I deloppgåvene nedanfor er det gitt ulike problem som ikkje utan vidare kan løysast analytisk. Forklar kort korleis vi kan gå fram for å nne ei numerisk løysing på kvart av problema. Du kan ta utgongspunkt i at problemet skal implementerast i Octave/Matlab, men du treng ikkje ta med eksplisitt kode i svara. a) Løys initialverdiproblemet xy y = x 2, y(0) = 1. b) Rekn ut integralet 1 1 ex2 /2 dx. c) Løys likninga x = cos x. Oppgåve 8 Meir Eulers metode a) Gitt initialverdiproblemet y = y med y(0) = 1, bestem y(1). b) Med blyant, papir og evt. kalkulator: Bruk Eulers metode med steglengda h = 0.5 til å estimere y(1) ut frå initialverdiproblemet. Kor stor blir feilen? c) Gjer det same som i b) med Eulers midtpunktmetode. 9