9
MATEMATISKA VETENSKAPER TMV225 2016 Chalmers tekniska h¨ ogskola asvecka 5 Examinator: Anders Logg TMV225 Inledande matematik M Veckoprogram f¨ or l¨ asvecka 5 Efter att ha avslutat v˚ art studie av derivator kommer vi den h¨ar veckan att fokusera p˚ aber¨aknings- matematik och f¨orbereda oss inf¨or l¨asvecka 6 d˚ a vi skall studera och implementera generella algoritmer f¨or ekvationsl¨osning. Det blir en f¨orel¨asning med ny teori d˚ a vi studerar Lipschitz- kontinuitet som ¨ar ett centralt verktyg f¨or konstruktion och analys av l¨osningsalgoritmerna, men vi kommer framf¨orallt att fokusera p˚ a programmering, b˚ ade p˚ af¨orel¨asningarnaoch¨ovningarna. Ta chansen att jobba ikapp med tidigare uppgifter om du ligger efter, och gl¨om inte att g¨ora veckans datordugga (dugga nummer 2) f¨or att samla bonuspo¨ang inf¨or tentan! Vi ses p˚ af¨orel¨asningarna! Anders orel¨ asningar Avsnitt 1 Inneh˚ all F12 Lipschitz-kontinuitet F13 Flyttal och avrundningsfel F14 Ber¨ akningsmatematik ¨ Ovningar Uppgifter 2 ¨ O12 ¨ Ovning 5.1–5.10 (a) och (b) ¨ O13 Problem 5.1–5.5 + gamla uppgifter om du ligger efter ¨ O14 Dator¨ ovning 5.1–5.5 http://xkcd.com/ 1 AE = Adams/Essex, AL = Anteckningar i inledande matematik, RP = Pettersson, JM = Madjarova 2 Understrukna uppgifter = extra viktiga, alternativt demonstreras av ¨ ovningsledare.

TMV225 Inledande matematik M Veckoprogram f¨or l ¨asvecka 5

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

MATEMATISKA VETENSKAPER TMV225 2016

Chalmers tekniska h

¨

ogskola L

¨

asvecka 5

Examinator: Anders Logg

TMV225 Inledande matematik M

Veckoprogram f

¨

or l

¨

asvecka 5

Efter att ha avslutat vart studie av derivator kommer vi den h

¨

ar veckan att fokusera pa ber

¨

aknings-

matematik och f

¨

orbereda oss inf

¨

or l

¨

asvecka 6 da vi skall studera och implementera generella

algoritmer f

¨

or ekvationsl

¨

osning. Det blir en f

¨

orel

¨

asning med ny teori da vi studerar Lipschitz-

kontinuitet som

¨

ar ett centralt verktyg f

¨

or konstruktion och analys av l

¨

osningsalgoritmerna, men

vi kommer framf

¨

orallt att fokusera pa programmering, bade pa f

¨

orel

¨

asningarna och

¨

ovningarna.

Ta chansen att jobba ikapp med tidigare uppgifter om du ligger efter, och gl

¨

om inte att g

¨

ora

veckans datordugga (dugga nummer 2) f

¨

or att samla bonuspo

¨

ang inf

¨

or tentan!

Vi ses pa f

¨

orel

¨

asningarna!

Anders

Forelasningar Avsnitt1 Innehall

F12 — Lipschitz-kontinuitetF13 — Flyttal och avrundningsfelF14 — Berakningsmatematik

Ovningar Uppgifter2

O12 Ovning 5.1–5.10 (a) och (b)O13 Problem 5.1–5.5 + gamla uppgifter om du ligger efterO14 Datorovning 5.1–5.5

http://xkcd.com/

1AE = Adams/Essex, AL = Anteckningar i inledande matematik, RP = Pettersson, JM = Madjarova

2Understrukna uppgifter = extra viktiga, alternativt demonstreras av

¨

ovningsledare.

Uppgifter läsvecka 5

Övningar

Övning 5.1 Bestäm en Lipschitz-konstant på intervallet [�10,10] för följande funktionergenom att använda Lipschitz-konstantens definition.(a) f (x) = kx+m (b) f (x) = 5 (c) f (x) = 1/x (d) f (x) = |x| ⌅

Övning 5.2 Bestäm en Lipschitz-konstant på intervallet [2,5] för följande funktioner genomatt använda Lipschitz-konstantens definition.(a) f (x) = x

2 (b) f (x) = x

3 (c) f (x) = x

n (n 2 Z+) (d) f (x) = x

�n (n 2 Z+) ⌅

Övning 5.3 Bestäm en Lipschitz-konstant för funktionen f (x) = x

2/(x+ 1) på följandeintervall genom att använda Lipschitz-konstantens definition.(a) [0,1] (b) [1,2] (c) [�3,�1] (d) [�3,�2] ⌅

Övning 5.4 Bestäm en Lipschitz-konstant för funktionen f (x) = 3+2p

1+ |x| på följandeintervall genom att använda Lipschitz-konstantens definition.(a) [1,2] (b) [0,1] (c) [�1,0] (d) [�1,1] ⌅

Övning 5.5 Bestäm den bästa möjliga Lipschitz-konstanten på intervallet [�10,10] förföljande funktioner genom att derivera.(a) f (x) = kx+m (b) f (x) = 5 (c) f (x) = 1/x (d) f (x) = |x| ⌅

Övning 5.6 Bestäm den bästa möjliga Lipschitz-konstanten på intervallet [2,5] för följandefunktioner genom att derivera.(a) f (x) = x

2 (b) f (x) = x

3 (c) f (x) = x

n (n 2 Z+) (d) f (x) = x

�n (n 2 Z+) ⌅

Övning 5.7 Bestäm den bästa möjliga Lipschitz-konstanten för funktionen f (x) = x

2/(x+1)på följande intervall genom att derivera.(a) [0,1] (b) [1,2] (c) [�3,�1] (d) [�3,�2] ⌅

Övning 5.8 Bestäm den bästa möjliga Lipschitz-konstanten för funktionen f (x) = 3 +2p

1+ |x| på följande intervall genom att derivera.(a) [1,2] (b) [0,1] (c) [�1,0] (d) [�1,1] ⌅

Övning 5.9 Bestäm Taylor-polynomet P3(x) runt x = 1 för följande funktioner.(a) f (x) = sin(px) (b) f (x) = sin(lnx) (c) f (x) = 3x

2 +5x+1(d) f (x) = sin(lnx)+3x

2 +5x+1 ⌅

Övning 5.10 Bestäm Taylor-polynomet P3(x) för f (x) = (x+1)/(x+2) runt följande punk-ter.(a) x = 0 (b) x =�1 (c) x =�2 (d) x = 2 ⌅

Problem

Problem 5.1 Visa att om f : R ! R är Lipschitz-kontinuerlig och talföljden (xn

)•n=0 är

konvergent, så är också talföljden ( f (xn

))•n=0 konvergent. ⌅

Problem 5.2 Visa att f (x) =p

x inte är Lipschitz-kontinuerlig på intervallet [0,1]. ⌅

Problem 5.3 För vilka a är f (x) = x

a Lipschitz-kontinuerlig på intervallet [0,1]? ⌅

Problem 5.4 En kula med vikten 7.26 kg skall tillverkas av järn (densitet r = 7.874 g/cm3).Hur noggrannt måste kulans radie bestämmas (i absoluta tal) för att noggrannheten i kulansvikt skall vara 1h? Ledning: Använd Lipschitz-villkoret. ⌅

Problem 5.5 Hur noggrannt måste längden L på ett pendelur bestämmas för att uret skalldra sig maximalt en sekund på ett år? Ledning: Använd Lipschitz-villkoret och antag attperiodtiden T = 1 s ges av T = 2p

pL/g för g = 9.81 m/s2. ⌅

Datorövningar

Datorövning 5.1 Skriv ett program som (approximativt) beräknar Lipschitz-konstanten förfunktionen f (x) = sin(cos(ln(px))) på intervallet [1,100]. Ledning: Låt x=linspace(1,100,N) och använd funktionerna diff och max. ⌅

Datorövning 5.2 Försök att på samma sätt bestämma Lipschitz-konstanten för funktionenf (x) = sin(tan(x)) på intervallet [0,p/2]. ⌅

Datorövning 5.3 Skriv ett program som beräknar summan ÂN

n=1 n, dels genom att användaen loop och dels genom att använda funktionen sum. Plotta tiden det tar att beräkna summansom funktion av N för båda tillvägagångssätten. Ledning: Använd funktionen time.time iPython och funktionerna tic och toc i MATLAB. ⌅

Datorövning 5.4 Skriv ett program som beräknar produkten PN

n=1n = 1 · 2 · 3 · · ·N, delsgenom att använda en lopp och dels genom att använda funktionen prod. Plotta tiden det taratt beräkna summan som funktion av N för båda tillvägagångssätten. ⌅

Datorövning 5.5 Undersök hur många flyttal som maximalt kan lagras i datorns minne. Hurmånga bytes motsvarar detta? Jämför med datorns arbetsminne (RAM). Ledning: Användfunktionen ones(N) och experimentera med allt större N. Använd gärna en systemmonitor(“Aktivitetskontroll”, top eller liknande verktyg) för att övervaka processen när den allokerarminne. ⌅

FacitÖvningarÖ5.1 (a) L

f

= |k| (b) L

f

= 0 (c) Ej Lipschitz-kontinuerlig (d) L

f

= 1Ö5.2 (a) L

f

= 10 (b) L

f

= 75 (c) L

f

= n ·5n�1 (d) L

f

= n ·5n�1 ·2�2n

Ö5.3 (a) L

f

= 3 (b) L

f

= 2 (c) Ej Lipschitz-kontinuerlig (d) L

f

= 15Ö5.4 (a) L

f

= 1/p

2 (b) L

f

= 1 (c) L

f

= 1 (d) L

f

= 1Ö5.5 (a) L

f

= |k| (b) L

f

= 0 (c) Ej Lipschitz-kontinuerlig (d) L

f

= 1Ö5.6 (a) L

f

= 10 (b) L

f

= 75 (c) L

f

= n ·5n�1 (d) L

f

= n ·2�(n+1)

Ö5.7 (a) L

f

= 3/4 (b) L

f

= 8/9 (c) Ej Lipschitz-kontinuerlig (d) L

f

= 3/4

Ö5.8 (a) L

f

= 1/p

2 (b) L

f

= 1 (c) L

f

= 1 (d) L

f

= 1Ö5.9 (a) P3(x) = �p(x� 1)+ p

3(x� 1)3/6 (b) P3(x) = (x� 1)� (x� 1)2/2+(x� 1)3/6(c) P3(x) = 3x

2 +5x+1 (d) P3(x) = (x�1)� (x�1)2/2+(x�1)3/6+3x

2 +5x+1Ö5.10 (a) P3(x) = 1/2+ x/4� x

2/8+ x

3/16 (b) P3(x) = x+1� (x+1)2 +(x+1)3

(c) Existerar inte (d) P3(x) = 3/4+(x�2)/16� (x�2)2/64+(x�2)3/256

ProblemP5.1 Låt x = lim

n!• x

n

(som existerar) och låt f = f (x). Då gäller att | f � f (xn

)| = | f (x)�f (x

n

)|6 L

f

|x�x

n

|< e när |x�x

n

|< e/L

f

, vilket är uppfyllt för n tillräckligt stort eftersom(x

n

)•n=0 är konvergent.

P5.2 Antag att f (x) =p

x är Lipschitz-kontinuerlig med Lipschitz-konstant L

f

. Tag x1 = 0 ochx2 = x > 0. Då gäller att | f (x1)� f (x2)|6 L

f

|x1 � x2|, det vill säga |0�p

x|6 L

f

|0� x|,

px 6 L

f

x , L

f

> 1/p

x. Genom att låta x ! 0 ser vi att Lipschitz-konstanten inte ärbegränsad och att funktionen därmed inte är Lipschitz-kontinuerlig.

P5.3 Derivatan f

0(x) = ax

a�1 är begränsad på [0,1] för a > 1, vilket innebär att funktionen ärLipschitz-kontinuerlig med Lipschitz-konstanten L

f

= a .P5.4 Massan ges av m(r) = 4pr

3r/3. Derivera och få |Dm| 6 L

f

|Dr| med L

f

= 4pr

2r . Sätt

|Dm|/m 6 L

f

|Dr|/m = 1h, vilket ger |Dr|= 1⇥10�3 ·m/L

f

⇡ 20 µm.P5.5 Derivera och få |DT |6 L

f

|DL| med L

f

= p/p

Lg = 2p

2/(gT ). Sätt 365 ·24 ·3600 · |DT |6365 ·24 ·3600 ·L

f

|DL|= 1 s, vilket ger |DL|⇡ 16 nm.

DatorövningarD5.1

Python code

1 from pylab import *23 def f(x):4 return sin(cos(log(pi*x)))56 Ns = logspace(1, 6, 20)7 L_fs = []89 for N in Ns:

1011 x = linspace(1, 100 , int(N))12 y = f(x)1314 L_f = max(abs(diff(y) / diff(x)))15 L_fs.append(L_f)1617 print N, L_f18

19 figure ()20 plot(x, f(x))21 xlabel(’x’)22 ylabel(’f(x)’)23 grid(True)2425 figure ()26 semilogx(Ns , L_fs , ’-o’)27 xlabel(’N’)28 ylabel(’L_f’)29 grid(True)3031 show()

MATLAB code

1 f = @(x) sin(cos(log(pi*x)))23 Ns = logspace(1, 6, 20);4 L_fs = [];56 format long78 for N = Ns9

10 x = linspace(1, 100, round(N));11 y = f(x);1213 L_f = max(abs(diff(y) ./ diff(x)));14 L_fs = [L_fs L_f];1516 [N, L_f]1718 end1920 figure ()21 plot(x, f(x))22 xlabel(’x’)23 ylabel(’f(x)’)24 grid on2526 figure ()27 semilogx(Ns , L_fs , ’-o’)28 xlabel(’N’)29 ylabel(’L_f’)30 grid on

Lipschitz-konstanten skall konvergera mot L

f

= sin(log(p)) · cos(cos(log(p)))⇡ 0.8339.

D5.2

Python code

1 from pylab import *23 def f(x):4 return sin(tan(x))56 Ns = logspace(1, 6, 20)7 L_fs = []89 for N in Ns:

1011 x = linspace(0, pi/2, int(N))12 y = f(x)1314 L_f = max(abs(diff(y) / diff(x)))15 L_fs.append(L_f)1617 print N, L_f1819 figure ()20 plot(x, f(x))21 xlabel(’x’)22 ylabel(’f(x)’)23 grid(True)2425 figure ()26 semilogx(Ns , L_fs , ’-o’)27 xlabel(’N’)28 ylabel(’L_f’)29 grid(True)3031 show()

MATLAB code

1 f = @(x) sin(tan(x))23 Ns = logspace(1, 6, 20);4 L_fs = [];56 format long78 for N = Ns9

10 x = linspace(0, pi/2, round(N));11 y = f(x);1213 L_f = max(abs(diff(y) ./ diff(x)));14 L_fs = [L_fs L_f];1516 [N, L_f]1718 end1920 figure ()21 plot(x, f(x))22 xlabel(’x’)23 ylabel(’f(x)’)24 grid on2526 figure ()27 semilogx(Ns , L_fs , ’-o’)28 xlabel(’N’)29 ylabel(’L_f’)30 grid on

Funktionen är ej Lipschitz-kontinuerlig: L

f

! • på [0,b] då b ! p/2.

D5.3

Python code

1 from pylab import *2 from time import time34 Ns = logspace(1, 6, 20)5 t1 = []6 t2 = []78 for N in Ns:9

10 t = time()11 s = 012 for n in range(1, int(N) + 1):13 s += n14 t1.append(time() - t)1516 t = time()17 s = sum(range(1, int(N) + 1))18 t2.append(time() - t)1920 loglog(Ns, t1 , ’g-o’)21 loglog(Ns, t2 , ’r-o’)22 legend([’Loop’, ’sum()’])23 grid(True)24 show()

MATLAB code

1 Ns = logspace(1, 6, 20);2 t1 = [];3 t2 = [];45 for N = Ns67 tic()8 s = 0;9 for n = 1:N

10 s = s + n;11 end12 t1 = [t1, toc()];1314 tic()15 s = sum (1:N);16 t2 = [t2, toc()];1718 end1920 loglog(Ns, t1 , ’g-o’)21 hold on22 loglog(Ns, t2 , ’r-o’)23 legend(’Loop’, ’sum()’)24 grid on

D5.4

Python code

1 from pylab import *2 from time import time34 Ns = logspace(1, 5, 20)5 t1 = []6 t2 = []78 for N in Ns:9

10 t = time()11 p = 112 for n in range(1, int(N) + 1):13 p *= n14 t1.append(time() - t)1516 t = time()17 p = prod(range(1, int(N) + 1))18 t2.append(time() - t)1920 loglog(Ns, t1 , ’g-o’)21 loglog(Ns, t2 , ’r-o’)22 legend([’Loop’, ’prod()’])23 grid(True)24 show()

MATLAB code

1 Ns = logspace(1, 6, 20);2 t1 = [];3 t2 = [];45 for N = Ns67 tic()8 s = 1;9 for n = 1:N

10 s = s*n;11 end12 t1 = [t1, toc()];1314 tic()15 s = prod (1:N);16 t2 = [t2, toc()];1718 end1920 loglog(Ns, t1 , ’g-o’)21 hold on22 loglog(Ns, t2 , ’r-o’)23 legend(’Loop’, ’prod()’)24 grid on

D5.5

Python code

1 from pylab import *23 x = ones(8e9)4 print len(x)

MATLAB code

1 x = ones(2e9, 1);2 size(x)

(Python) På en modern laptop (2016) med 16 GB internminne (RAM) och väl tilltagetväxlingsutrymme (swap space) går gränsen vid ca 8⇥109 element (innan processen kraschar),vilket innebär 8⇥109 ·8 byte = 8⇥109 ·8/10243 GB ⇡ 59.6 GB. I god överensstämmelse meddetta rapporterar operativsystemet att Python-processen använder 60 GB.

(MATLAB) Med MATLAB går gränsen vid 2⇥109 element (innan MATLAB själv sätterstopp för större allokering), vilket innebär 2⇥109 ·8 byte = 2⇥109 ·8/10243 GB ⇡ 14.9 GB. Igod överensstämmelse med detta rapporterar operativsystemet att MATLAB-processen använder15 GB.