| Uge 09 SD+LD (vektorfelter) |
Links WikiPedia: Line integral: https://en.wikipedia.org/wiki/Line_integral Vector field: https://en.wikipedia.org/wiki/Vector_field Conservative vector field: https://en.wikipedia.org/wiki/Conservative_vector_field Trappeformlen i R3: ![]() Opgaver: Opgave 2a: Jacobianten kan beregnes i Python/SymPy med Jacobiant=r(u).diff(u).norm().simplify() Opgave 3b: længderne af kurverne er 9.95, 9.80 og 9.17. Opgave 4b: det tangentielle kurveintegral er -14/15. Opgave 5b: det tangentielle kurveintegral er 1/35. Opgave 9c: om "atan2(y,x)" (SymPy documentation): https://docs.sympy.org/latest/modules/functions/elementary.html#sympy.functions.elementary.trigonometric.atan2 Opgave 10a: om "Piecewise" (SymPy documentation): https://docs.sympy.org/latest/modules/functions/elementary.html#sympy.functions.elementary.piecewise.Piecewise For at reducere Jacobianten J kan man anvende trigsimp(J) Opgave 10b: længden l0 er ∞. Opgave 13b: når værdien af c1 og c2 er beregnet med "solve" til "{c1:-1/2,c2:-1/2}" indsættes disse smart i r med "r.subs(_)", idet _ er sidste svar! |
| Uge 08 SD (integration i flere variable) |
Links Wikipedia: List of trigonometric identities (double angle): https://en.wikipedia.org/wiki/List_of_trigonometric_identities#Double-angle_formulae Matematik: Theorem 6.4.1, Theorem 6.6.2 og Example 6.7.1 er essentielle ved parametrisering (variabelskift). Variabelskift (parametrisering) ændrer integranden med den numeriske værdi af determinanten af Jacobi-matricen som faktor (kaldet jacobianten). Ved variabelskift skal parameterområderne være intervaller med konstanter, f.eks. [2;10]. Ikke nødvendigt med [0;1] - det er terapeutisk! I det tidligere matematik 1 blev der anvendt meget krudt på parametriseringer. Se filer fra tidligere pensum: ../../20222023/f-system.htm#parameter Opgaver: Opgave 4: Vigtig opgave at træne. Opgave 4a: Området plottet U08SDopg4a.png Opgave 4c: Jacobi-matricen beregnes som J=r.jacobian([u,v]), derefter beregnes jacobianten som Jr=abs(det(J)) Opgave 5: Vigtig opgave at træne (se området plottet: U08SDopg5a.png) |
| Integration |
Integration har nogle egenskaber, som kan overraske: |
| Uge 07 SD (integration) |
Links WikiPedia: Lists of integrals (9 undersider): https://en.wikipedia.org/wiki/Lists_of_integrals#Lists_of_integrals Numerical integration: https://en.wikipedia.org/wiki/Numerical_integration Simpson's rule: https://en.wikipedia.org/wiki/Simpson%27s_rule SymPy/SciPy/spb: Om "quad" i SciPy: https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.quad.html#scipy.integrate.quad Om "plot_implicit" i SymPy: https://docs.sympy.org/latest/modules/plotting.html#sympy.plotting.plot_implicit.plot_implicit Om "Piecewise" funktionen i SymPy: https://docs.sympy.org/latest/modules/functions/elementary.html#... Om "plot_piecewise" i spb: https://sympy-plot-backends.readthedocs.io/en/latest/modules/plot_functions/... NB: spb betyder "sympy plotting backends". Opgaver: Opgave 2c: Funktionen f kan defineres med: def f(x): return Piecewise((1,(0<=x) & (X<=1)),(0,True)) og grafen kan tegnes med: from spb import *; plot_piecewise(f(x),xlim=(-5,5)) Opgave 3: Plotning af området U kan laves med: plot_implicit(((x**2+y**2>1) & (x**2+y**2<=2**2)),(x,-3,3),(y,-3,3), SHOW=False, ADAPTIVE=True, ASPECT=(1,1)) "aspect(1,1)" gør at cirklerne er normalt runde og ikke ovale. Opgave 4c: Forkert udtryk n/C. Det skal være C/n (så afvigelsen falder, når antal inddelinger vokser). Numerisk integration (venstre-, højre-, midt-, trapez- og Simpson-sum): summer.pdf Numerisk integration (venstresum, højresum, midtsum, trapezsum, Simpsonsum): num-int.pdf ![]() |
| Ekstremum (lokalt og globalt) |
Funktioner med 2 eller flere variable har meget overraskende egenskaber, hvor ens intuition ikke giver det rigtige svar: minimum.pdf 1lok0max.pdf |
| Uge 06 SD (ekstremum) (optimering) |
Links WikiPedia: Rectified_linear_unit (ReLU): https://en.wikipedia.org/wiki/Rectified_linear_unit Maximum and minimum: https://en.wikipedia.org/wiki/Maximum_and_minimum Mathematical optimization: https://en.wikipedia.org/wiki/Mathematical_optimization Saddle point: https://en.wikipedia.org/wiki/Saddle_point Second partial derivative test: https://en.wikipedia.org/wiki/Second_partial_derivative_test Definite matrix: https://en.wikipedia.org/wiki/Definite_matrix Quadric#Euclidean_space: https://en.wikipedia.org/wiki/Quadric#Euclidean_space Opgaver: Opgave 1: Bemærk at (ReLU(x))2 ≠ ReLU(x2) idet ReLU(x2) = max(0,x2) = x2, mens (ReLU(x))2 = 0 hvis x<0 OG X2 hvis x ≥ 0. Den afledede funktion er: ((ReLU(x))2) ' = 2·ReLU(x). Opagve 3d: I svaret er +3 glemt i Φ(x1,x2). Ellers er det svært at forstå, at den globale minimumsværdi er 3. Opgave 6: Det kan det være svært at reducere koordinatudtrykket for de stationære punkter. Brug både ".trigsimp( )" og ".simplify( )". Tegn en graf for at se antallet af stationære løsninger, og sørg for at løsningerne ligger indenfor intervallet [0;2·π] ! Opgave 7d: Inspiration til beviset: https://math.stackexchange.com/questions/222894/how-to-take-the-gradient-of-the-quadratic-form |
| Taylor udvikling (mere mellem himmel og jord) |
|
| Uge 05 SD (Taylor) |
Links WikiPedia: Tangent: https://en.wikipedia.org/wiki/Tangent Taylor series: https://en.wikipedia.org/wiki/Taylor_series Python i opgaverne: ".removeO( )" anvendes på "series" til at fjerne store-O-leddet i Taylor polynomiet. NB: "O" er et stort bogstav o, ikke tallet 0! Taylor polynomiet: taylor.pdf ![]() |
| Uge 04 SD (spektralsætning) (diagonalisering) |
Links WikiPedia: Symmetric matrix: https://en.wikipedia.org/wiki/Symmetric_matrix Normal matrix: https://en.wikipedia.org/wiki/Normal_matrix Hermitian matrix: https://en.wikipedia.org/wiki/Hermitian_matrix Orthonormal basis: https://en.wikipedia.org/wiki/Orthonormal_basis Diagonalizable matrix: https://en.wikipedia.org/wiki/Diagonalizable_matrix Orthogonal matrix: https://en.wikipedia.org/wiki/Orthogonal_matrix Unitary matrix: https://en.wikipedia.org/wiki/Unitary_matrix Spectral theorem: https://en.wikipedia.org/wiki/Spectral_theorem Definite matrix: https://en.wikipedia.org/wiki/Definite_matrix Kvadratkomplettering: https://da.wikipedia.org/wiki/Kvadratkomplettering Ellipse: https://en.wikipedia.org/wiki/Ellipse Hyperbola: https://en.wikipedia.org/wiki/Hyperbola Parabola: https://en.wikipedia.org/wiki/Parabola Cauchy–Schwarz inequality: https://en.wikipedia.org/wiki/Cauchy%E2%80%93Schwarz_inequality Opgaver: Opgave 6: brug resultatet fra opgave 4, da der er samme matrix A! Ombyt de 2 søjler i Q som svarer til samme egenværdi, og opnå at det(Q)=1. Opgave 6 løst smart: kvadrat.pdf ![]() Opgave 7: Opgaven er bevis for " Gradient ascent method"dvs. Example 3.4.2 i lærebogen, og "Cauchy/Swartz' inequality" er Theorem 2.1.4. Spektralsætningerne: spektral.pdf Omskrivning af kvadratisk form: kvadrat.pdf |
| Uge 03 SD (indre produkt) (Gram-Schmidt) |
Python i opgaverne: ".adjoint()" kan udføres kort som ".H", og ".transpose()" kan udføres kort som ".T" Oversigt over matrix-typer: matricer.pdf Links WikiPedia: Inner product space: https://en.wikipedia.org/wiki/Inner_product_space Frobenius inner product: https://en.wikipedia.org/wiki/Frobenius_inner_product Vector projection: https://en.wikipedia.org/wiki/Vector_projection Projection (linear algebra): https://en.wikipedia.org/wiki/Projection_(linear_algebra) Orthonormal basis: https://en.wikipedia.org/wiki/Orthonormal_basis Gram–Schmidt process: https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process Gaussian elimination: https://en.wikipedia.org/wiki/Gaussian_elimination Legendre polynomials: https://en.wikipedia.org/wiki/Legendre_polynomials Projektionsmatrix P: Projiceres x på en enhedsvektor u, så beregnes projektionsmatricen P som P = u·u* = u· u T. Projektion af x på u beregnes så som P·x. Hvis u har n koordinater, så er u en n x 1 matrix, og u T en 1 x n matrix. Dvs. P bliver en n x n matrix, som er Hermitisk. u* = u T beregnes i Python/SymPy som u.adjoint( ) eller conjugate(u.T) eller lettere u.H, og P beregnes som u*u.adjoint( ) eller u*u.H. Python i opgaverne: Med alm. vektorer gælder at v.norm( ) giver længden af vektoren, og v.normalized( ) giver en enhedsvektor i samme retning. Jeg bruger denne simple udgave af "inner": def inner(x1: Matrix,x2: Matrix): return x1.dot(x2.conjugate( )). I så fald anvend altid "inner(x,y)", aldrig "x.inner(y)"! Ønskes det sidste, så brug "inner" fra uge3-demoen. Opgaver: Opgave 4: indfør en procedure "proj" for projektion af x på y: def proj(x:Matrix,y:Matrix): return inner(x,y)/inner(y,y)*y Opgave 7 b: indfør smart disse 2 procedurer: def innerL2(f1,f2): return integrate(f1*f2,(x,-1,1)) og def normL2(f): return sqrt(innerL2(f,f)) Så er Gram-Schmidt algoritmen lettere at få skrevet ned. Indre produkt og norm: inner.pdf ![]() |
| Uge 02 SD (Funktioner II) |
Note: Gradient, Jacobi-matrix, Hesse-matrix, kæderegel (kapitel 03): diff01.pdf Links WikiPedia: Chain rule: https://en.wikipedia.org/wiki/Chain_rule Gradient: https://en.wikipedia.org/wiki/Gradient Jacobian matrix and determinant: https://en.wikipedia.org/wiki/Jacobian_matrix_and_determinant Hessian matrix: https://en.wikipedia.org/wiki/Hessian_matrix Python med "dtumathtools" og "sympy"-pakkerne: Lad f: Rn → R være en skalar funktion. F.eks. med n=3 givet ved udtrykket f=x1*x2+x3. dtutools.gradient(f) giver gradienten af f, som er en n x 1 matrix (egentlig en vektor). dtutools.gradient(f).T giver Jacobi matricen af f, som er en 1 x n matrix. Alternativ: Matrix([f]).jacobian([x1,x2,x3]) dtutools.hessian(f) giver Hesse matricen af f, som er en n x n matrix. Lad f: Rn → Rm være en vektor funktion. F.eks. med n=4 og m=3 givet ved udtrykket f=Matrix([x1*x2+x3,x2-x3,x4]). f.jacobian([x1,x2,x3,x4]) giver Jacobi matricen af f, som er en m x n matrix. Gradient, Jacobimatrix og Hessematrix: gradhess.pdf ![]() Opgaver: Opgave 1c: v.normalized() laver v om til en enhedsvektor i samme retning. Opgave 2f: NB: fejl i definitionen af W1 og W2! Opgave 8 c: JacobiG er 1 x 2, og JacobiF er 2 x 3. Derfor bliver JacobiGoF 1 x 3. |
| Uge 01 SD (Funktioner I) |
Note: Filer relateret til neutralt netwærk (kapitel 01): funkt01.pdf Opgaver: Opgave 2: ReLU(x) ["rectified linear unit"] er omtalt i eNoterne eksample 1.3.2. Funktionen ReLU(x)=max(x,0). Opgave 7b: Læs om "where" i numpy: https://numpy.org/doc/stable/reference/generated/numpy.where.html#numpy.where Opgave 7d: En vektorfunktion er kontinuert, hvis alle dens koordinatfunktioner er kontinuerte. Derfor er en vektorfunktion diskontonuert, hvis mindst en af dens koordinatfunktionerne er diskontinuert. Opgave 9d: Der findes en indbygget funktion i SymPy kaldet "nextprime" (prøv den bagefter): https://docs.sympy.org/latest/modules/ntheory.html#sympy.ntheory.generate.nextprime |
| Funktions begreber |
Givet en funktion f: A → B. · domain = A · definitionsmængden er den del af A, hvor f er defineret = Dm(f) = dom(f) · dispositionsmængden = co-domain = B · billedmængden = værdimængden = den del af B, som rammes ved afbildningen = image = range = Vm(f) = im(f) |
| Ny arbejdsform |
· Forberedelse: læs noter, løs småopgaver, kør demo · Opgaveregning (øvelser) · Efterbehandling (afrunding) |
| AI-software DTU |
Microsoft Copilot: https://copilot.microsoft.com/ (login nederst til venstre med din DTU-konto) |
| Markdown SymPy VS Code Jupiter Notebook matplotlib LaTex |
Brug denne initialisering i starten af hver Python-fil i VSCode Jupyter Notebook (.ipynb), når du regner opgaver:![]() Udvidet initialisering med diverse normer: normer.png ![]() Google Docs understøtter nu Markdown: https://workspaceupdates.googleblog.com/2024/07/import-and-export-markdown-in-google-docs.html Markdown Guide: https://dl.icdst.org/pdfs/files3/c79990b0b853932d36ddc117ce2503e3.pdf SymPy dokumentation: https://docs.sympy.org/latest/reference/index.html Numpy dokumentation: https://numpy.org/doc/stable/reference/index.html VS Code shortcuts: https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf Jupyter Notebooks in VS Code: https://code.visualstudio.com/docs/datascience/jupyter-notebooks Ved problemer kontakt Python Supporten: https://pythonsupport.dtu.dk/. Plot-guide til SymPy: https://docs.sympy.org/latest/modules/plotting.html# Eller brug matplotlib: https://matplotlib.org/, som er veldokumenteret. Oversigt over LaTeX-symboler til matematik: https://oeis.org/wiki/List_of_LaTeX_mathematical_symbols LaTeX-symboler vedr. græske bogstaver og matematik: https://www.overleaf.com/learn/latex/List_of_Greek_letters_and_math_symbols LaTeX Cheat Sheet: https://gitlab.gbar.dtu.dk/latex/latex-website-resources/raw/master/guides/latex_cheatsheet.pdf |
| Gymnasiepensum |
Matematik: https://www.webmatematik.dk |