Loading [MathJax]/jax/element/mml/optable/BasicLatin.js
Innehåll[-] Feedback

Relationer och funktioner

Kartesiska produkter [-]

Den kartesiska produkten X×Y av mängderna X och Y är mängden som består av alla ordnade par [a,b] (eller (a,b)) där aX och bY, dvs. X×Y={[a,b]:aX,bY}. Det ordnade paret [a,b] an definieras som mängden {{a},{a,b}} men det finns också andra möjliga definitioner och det är ytterst ovanligt att man verkligen behöver använda sig av den här definitionen.

Exempel [+]
  • {0,1,2}×{a,b}={[0,a],[0,b],[1,a],[1,b],[2,a],[2,c]}.
  • R×R=R2 är planet och elementen i R2, dvs. punkterna i planet skrivs vanligen i formen (x,y).

Relationer [-]

En relation är någotslags samband mellan två storheter men följande mängdteoretiska definition är mera exakt men det är kanske inte genast helt klart vad den riktigt innebär:
En relation från mängden X till mängden Y (eller en relation i mängden X om Y=X) är en delmängd av den kartesiska produkten X×Y.

En relation som en riktad graf [+]

Om mängden X innehålller ändligt många element så kan man beskriva relationen WX×X som en graf i vilken elementen i X är grafens noder och det finns en båge från nod x till nod y om och endast om [x,y]W.
Till exempel på följande sätt:

JSXGraph v0.99.4 Copyright (C) see http://jsxgraph.org
1
2
3
4
5
6
7

Relationen är {[4,2], [4,3], [5,1], [5,5], [5,6]}

Du kan lägga till eller ta ort bågar (dvs. element i relationen) genom att först klicka på bågens startnod och sedan på dess ändnod.

I en icke-riktad graf gör man inte skillnad på bågens start- och ändnod.

Exempel: Relationen < [+]

En relation i en mängd med ändligt många element kan framställas som en riktad graf men om det finns oändligt många element i mängden är det vanligtvis inte ett fungerande alternativ.

A
B
C

Till exempel W={[x,y]:x,yR,x<y} är en relation i mängden R och därför, som alla relationer i R, en delmängd av planet R2. Men när man talar om den här relationen "mindre än" så avser man vanligen (som i många andra fall) ett predikat M(x,y), som är sant då [x,y]W, dvs. då x<y (och då lönar det sig förstås att istället för M(x,y) skriva x<y).

 

Olika slag av relationer i en mängd X [-]

Relationen W i mängden X är
  • reflexiv ifall [x,x]Wför alla xX.
  • symmetrisk ifall [x,y]W[y,x]W för alla x och yX.
  • transitiv ifall [x,y]WAND[y,z]W[x,z]W för alla x, y och zX.
  • antisymmetrisk ifall [x,y]WANDxy[y,x]W (dvs. [x,y]WAND[y,x]Wx=y) för alla x och yX.
  • asymmetrisk ifall [x,y]W[y,x]W för alla x och yX.
  • total ifall [x,y]WOR[y,x]W för alla x och yX.
Dessutom säger vi att W är en
  • ekvivalensrelation ifall W är reflexiv, symmetrisk och transitiv,
    • partiell ordning ifall W är reflexiv, antisymmetrisk och transitiv,
    • fullständig ordning (eller linjär ordning) ifall W är en partiell ordning och total,
    • välordning ifall W är en fullständig ordning och i varje icke-tom delmängd av X finns ett minsta element.
Ofta skriver man xWy i stället för [x,y]W, till exempel xy och inte [x,y]∈≺.
Exempel: Partiell ordning [+]
Låt X vara en (icke-tom) mängd och P(X) mängden av alla dess delmängder (den sk. potensmängden). I mängden P(X) har vi relationen : AB om och endast om A är en delmängd av B. Den här relationen är en partiell ordning eftersom den är
  • reflexiv: AA,
  • antisymmetrisk: Om AB och AB så finns det ett element xB så att xA och då gäller BA,
  • transitiv: Om AB och BC så är varje element i A ett element i B och eftersom varje element i B är ett element i C så är också varje element i A ett element i C så att AC.
Dessutom har den här partiella ordningen också den egenskapen att ifall A, BP(X) så finns det en minsta övre gräns för mängderna A och B, dvs. en mängd C sådan att AC, BC (C är en övre gräns) och ifall AD och BD så gäller CD (det finns ingen "mindre" övre gräns). Det är klart att C=AB. på motsvarande sätt finns det en största övre gräns som (naturligtvis?) är AB.

Ekvivalensklasser [+]

Ifall X är en icke-tom mängd och är en ekvivalensrelation i mängden X, så delar den mängden X i delmängder Yj, jJ som kallas ekvivalensklasser så att

  • jJYj=X,
  • YjYk= ifall jk,
  • ab a och b hör till samma mängd Yj.
Ofta användar man sig av en ekvivalensrelation så att två element som är ekvivalenta (dvs. paret bildat av dem hör till relationen ) är "desamma", så att man istället för mängden X behandlar mängden {Yj:jJ}, vars element är ekvivalensklasser.

Exempel: Heltal som ekvivalensklasser [+]

I mängden X={[m,n]:m,nN} kan vi (när vi först definierat addition för naturliga tal) definiera en ekvivalensrelation så att [m1,n1][m2,n2] om och endast om m1+n2=m2+n1.

Vi kontrollerar att det verkligen är frågan om en ekvivalensrelation:

  • Reflexivitet: [m,n][m,n] eftersom m+n=m+n (relationen = är reflexiv).
  • Symmetri: Ifall [m1,n1][m2,n2] så är m1+n2=m2+n1 och då gäller också (eftersom = är symmetrisk) m2+n1=m1+n2 så att [m2,n2][m1,n1].
  • Transitivitet: Ifall [m1,n1][m2,n2] ja [m2,n2][m3,n3] så är m1+n2=m2+n1 och m2+n3=m3+n2. Genom att addera båda sidorna får vi m1+n2+m2+n3=m2+n1+m3+n2, dvs. m1+n3+(n2+m2)=m3+n1+(n2+m2), av vilket följer att m1+n3=m3+n1, vilket betyder att [m1,n1][m3,n3]. (Här använde vi oss av räknereglerna (a+b)+c=a+(b+c) och a+b=b+a för naturliga tal och av regeln a+c=b+ca=b och det som man bör observera är att inga negativa tal behövs för att härleda dessa regler.)

De här ekvivalensklasserna "är" heltalen eftersom m1n1=m2n2 precis då m1+n2=m2+n1 och varje heltal kan (på många olika sätt) skrivas som mn där m och n är naturliga tal.

  

Funktioner [-]

En funktion från mängden X till mängden Y är "en regel som till varje element i mängden X ansluter exakt ett element i mängden Y". Med hjälp av relationsbegreppet kan detta uttryckas på följande sätt:
f är en funktion från mängden X till mängden Y eller f:XY ifall f är en relation från mängden X till mängden Y, dvs. en delmängd av den kartesiska produkten X×Y så att

  • för varje xX finns det ett yY så att [x,y]f.
  • ifall [x,y1]f och [x,y2]f så är y1=y2.

Vanligtvis skrivs en funktion så att y=f(x) om och endast om [x,y]f (fastän xf eller något motsvarande kunde vara bättre om man läser från vänster till höger).

  • Om f:XY är en funktion så är X dess definitionsmängd och Y dess målmängd.
  • Om f:XY är en funktion och AX så är f|A:AY funktionen f begränsad till mängden A eller som en relation f|A={[x,y]:[x,y]f,xA}.
  • YX={f:f:XY} dvs. mängden som består av alla funktioner med definitionsmängden X och målmängden Y.

Anonyma funktioner [+]

Det är (i de flesta fall) klart vad man avser med talet 2 men när man talar om uttrycket x+3 så är det inte nödvändigtvis klart om man avser den funktion, som avbildar xx+3 eller värdet av den här funktionen i punkten x. Om man avser funktionen och inte värdet så kan man skriva
xx+3
@(x)x+2
function(x){return x+3;}
lambda([x],x+3);
eller något annat motsvarande.

Injektion, surjektion och bijektion [-]

Funktionen f:XY är en
  • injektion ifall f(x1)=f(x2)x1=x2 för alla x1,x2X,
  • surjektion ifall för varje yY finns ett xX så att, f(x)=y,
  • bijektion om f är både en injektion och en surjektion.
Ekvivalenta definitioner är att f:XY är en injektion ifall x1x2f(x1)f(x2) för alla x1, x2X och f är en surjektion ifall värdemängden f(X)={f(x):xX} är den samma som målmängden Y, dvs. f(X)=Y.
Exempel: Injektion och/eller surjektion [+]
Välj ett exempel:
X
Y
      

Listor, talföljder och kartesiska produkter som funktioner [+]

  • Listan [a,b,c,d] är (eller kan beskrivas som) en funktion f, vars definitionsmängd är {1,2,3,4} (eller {0,1,2,3}) så att f(1)=a, f(2)=b, f(3)=c och f(4)=d.
  • Talföljden (an)n=0=(a0,a1,a2,) är (eller kan tolkas som) en funktion a, vars definitionsmängd är N0 så att a(n)=an för alla nN0.
  • Ifall Xj är en mängd för varje jJ där J är en (annan) mängd så är den kartesiska produkten jJXj mängden som består av alla funktioner f:JjJXj som är sådana att f(j)Xj för alla jJ.

Sammansatta och inversa funktioner [-]

  • Om f:XY och g:YZ är två funktioner så är h=gf:XZ funktionen h(x)=g(f(x)).
  • Om f:XY, g:YZ och h:ZW är funktioner så gäller (hg)f=h(gf) så att den här funktionen också kan skrivas i formen hgf.
  • Om f:XY är en funktion och det finns en funktion g:YX så att (gf)(x)=x och (fg)(y)=y för alla xX och yY så är f inverterbar, g är den inversa funktionen till f (eller f:s invers) och vanligtvis skriver man g=f1.
  • Funktionen f:XY är inverterbar om och endast om den är en bijektion.
  • Om f:XY är inverterbar så gäller (f1)1=f dvs. den inversa funktionen är också inverterbar och dess invers är f.

Observera att f1 inte är samma funktion som h(x)=f(x)1 vilken förutsätter att varje element i Y (eller åtminstone i värdemängden f(X)) har en invers vilket är tex. fallet i mängden R{0} men inte i mängden Z.

Urbild mm. [+]

Antag att f:XY är en funktion (där X och Y är icke-tomma mängder). Urbilden av mängden BY i avbildningen f är f(B)={xX:f(x)B}. Ofta används beteckningen f1(B) men f1 är också den inversa funktionen.
f är alltså en funktion: P(Y)P(X).

Ifall till exempel [+]

X=Y=R och f(x)=|x| så är f({2})={4,4}, f(1)= och f([3,[)=],9][9,[.

Ifall AX så avses med f(A) vanligen mängden {yY:xA(f(x)=y)}={f(x):xA}. Men om tex. X={a,{a}}, Y={b,c}, f(a)=b och f({a})=c så är det med den här definitionen inte klart om f({a})=c eller{b}. Därför skulle det vara förnuftigt att definiera funktionen f:P(X)P(Y) så att f(A)={f(x):xA},AX.

Nu gäller till exempel att f är en surjektion då f är en injektion.

Varför? [+]

Vi visar först att om f är en injektion så är f en surjektion och vi gör motantagandet att f inte är en surjektion, dvs. det finns ett element y1Y så att det inte finns något xX så att f(x)=y1 dvs. y1f(X). I mängden Y finns det ett element y2y1 eftersom X så att f(X). Men då är f({y1,y2})=f({y2}) och eftersom {y1,y2}{y2} så är f inte en injektion.

Nästa steg är att visa att om f är en surjektion så ä också f en surjektion. Låt BP(Y) dvs. BY vara en godtycklig mängd. Om nu A=f(B) så följer det av definitionen av funktionen f att f(A)B och eftersom vi antar att f är en surjektion så finns för varje yB ett xX så att f(x)=y så att xA=f(B) och det betyder att yf(A). Av detta följer att f(A)=B och därför är f en surjektion.

Nu vet vi alltså att implikationerna ''f är en injektion'' ''f är en surjektion'' och ''f är en surjektion'' ''f är en surjektion'' är sanna och då är också implikationen ''f är en injektion'' ''f är en surjektion'' sann.

Exempel: Fibonaccis tal som en rekursiv funktion [+]

Vi definierar funktionen F på följande sätt: F(n)={1,n=1 eller n=2,F(n1)+F(n2),n>2. Man kan visa att F(n)=15((1+52)n(152)n), dvs. F=@(n)(((1+sqrt(5))/2)^n-((1-sqrt(5))/2)^n)/sqrt(5)

Ett annat alternativ är att räkna funktionens värde direkt ur definitionen tex. med följande rekursiva funktion
function f=F(n)
if n==1 || n==2, f=1;
else f=F(n-1)+F(n-2); end
return, endfunction

Om vi vill bestämma tex. talen F(1),F(2),F(3),,F(15) kan vi först definiera F=[1,1]; och sedan räkna
for j=3:15, F(j)= F(j-1)+F(j-2); end
Men då blir tex. F(20) inte alls definierat.

Funktioner med flera variabler? [+]

Tillsvidare har endast behandlats funktioner med en variabel. På samma sätt kan man definiera funktioner med flera variabler (genom att först utvidga relationsbegreppet från det binära fallet) men det här är inte nödvändigt eftersom det finns andra sätt och nedan presenteras olika sätt att definiera och räkna ut värdena av en viss funktion med två variabler:
  • Som en funktion med två variabler: f(x,y)=sin(x+3y) och i matlab/octave tex. f=@(x,y)sin(x+3*y) så att funktionens värde i punkten (1,2) är f(1,2).
  • Som en funktion med en vektorvariabel: f([x,y])=sin(x+3y) och tex. f=@(X)sin(X(1)+3*X(2)) så att funktionens värde i punkten (1,2) är f([1,2]).
  • Som en funktion av en (tex. den första) variabelns funktionsvärda funktion: x(ysin(x+3y)) och tex. f=@(x)@(y)sin(x+3*y) så att funktionens värde i punkten (1,2) är f(1)(2) (Fungerar inte i matlab!).

Ordo eller Stora-O: fO(g) [-]

  • Ifall h är en funktion som är definierad för alla "tillräckligt stora" tal så betyder fO(h) att också f är definierad för alla "tillräckligt stora" tal och det finns tal Cf och Nf så att |f(n)|Cf|h(n)|,nNf.
  • Användningen av den här beteckningen betyder alltså att det inte är speciellt relevant vad talen Cf och Nf riktigt är eller hur små de kan vara.
  • Ofta skriver man f(n)=O(h(n)) i stället för fO(h) och då betyder beteckningen O(h) någon funktion f, som har den egenskapen att |f(n)|C|h(n)|nN.
  • Om man skriver O(n)+O(n2)=O(n2) och inte O(n)+O(n2)O(n2) så skall man minnas att man inte kan dra slutsatsen att O(n)=0!

Här behandlas för enkelhetens skull endast funktioner definierade för (vissa) heltal och endast hur de uppför sig då n men det är inte på något sätt väsentligt. Till exempel gäller också x4x3x3+x2O(x)x0.

Exempel: [+]
  • Ifall fO(n2) och gO(n3) så gäller fgO(n5) eftersom |f(n)|Cfn2nNf och |g(n)|Cgn3nNg så att |f(n)g(n)|CfCgn2+3nmax. Motsvarande resultat gäller inte för division f/g eftersom O(g) endast ger en övre, inte en undre gräns.
  • Ifall f(n)= n^2 och g(n)= n^3 så gäller f\in O(n^2), g\in O(n^3) och 5 är (naturligtvis?) minsta möjliga tal p så att f\cdot g \in O(n^p).
  • Men om 2 är minsta möjliga tal p_f så att f\in O(n^{p_f}) och 3 är minsta möjliga tal p_g så att g\in O(n^{p_g}) så följer det inte nödvändigtvis att 5 är minsta möjliga tal p så att f\cdot g \in O(n^p) eftersom vi tex. kan välja \begin{align*} f(n)= \begin{cases} n^2,& \text{$n$ är udda,}\\ 0,& \text{$n$ är jämn,}\end{cases}\\ g(n)= \begin{cases} 0,& \text{$n$ är udda,}\\ n^3,& \text{$n$ är jämn,}\end{cases} \end{align*} för då gäller f(n)g(n)=0 för alla n och f\cdot g\in O(n^p) för varje p\in \Z.
Exempel: Hur många räkneoperationer behövs för att räkna värdet av ett polynom? [+]

Om vi skall räkna värdet av polynomet p(x)=a_n\cdot x^n+ a_{n-1}\cdot x^{n-1}+\ldots + a_1\cdot x+ a_0 i punkten x=x_* så kan vi gå till väga tex. på följande sätt:
Vi räknar ut talen b_j, j=n,n-1,\ldots,0 så att
b_n=a_n
b_{n-1}= a_{n-1}+b_n\cdot x_*
b_{n-2}= a_{n-2}+b_{n-1}\cdot x_*
\quad \vdots
b_0 = a_0+ b_1\cdot x_*
så att p(x_*)=b_0.

Här gör vi alltså högst n additioner och n multiplikationer dvs. sammanlagt 2\cdot n räkneoperationer så detta antal hör till mängden O(n) ifall polynomets gradtal är högst n.

Hur många jämförelser behövs för att hitta det tal vars ordningsnummer i storleksordning är p i en mängd med n tal? [+]

Ifall p=1 (det minsta talet) eller p=n (det största talet) så räcker det med n-1 jämförelser men vad är svaret i det allmänna fallet?

Vi skall nu visa att om 1\leq p \leq n så hör antalet jämförelser som behövs till mängden O(n), dvs. det finns en konstant C så att antalet jämförelser är högst Cn och vi bryr oss inte speciellt mycket om vad denna konstant är:

  • Vi antar att det behövs högst Ck jämförelser då det i mängden finns k< n tal.
  • Vi delar talen i delmängder i vilka det finns högst 5 tal: Inga jämförelser.
  • Vi bestämmer medianerna i dessa mängder: O(n) jämförelser.
  • Vi bestämmer medianernas median: C (\frac 15 n+1) jämförelser.
  • Vi delar tal i två mängder, beroende på om de är större eller mindre än medianernas median: O(n) jämförelser.
  • Bådadera av dessa mängder innehåller högst (1-\frac 15\cdot \frac 12\cdot 3)n+O(1)= \frac 7{10}n+ O(1) tal!
  • Antalet element i dessa mängder avgör i vilken av dem talet vi söker finns (om det nu inte är medianernas median) och vilket dess ordningsnummer är så vi kan hitta det i rätt delmängd: C\frac 7{10}n + CO(1) jämförelser.
  • Vi har använt O(n)+ \frac 15 C n+C+ O(n)+\frac 7{10}Cn + CO(1) \\ = \frac {9}{10}C n + CO(1)+ O(n)= \frac {9}{10}C n + (C+n)c_0, jämförelser där c_0 är en konstant (som inte beror på C).
  • Ifall n\leq 20 c_0 kan vi ordna talen genom att göra högst n^2\leq (20 c_0) n jämförelser (men de facto räcker det högst n\log_2(n) jämförelser) och på det sättet hitta talet vi söker så om vi väljer C\geq 20c_0 så behöver vi högst Cn jämförelser då n\leq 20c_0 och då n>20 c_0 dvs. c_0<\frac 1{20}nså ser vi, eftersom c_0\leq\frac 1{20}C, att vi behöver \frac {9}{10}C n +(C+n)c_0\leq \frac {9}{10}C n + \frac 1{20} C n + \frac 1{20} C n= Cn, jämförelser och induktionsresonenmanget fungerar.

Senast modifierad: G. Gripenberg, 2017-10-10