#import "@local/dtu-template:0.6.0":* #import "@preview/physica:0.9.8": * #show: dtu-note.with( course: "01002", author: "Rasmus Rosendahl-Kaa", course-name: "Matematik 1b", title: "Funktioner 1 - Opgaver", date: datetime(year: 2026, month: 02, day: 03), semester: "Spring 2026" ) #set math.mat(delim: "[") #set math.vec(delim: "[") = Exercises === 1: Funktion eller ej? Betragt følger korrespondance mellem $a$ og $b$ værdier: #align(center)[ #table( columns: 2, align: center, [$a$], [$b$], [1], [0], [2], [1], [0], [3], [1], [2], ) ] Vi betragter funktioner hvis definitionsmængde (domain) er en delmængde af ${0, 1, 2, 3}$ og hvis dispositionsmængde (co-domain) er ${0, 1, 2, 3}$. Vi skal bestemme om $f$ og $g$ definerer funktioner, hvis vi lader $f$ følge reglen at første søjle ($a$-værdierne) er input og anden søjle ($b$-værdierne) skal være output af funktionen $f$ og definitionsmængden er ${0, 1, 2}$; og vi lader $g$ følge reglen om at anden søjle er input og første søjle skal være output af funktionen $g$ med definitionsmængde ${0, 1, 2, 3}$. Definerer $f$ en funktion? Gør $g$? I bekræftende fald: bestem værdimængden/billedmængden (engelsk: range/image) for funktionen, og afgør om funktionen er injektiv og surjektiv. #solution[ $f$ er ikke en funktion, fordi $a=1$ giver to forskellige værdier. $g$ er en funktion. Værdimængden må være $a$'s værdier, så ${0,1,2}$. $G$ er ikke surjektiv da $3$ i dispositionsmængden ikke rammes. Den er heller ikke injektiv, da $1$ rammes 2 gange i dispositionsmængden. ] === 2: Ens funktionsforskrifter? Vi betragter funktioner $f_i: RR -> RR$ givet ved: $ f_1(x) &= abs(x) \ f_2(x) &= cases(x quad & x > 0, -x quad & x <= 0) \ f_3(x) &= max(x, 0) \ f_4(x) &= "ReLU"(x) + "ReLU"(-x) $ hvor $x in RR$. Nogle af funktionerne er samme funktion. Find dem alle! #solution[ $f_1 (x)$, $f_2 (x)$ og $f_3(x)$ er ens ] === 3: Funktion med ukendt forskrift Betragt en funktion $f: RR -> RR$ hvorom der gælder $lim_(x -> 2) f(x) = 5$ og $f(2) = 3$. Hvad kan vi sige om $f$ i punktet $x = 2$? Vælg det korrekte svar: + Funktionen er kontinuert i punktet $x = 2$. + Funktionen er differentiabel i punktet $x = 2$. + Funktionen er diskontinuert i punktet $x = 2$. + Funktionen er ikke veldefineret i punktet $x = 2$. + Man kan ikke afgøre ovenstående, da funktionsforskriften ikke er angivet! #solution[ Funktionen er diskontinuert i punktet $x=2$. ] === 4: Ikke-linearitet af ReLU Betragt ReLU-funktionen, $"ReLU": RR^n -> RR^n$. Forklar hvorfor funktionen ikke er lineær. #solution[ Funktionen er ikke lineær da når $x<0$ kan man ikke differentiere den. ] === 5: Mulige visualiseringer Diskuter om man kan visualisere nedenstående funktioner -- i givet fald plot dem med SymPy/dtumathtools: + En skalarfunktion af to variable $f: RR^2 -> RR, quad f(x_1, x_2) = sqrt(abs(x_1 x_2))$ + En skalarfunktion af fire variable $f: RR^4 -> RR, quad f(x_1, x_2, x_3, x_4) = sqrt(abs(x_1 x_2 x_3 x_4))$ + En kompleks skalarfunktion af to variable $f: RR^2 -> CC, quad f(x_1, x_2) = sqrt(abs(x_1 x_2)) + i cos(x_1 + x_2)$ + Et vektorfelt i 2D $bold(f): RR^2 -> RR^2, quad bold(f)(x_1, x_2) = (-x_2 / 3, x_1 / 3)$ + Et vektorfelt i 3D $bold(f): RR^3 -> RR^3, quad bold(f)(x, y, z) = (x^3 + y z^2, y^3 - x z^2, z^3)$ + En funktion af formen $bold(r): [0, 10] -> RR^3, quad bold(r)(t) = (cos(t), sin(t), t)$ #note-box(title: "Python kommandoer")[ Følgende kan være nyttige: `dtuplot.plot3d`, `dtuplot.plot_vector`, `dtuplot.plot3d_parametric_line`. ] #solution[ ] === 6: Evaluering af et Neuralt Netværk Betragt et simpelt "shallow" neuralt netværk $bold(Phi): RR^2 -> RR$ med ét skjult lag ($L = 2$). Netværket er defineret ved parametrene: $ A_1 = mat(2, 0; -1, 1), quad bold(b)_1 = vec(-1, 0), quad A_2 = mat(-1, 2), quad b_2 = 0 $ hvor aktiveringsfunktionen i det *skjulte lag* er ReLU-funktionen, $bold(sigma)(bold(z)) = "ReLU"(bold(z))$, men aktiveringsfunktionen i det *sidste lag* er identitetsafbildningen $bold(sigma)(bold(z)) = bold(z)$. Netværksfunktionen er altså givet ved: $ bold(Phi)(bold(x)) = A_2 "ReLU"(A_1 bold(x) + bold(b)_1) + b_2 $ ==== Spørgsmål a Beregn værdien af netværket i punktet $bold(x) = vec(0.5, 1)$. #solution[ $ mat(-1,2) dot "ReLU"(mat(2,0;-1,1) dot vec(0.5,1)+vec(-1,0)) = \ mat(-1,2) dot "ReLU"(vec(1,0.5)+vec(-1,0)) = \ mat(-1,2) dot "ReLU"(vec(0,0.5)) =\ mat(-1,2) dot vec(0,0.5) = -1 dot 0 + 2 dot 0.5 = 1\ $ $Phi(vec(0.5,1))=1$ ] ==== Spørgsmål b Find et punkt $bold(x)$, hvor netværkets output $bold(Phi)(bold(x))$ er negativt. Begrund dit svar. #solution[ Punkt $vec(1,1)$ giver: $ mat(2,0;-1,1) dot vec(1,1)+vec(-1,0) =\ vec(2,0) + vec(-1,0) = vec(1,0)\ "ReLU"(vec(1,0)) = vec(1,0) =\ mat(-1,2) dot vec(1,0) = -1 dot 1 + 2 dot 0 = -1 $ ] ==== Spørgsmål c Hvor mange justerbare parametre (vægte og bias-værdier) har dette netværk totalt? #solution[ Tæller antal værdier i dens parametre: 9 ] ==== Spørgsmål d Vi erstatter nu aktiveringsfunktionen (ReLU) med en "hard limiter" funktion (en variant af signum-funktionen), som vi kalder $sigma_("step")$. Som *skalar*-funktion $sigma_("step"): RR -> RR$ er den defineret ved: $ sigma_("step")(x) = cases(1 quad & "hvis" x >= 0, -1 quad & "hvis" x < 0) $ Som *vektorfunktion* $bold(sigma)_("step"): RR^n -> RR^n$ defineres den ved at anvende skalarfunktionen på hver koordinat: $ bold(sigma)_("step")(bold(z)) = vec(sigma_("step")(z_1), dots.v, sigma_("step")(z_n)) $ Betragt nu netværket med denne nye aktiveringsfunktion: $bold(Phi)(bold(x)) = A_2 bold(sigma)_("step")(A_1 bold(x) + bold(b)_1) + b_2$. Angiv den delmængde af definitionsmængden, hvor netværksfunktionen $bold(Phi)(bold(x))$ er *diskontinuert*. #solution[ ] === 7: Visualisering af Netværket I denne opgave skal du bruge Python til at visualisere funktionen $bold(Phi)(bold(x))$ fra forrige opgave (med ReLU som aktiveringsfunktion). Du skal plotte grafen for netværket over området $x_1, x_2 in [-2, 2]$. #note-box[ Læg mærke til, at grafen består af plane flader, der er "knækket" og sat sammen. Dette skyldes ReLU-funktionen, som er stykkevis lineær. I store netværk der anvendes i praksis sættes millioner af sådanne lineære underrum sammen. ] Kan du plotte grafen af det samme neurale netværk hvor $bold(sigma)_("step")$ bruges i stedet for ReLU? Planerne i den nye graf bør ikke "hænge sammen" (hvorfor?). #solution[ ] === 8: Lineær vektorfunktion Lad $A in bold(M)_(3 times 5)(RR)$ være givet ved $ A = mat( 1, 0, 2, 3, 4; 0, -1, 5, 6, 7; 0, 0, -3, 8, 9 ) $ Betragt vektorfunktionen $bold(f): RR^5 -> RR^3$ givet ved $bold(f) = bold(x) |-> A bold(x)$, hvor $bold(x)$ er en søjlevektor i $RR^5$. ==== Spørgsmål a Angiv de 3 koordinatfunktioner for $bold(f)$. #solution[ ] ==== Spørgsmål b Angiv billedmængden $"im"(bold(f))$ for $bold(f)$. #solution[ ] ==== Spørgsmål c Er vektorfunktionen $bold(f)$ surjektiv og/eller injektiv? #solution[ ] === 9: Næste primtal-funktion (frivillig) #note-box[Dette er en valgfri ekstraopgave.] Lad $f: NN -> NN$ være en funktion, der returnerer det næste primtal (strengt) større end et givet naturligt tal $n$. I denne opgave skal du først vurdere værdien af funktionen for to specifikke input og derefter vise, at funktionen er veldefineret, før du implementerer den i Python. ==== Spørgsmål a Find ved simple overvejelser $f(10)$ og $f(13)$. #solution[ ] ==== Spørgsmål b Argumenter for, at funktionen $f(n)$ er veldefineret. #solution[ ] ==== Spørgsmål c Kan man finde et funktionsudtryk for $f(n)$? Argumenter for, hvorfor det er eller ikke er muligt. #solution[ ] ==== Spørgsmål d Implementer funktionen $f(n)$ i Python, som tager et heltal $n$ som input og returnerer det næste primtal større end $n$. Definer en hjælpefunktion `er_primtal(x)` til at afgøre, om et tal er primtal. #solution[ ] ==== Spørgsmål e Kan du opdatere din Python-funktion fra forrige opgave, så $f$'s definitionsmængde udvides fra $NN$ til $RR$? #solution[ ] #pagebreak() == Opgaver -- Lille Dag === 1: Størrelse af vektorer Betragt følgende tre vektorer i $RR^3$: $ bold(v)_1 = vec(-10, -10, -10), quad bold(v)_2 = vec(-10, -4, 14), quad bold(v)_3 = vec(-10, -8, -12) $ Hvilken vektor er længst? Hvilke vektorer er ortogonale på hinanden? Hvilke to vektorer er tættest på hinanden? #note-box[ Vi kan forestille os vektorerne som (geometriske) stedvektorer med begyndelsespunkt i $bold(0) = [0, 0, 0]^T$ og slutpunkt $bold(v)_i$ for hhv $i = 1, 2, 3$. Under tiden skriver man dette som $arrow(bold(0) bold(v)_i)$. ] #solution[ ] === 2: Partielle afledede af simpel skalar-funktion Find de partielle afledte $p d v(f, x_1)$ og $p d v(f, x_2)$ for $f(x_1, x_2) = x_1^3 + 3 x_1 x_2 + x_2^3$. Bestem værdien af de partielle afledte i punktet $(x_1, x_2) = (1, 2)$. #solution[ ] === 3: Forskellige(?) kvadratiske former Lad $bold(x) = [x_1, x_2]^T$ være en søjlevektor i $RR^2$. Definer: $ A_1 = mat(11, -12; -12, 4), quad A_2 = mat(11, 0; -24, 4), quad A_3 = mat(73/5, -36/5; -36/5, 52/5) $ og $ bold(b)_1 = vec(-20, 40), quad bold(b)_2 = bold(b)_1, quad bold(b)_3 = vec(-44, 8), quad c = -60 $ Lad $q_i: RR^2 -> RR$ være givet ved: $ q_i (bold(x)) = bold(x)^T A_i bold(x) + bold(b)_i^T bold(x) + c $ for $i = 1, 2, 3$. Sådanne funktioner kaldes kvadratiske former. ==== Spørgsmål a Gang udtrykket for $q_1(x_1, x_2)$ ud. Først i hånden, så ved hjælp af Python. Gang også udtrykkene for $q_2(x_1, x_2)$ og $q_3(x_1, x_2)$ (i hånden eller Python) ud. #solution[ ] ==== Spørgsmål b Er den kvadratiske matrix $A$ i en kvadratisk form (som fx $bold(x)^T A bold(x)$) entydig givet? #solution[ ] ==== Spørgsmål c Plot grafen af funktionen $q_1$. Plot så nogle niveaukurver. Hvilken geometrisk form har niveaukurverne? Gør det samme for $q_3$. #solution[ ] ==== Spørgsmål d En af funktionerne har et minimum. Hvilken? Hvor ligger det cirka? Hvad kaldes det samme punkt for de funktioner der ikke har et minimum? #solution[ ] === 4: Softmax-funktionen I denne opgave ser vi på *softmax*-funktionen. ==== Spørgsmål a Beregn *softmax* af følgende tre vektorer i $RR^3$. Du kan gøre det ved håndkraft (brug lommeregner til eksponentialfunktionen) eller ved hjælp af Python. Angiv svarene med ca. 3 decimaler. + $bold(x)_1 = [1, 2, -5]^T$ + $bold(x)_2 = [10, 2, -5]^T$ + $bold(x)_3 = [100, 2, -5]^T$ #solution[ ] ==== Spørgsmål b Hvad observerer du, når forskellen mellem den største værdi i inputtet og de andre værdier øges (som i skiftet fra $bold(x)_1$ til $bold(x)_2$ og $bold(x)_3$)? Hvorfor kaldes funktionen mon "soft"-max? #solution[ ] ==== Spørgsmål c Er *softmax*-funktionen kontinuert? #solution[ ] ==== Spørgsmål d Betragt *softmax* som en afbildning fra $RR^n$ til $RR^n$. Er funktionen *injektiv* (en-til-en)? Er funktionen *surjektiv* (på) i forhold til dispositionsmængde $RR^n$? #solution[ ] === 5: Kvadratiske former med symmetriske matricer Lad $A$ være en vilkårlig $n times n$ matrix, og lad $bold(x)$ være en søjlevektor i $RR^n$. Definer $B$ ved $B = (A + A^T) / 2$. ==== Spørgsmål a Vis at matricen $B$ er symmetrisk. #solution[ ] ==== Spørgsmål b Vis at $bold(x)^T A bold(x) = bold(x)^T B bold(x)$. #solution[ ] ==== Spørgsmål c Konkludér at man altid kan antage at kvadratiske former af formen $q(bold(x)) = bold(x)^T A bold(x) + bold(b)^T bold(x) + c$ er givet ved en *symmetrisk* matrix $A$. #solution[ ]