Start af Matematik 1b

This commit is contained in:
2026-02-03 16:56:48 +01:00
parent 900c0eda2b
commit df76bf146f
6 changed files with 13836 additions and 9 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,439 @@
#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 være $a$'s værdier, ${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 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, $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 hinanden? Hvilke to vektorer er tættest 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, 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 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 *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[
]

View File

@@ -0,0 +1,50 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 11,
"id": "d2493461",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2\n",
"2\n"
]
}
],
"source": [
"import sympy\n",
"\n",
"x = sympy.symbols('x')\n",
"h = 2\n",
"relu = sympy.Max(0, h) + sympy.Max(0, -h)\n",
"print(sympy.Max(h,0))\n",
"print(relu)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.14.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,233 @@
#import "@local/dtu-template:0.6.0":*
#show: dtu-note.with(
course: "01002",
author: "Rasmus Rosendahl-Kaa",
course-name: "Matematik 1b",
title: "Funktioner 1",
date: datetime(year: 2026, month: 02, day: 03),
semester: "Spring 2026"
)
#set math.mat(delim: "[")
#set math.vec(delim: "[")
= Funktioner
For at noget skal være en graf, én input-værdi kun give én værdi.
= Vektorfunktioner af flere variabler
#definition(title: "3")[
Funtioner af typen $underline(f): A -> RR^k$
har $A="dom"(f) in RR^n$ kaldes vektorfunktioner af _n_ variable.
$A="dom"(f)$ - Definitionsmængden (domæne)\
$RR^k="codom"(f)$ - Dispositionsmængden (co-domænen)\
$"im"(f)="Vm"(f)={underline(f)(x)|underline(x) in "dom"(f)}$ - Værdimængden/billedrummet (image/range). Alt hvad funktionen kan ramme\
$f=underline(x) |-> f(underline(x))$
Input: $underline(x) in RR^n$ - Søjlevektor i $RR^n$
Output: $underline(f(x)) in RR^k$ - Søjlevektor i $RR^k$
]
#example(title: "1.3.1")[
Lad $bold(A) in M_(k times n)(RR) = RR^(k times n)$
$
f: RR^n -> RR^k\
f(underline(x)) = A dot underline(x) (f= underline(x) |-> A underline(x))
$
$bold(A)=mat(1,2;2,4)$$
bold(A)(underline(x))&=mat(1,2;2,4)vec(x_1,x_2)\
&=vec(1x_1+2x_2,2x_1+4x_2)\
&=vec(1,2)x_1 + vec(2,4)x_2
$
Ligning: $f(underline(x))=underline(y) quad, underline(y) in "codom"(f)=RR^k$
Er den injektiv? Nej, $f(vec(-2,1))=f(vec(0,0))=vec(0,0)$
Er den surjektiv? Nej, $"im"(f)="span"_RR (vec(1,2),vec(2,4))="span"_RR (vec(1,2)) = {t vec(1,2)|t in RR} = "col"(bold(A))$
]
== Koordinatfunktioner
#example()[
For vektorfunktionen: $bold(A)(underline(x))&=mat(1,2;2,4)vec(x_1,x_2)=vec(f_1 (underline(x)), f_2 (underline(x)))$
$f_1 (underline(x)) = 1 x_1 + 2 x_2$
]
$
underline(f)(underline(x))=vec(f_1 (underline(x)), f_2 (underline(x)), dots.v, f_k (underline(x)))\
f_i : bold(A) -> RR, i = 1, dots, k\
bold(A) = "dom"(f)
$
#example(title: "1.2.2")[
$f: bold(A) -> RR, f(x_1, x_2) = sqrt(16 - x_1^2 - x_2^2)$
hvor $bold(A) = "dom"(f) in RR^2$
Typisk opgave: Hvad er $bold(A), "codom"(f), "im"(f)$
Find størst mulig $bold(A)$
$
16 - x_1^2-x_2^2 >= 0\
4^2 = 16 >= x_1^2 + x_2^2
$
$"codom"(f)=RR$\
$
f(0,0)=sqrt(16-0^2-0^2)=4\
f(4,0)=sqrt(16-4^2-0^2)=0
$
$"im"(f)=[0,4]$
]
#example(title: "1.3.2 (ReLu)")[
$
"ReLu"&: RR -> RR\
"ReLu"(x) &= "max"(0,x) = cases(x "," x>=0, 0 "," x<0)
$
$
"ReLu": RR^n -> RR^n\
"ReLu"(underline(x))=vec("ReLu"(x_1),"ReLu"(x_2),dots.v,"ReLu"(x_n))
$
]
== Visualiseringer af funktioner (1.4 i bogen)
$"Graf"(f)={(underline(x), underline(f)(underline(x))) in RR^(n+k) | underline(x) in "dom"(underline(f))}$
Se Eks 1.2.2. Ville kræve $n+k<= 3$
=== Niveaukurver
Niveaukurver for $c in "codom"(underline(f))$ - c: output
${underline(x) in "dom"(f) | underline(f)(underline(x))= underline(c)}$
== Neuralt netværk (Def 1.3.2)
*1. lag:*
$underline(x) mapsto sigma_1 (bold(A)_1 underline(x) + underline(b)_1) = underline(z)_1$
$bold(A)_1 in RR^(50 times 784)$
$
f_1 : RR^784 -> RR^50\
sigma_1 : RR^50 -> RR^50\
sigma_1 = "ReLu"
$
*2. lag:*
$
underline(z)_1 mapsto sigma_2 (bold(A)_2 underline(z)_1 + underline(b)_2) = underline(z)_2 in RR^10\
bold(A)_2 in RR^(10 times 50), underline(b)_2 in RR^(10 times 1)
$
$
Phi = f_2 compose f_1, quad R^894 arrow RR^10\
f compose g(x) = f(g(x))\
Phi (underline(x)) = sigma_2 (bold(A)_2 sigma_1 (bold(A)_1 underline(x) + underline(b)_1) + underline(b)_2)
$
= Kontinuitet
#definition(title: "3.2.1")[
En funktion $f: "dom"(f) arrow RR, quad "dom"(f) in RR$ er kontinuert i $x_0 in A = "dom"(f)$ hvis $x arrow x_0 => f(x) arrow f(x_0)$ (ligning 3.1)
]
Ligning 3.1 betyder at for ethvert $epsilon > 0$ findes der et $delta > 0$ således at $| x - x_0| < delta => |f(x) - f(x_0)| < epsilon$
$
forall epsilon > 0 exists delta > 0: |x-x_0| < epsilon => |f(x) - f(x_0)| < delta
$
Funktionen $f$ er kontinuert hvis den er kontinuert i alle punkter i $"dom"(f)$
#example()[
Lad $a, b in RR$
$
f(x) = a x + b, quad f: RR arrow RR
$
Påstanden: $f$ er kontinuert
#solution()[
$
|f(x) - f(x_0)| &= | a x + b (a x_0 + b)|\
&= |a x - a x_0| = |a| |x - x_0|
$
Lad $epsilon$ være givet. Vi vælger $delta = epsilon/(|a|)$.
$
|x-x_0| < delta = epsilon/(|a|)\
=> |f(x) - f(x_0)| = |a||x-x_0|\
< |a| epsilon/(|a|) = epsilon
$
]
]
#example()[
$
h: RR arrow RR, quad h(x) = cases(1 quad x=> 0, 0 quad x<0)
$
$h$ er diskontinuert i $x_0=0$. Lad $epsilon=1/2$.
Der findes intet $delta >0$ :
$
|x - x_0| < delta => |f(x)-f(x_0)| < 1/2\
|x| < delta => |f(x) - 1| < 1/2
$
$
f((-delta)/2) = 0\
f(delta/2)) = 1
$
$
|f((-delta)/2)-f(0)|\
= |0-1| = 1
$
funktionen er ikke kontinuert.
]
#example()[
$
f: RR^2 arrow RR\
f(x,y) = cases((x^2y)/(x^4 + y^2) quad (x,y) eq.not (0,0), 0 quad (x,y) = (0,0))
$
Er $f$ kontinuert for alle $x,y) in RR^2$?
#solution()[
Opstil y som graf af x, $y = a x, quad a in RR$. fås
$
f(x, a x) &= (x^2 a x)/(x^4 + a^2x^2)\
&= (a x)/(x^2 + a^2)\
&= (a x)/(x^2 + a^2) arrow 0/(0 + a^2) = 0, x arrow 0
$
Hvis $y = a x^2, quad a in RR$
$
f(x, a x^2) &= (x^2 a x^2)/(x^4 + a^2 x^4)\
&= a/(1 + a^2)
$
funktionen er ikke kontinuert $(x,y)=(0,0)$
]
]

File diff suppressed because one or more lines are too long