Uge 1: Øvelser#

Opgaver – Store Dag#

1: Funktion eller ej?#

Betragt følger korrespondance mellem \(a\) og \(b\) værdier:

\(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.

2: Ens funktionsforskrifter?#

Vi betragter funktioner \(f_i : \mathbb{R} \to \mathbb{R}\) givet ved:

\[\begin{gather*} f_1(x) = |x| \\ f_2(x) = \begin{cases} x & x > 0 \\ -x & x \le 0 \end{cases} \\ f_3(x) = \max(x,0) \\ f_4(x) = ReLU(x) + ReLU(-x) \end{gather*}\]

hvor \(x \in \mathbb{R}\).

Nogle af funktionerne er samme funktion. Find dem alle!

3: Mulige visualiseringer#

Diskuter om man kan visualisere nedenstående funktioner – i givet fald plot dem med SymPy/dtumathtools:

  1. En skalarfunktion af to variable \(f: \mathbb{R}^2 \to \mathbb{R}, \, f(x_1,x_2) = \sqrt{\vert x_1 x_2 \vert}\)

  2. En skalarfunktion af fire variable \(f: \mathbb{R}^4 \to \mathbb{R}, \, f(x_1,x_2,x_3,x_4) = \sqrt{\vert x_1 x_2 x_3 x_4 \vert}\)

  3. En kompleks skalarfunktion af to variable \(f: \mathbb{R}^2 \to \mathbb{C}, \, f(x_1,x_2) = \sqrt{\vert x_1 x_2 \vert} + i \cos(x_1 + x_2)\)

  4. Et vektorfelt i 2D \(\pmb{f}: \mathbb{R}^2 \to \mathbb{R}^2, \, \pmb{f}(x_1,x_2) = (-x_2/3, x_1/3)\)

  5. Et vektorfelt i 3D \(\pmb{f}: \mathbb{R}^3 \to \mathbb{R}^3, \, \pmb{f}(x,y,z)= (x^3+yz^2, y^3-xz^2, z^3)\)

  6. En funktion af formen \(\pmb{r}: [0,10] \to \mathbb{R}^3, \, \pmb{r}(t) = (\cos(t),\sin(t),t)\)

Note

Følgende Python kommandoer kan være nyttige: dtuplot.plot3d, dtuplot.plot_vector, dtuplot.plot3d_parametric_line.

4: Næste primtal-funktion#

Lad \(f: \mathbb{N} \to \mathbb{N}\) 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)\).

Spørgsmål b#

Argumenter for, at funktionen \(f(n)\) er veldefineret.

Spørgsmål c#

Kan man finde et funktionsudtryk for \(f(n)\)? Argumenter for, hvorfor det er eller ikke er muligt.

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.

from math import sqrt  

def er_primtal(x: int) -> bool:  
    """Returnerer True hvis x er et primtal, ellers False."""  
    if x < 2:  
        return False  
    # Three lines of code missing 
    return True  

def f(n: int) -> int:  
    """Returnerer det næste primtal større end n."""  
    kandidat = n + 1  
    # Two lines of code missing
    return kandidat  

5: lineær vektor-funktion#

Lad \(A \in \mathsf{M}_{3 \times 5}(\mathbb{R})\) være givet ved

\[\begin{equation*} A = \begin{bmatrix} 1 & 0 & 2 & 3 & 4 \\ 0 & -1 & 5 & 6 & 7 \\ 0 & 0 & -3 & 8 & 9 \end{bmatrix} \end{equation*}\]

Betragt vektorfunktionen \(\pmb{f}: \mathbb{R}^5 \to \mathbb{R}^3\) givet ved \(\pmb{f} = \pmb{x} \mapsto A\pmb{x}\), hvor \(\pmb{x}\) er en søjlevektor i \(\mathbb{R}\).

Spørgsmål a#

Angiv de 3 koordinatfunktioner for \(\pmb{f}\).

Spørgsmål b#

Angiv billedmængden \(\mathrm{im}(\pmb{f})\) for \(\pmb{f}\).

Spørgsmål c#

Er vektorfunktionen \(\pmb{f}\) surjektiv og/eller injektiv?

6: Chatbots og (dis-)kontinuitet#

Spørg en chatbot, fx BingChat, Open IAs ChatGPT eller Microsoft Copilot, om den kan give et eksempel på en funktion \(f: \mathbb{R} \to \mathbb{R}\), der er kontinuert i præcis 3 punkter og diskontinuert i alle andre punkter. Vurdér om chatbottens svar er korrekt eller forkert. Kan man plotte funktionen fra chatbottens eksempel?

7: Python-funktion som matematisk funktion#

Betragt følgende funktion:

from sympy import *
from dtumathtools import *
init_printing()

def f(x1, x2):
    return Matrix([ln(x1), x1 * x2**2 + 1])

Note

Man kan definere den samme funktion med følgende en-linjes kald: myfun = lambda x1,x2: Matrix([ln(x1), x1 * x2**2 + 1]). Der er Python-tekniske forskelle på de to metoder, men i brug minder de meget om hinanden. Vi anbefaler generelt at der bruges def-funktioner. Lambda-funktioner er dog brugbare i situationer hvor funktionen kun skal bruges én gang og i kald til andre funktioner, fx sorted(['a1', 'z0'], key = lambda x: int(x[1])).

Note

  • Det er ikke nødvendigt at definere x1,x2 = symbols("x1 x2") i def f(x1,x2):. Det er dog god programmeringspraksis at fortælle andre hvad funktionen forventer at få som input og giver som output. Dette gøres elegant i Python ved:

def f(x1: Symbol('x1', real=True), x2: Symbol('x2', real=True)) -> Matrix:
    return Matrix([ln(x1), x1 * x2**2 + 1])
  • Selv om vi tit arbejder med funktioner i dette kursus, så er det ofte ikke nødvendigt at definere Python-funktioner, fx findes den afledte af \(f(x)=x^2 \cos(x)\) jo blot ved:

x = symbols("x")
f = x**2 * cos(x)
f.diff()

Spørgsmål a:#

Hvad er funktionsværdien i \(f(2,-3)\)?

Spørgsmål b:#

Skriv Python-funktionen ned som en matematisk funktion. Dispositionsmængden (co-domain) er \(\mathbb{R}^2\). Hvad er definitionsmængden (domain)?

Spørgsmål c:#

Find billedmængden (engelsk: image/range).


Opgaver – Lille Dag#

1: Størrelse af vektorer#

Betragt følgende tre vektorer i \(\mathbb{R}^3\):

\[\begin{equation*} \pmb{v}_1 = \left[\begin{matrix}-10\\ -10\\ -10\end{matrix}\right], \, \pmb{v}_2 = \left[\begin{matrix}-10\\ -4\\ 14\end{matrix}\right], \, \pmb{v}_3 = \left[\begin{matrix}-10\\ -8\\-12\end{matrix}\right] \end{equation*}\]

Hvilken vektor er længst? Hvilke vektorer er ortogonale på hinanden? Hvilke to vektorer er tættest på hinanden?

Note

Vi kan forestille os vektorerne som (geometriske) stedvektorer med begyndelsespunkt i \(\pmb{0}=[0,0,0]^T\) og slutpunkt \(\pmb{v}_i\) for hhv \(i=1,2,3\). Under tiden skriver man dette som \(\overrightarrow{\pmb{0}\pmb{v}_i}\).

2: Partielle afledede af simpel skalar-funktion#

Find de partielle afledte \(\frac{\partial f}{\partial x_1}\) og \(\frac{\partial f}{\partial x_2}\) for \(f(x_1, x_2) = x_1^3 + 3x_1 x_2 + x_2^3\). Bestem værdien af de partielle afledte i punktet \((x_1,x_2)=(1,2)\).

3: Forskellige(?) kvadratiske former#

Lad \(\pmb{x} = [x_1,x_2]^T\) være en søjlevektor i \(\mathbb{R}^2\). Definer:

\[\begin{equation*} A_1 =\left[\begin{matrix}11 & -12 \\ -12 & 4\end{matrix}\right], \, A_2 =\left[\begin{matrix}11 & 0 \\ -24 & 4\end{matrix}\right], \, A_3 =\left[\begin{matrix} 73/5 & -36/5 \\ -36/5 & 52/5 \end{matrix}\right], \, \end{equation*}\]

og

\[\begin{equation*} \pmb{b}_1 = \left[\begin{matrix}-20\\ 40\end{matrix}\right], \, \pmb{b}_2 = \pmb{b}_1, \, \pmb{b}_3 = \left[\begin{matrix}-44\\ 8\end{matrix}\right], \, c = -60 \end{equation*}\]

Lad \(q_i: \mathbb{R}^2 \to \mathbb{R}\) være givet ved:

\[\begin{equation*} q_i(\pmb{x}) = \pmb{x}^T A_i \pmb{x} + \pmb{b}_i^T \pmb{x} + c \end{equation*}\]

for \(i=1,2,3\). Sådanne funktioner kaldes kvadratiske former, se denne definition.

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.

Spørgsmål b#

Er den kvadratiske matrix \(A\) i en kvadratisk form (som fx \(\pmb{x}^T A \pmb{x}\)) entydig givet?

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\).

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?

4: Kvadratiske former med symmetriske matricer#

Lad \(A\) være en vilkårlig \(n \times n\) matrix, og lad \(\pmb{x}\) være en søjlevektor i \(\mathbb{R}^n\). Definer \(B\) ved \(B = (A + A^T)/2\).

Spørgsmål a#

Vis at matricen \(B\) er symmetrisk

Spørgsmål b#

Vis at \(\pmb{x}^T A \pmb{x} = \pmb{x}^T B \pmb{x}\).

Spørgsmål c#

Konkludér at man altid kan antage at kvadratiske former af formen \(q(\pmb{x}) = \pmb{x}^T A \pmb{x} + \pmb{b}^T \pmb{x} + c\) er givet ved en symmetrisk matrix \(A\).

5: Niveaukurver og gradienter#

Vi betragter funktion \(f:\mathbb{R}^2\rightarrow \mathbb{R}\) givet ved forskriften

\[\begin{equation*} f(x,y)=x^2-2y \end{equation*}\]

og dens niveaukurver

\[\begin{equation*} f(x,y)=c,\, c\in\mathbb{R} \end{equation*}\]

Spørgsmål a#

Vis at niveaukurven for et vilkårligt \(c\) kan beskrives ved en ligning på formen \(y=g_c(x)\) hvor \(g_c\) er en reel funktion af \(x\), og tegn de niveaukurver der svarer til \(c\in\{−2,−1,0,1,2\}\).

Spørgsmål b#

Vis at punktet \(P=(2,1)\) ligger på niveaukurven svarende til \(c=2\), og find en parameterfremstilling for denne niveaukurve.

Spørgsmål c#

Bestem den til parameterfremstillingen hørende tangentvektor i \(P\), og vis at tangentvektoren er ortogonal på gradienten for \(f\) i \(P\).

Spørgsmål d#

Lav i Python et samlet plot af niveaukurverne og gradientvektorfeltet for \(f\).