theme | background | title | info | author | highlighter | drawings | transition | mdc | aspectRatio | htmlAttrs | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default |
images/cover.png |
Bücher mit Code online publizieren |
false |
Gert-Ludwig Ingold |
shiki |
|
slide-left |
true |
16/9 |
|
- Manuskript zu einem Programmierkurs frei zugänglich machen
- Präsentation auf einer responsiven Webseite
- Code wird zum Aufbau der Inhalte der Webseite ausgeführt und die Resultate werden integriert
- allgemeine Lehrmaterialen mit Code zum Erzeugen von Abbildungen oder ganz ohne Code
- wissenschaftliche Arbeiten, z.B. mit Datenanalyse
- in erster Linie zur Erzeugung von Dokumentation
- auch schöne PDF-Ausgabe
- Markup mit reStructuredText
- zahlreiche Erweiterungsmöglichkeiten
- Sprache einstellbar
- standardmäßig keine Codeausführung mit Einbettung des Ergebnisses
- Webseiten nicht responsiv
Beispiel links: gertingold.github.io/tools4scicomp
jupyterbook.org | executablebooks.org
- basiert unter anderem auf Sphinx
- Sprache über die Sphinx-Konfiguration festlegbar
Listen sind uns beispielsweise bereits in {numref}`forloop` begegnet, wo wir die
- Ergebnis der Ausführung von Code lässt sich einbetten
- responsive Webseite
Beispiel links: gertingold.github.io/epriprog
- Integration von Code, auch mit interaktiver Kontrolle, sowie Text, Formeln und Multimediaelementen
- Anbindung an Python-, R-, Julia-Kernel und viele mehr
- Einsatz in Lehre, Datenanalyse und vielem mehr
- Möchte man in der Lehre mit vorgefertigtem Code arbeiten oder eher Code entwickeln?
- Markdown, aber MyST Markdown nur mit einer Extension
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Harmonischer Oszillator"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zeitunabhängige Schrödingergleichung\n",
"\n",
"$$-\\frac{\\hbar^2}{2m}\\frac{\\text{d}^2}{\\text{d}x^2}\\psi(x)+\\frac{m}{2}\\omega^2x^2\\psi(x) = E\\psi(x)$$"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from math import factorial, pi, sqrt\n",
"\n",
"import numpy as np\n",
"import numpy.linalg as LA\n",
"from scipy.special import eval_hermite\n",
"import matplotlib.pyplot as plt\n",
"\n",
"import ipywidgets as widgets\n",
"from ipywidgets import interact"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def ho_numerical(n, delta):\n",
" u = delta*np.arange(-n, n+1)\n",
" hamilton = -(np.eye(2*n+1, k=1) - 2*np.eye(2*n+1) + np.eye(2*n+1, k=-1))/delta**2\n",
" hamilton = hamilton + np.diag(u**2/4)\n",
" eigvals, eigvecs = LA.eigh(hamilton)\n",
" return u, eigvals, eigvecs\n",
"\n",
"n = 1000\n",
"delta = 0.01\n",
"u, eigvals, eigvecs = ho_numerical(n, delta)\n",
"plt.plot(u, u**2/4, '#3f3f3f')\n",
"plt.ylim(0, 10.2)\n",
"for n in range(10):\n",
" psi = 7*eigvecs[:, n]/LA.norm(eigvecs[:, n])\n",
" plt.plot(u, eigvals[n]+psi)\n",
"plt.xlabel('$u = x/x_0$', fontsize=15)\n",
"plt.ylabel(r'$\\epsilon = E/\\hbar\\omega$', fontsize=15)\n",
"plt.yticks(np.arange(0.5, 10, 1))\n",
"plt.grid(axis='y')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.11.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
- Versionskontrolle kann Schwierigkeiten bereiten
- Verwendung von
nbstripout
-Filter
Variante 1 | Variante 2 | Ausgabe |
---|---|---|
# Überschrift 1 |
Überschrift 1 ============= |
|
## Überschrift 2 |
Überschrift 2 ------------- |
|
##### Überschrift 5 |
||
*kursiv* |
_kursiv_ |
kursiv |
**fett** |
__fett__ |
fett |
`inline` |
inline |
Variante 1 | Variante 2 | Ausgabe |
---|---|---|
* Eintrag 1 * Eintrag 2 |
- Eintrag 1 - Eintrag 2 |
|
1. Eintrag 1 2. Eintrag 2 |
1) Eintrag 1 2) Eintrag 2 |
|
--- |
*** |
|
> Blockzitat |
Blockzitat |
Variante 1 | Variante 2 | Ausgabe |
---|---|---|
[Link](http://a.org) |
[Link][1] ⋮ [1]: http://a.org |
Link |
![Bild](images/bild.png) |
![Bild][1] ⋮ [1]: images/bild.png |
|
``` a = 3 print(a**2) ``` |
␣␣␣␣a = 3 ␣␣␣␣print(a**2) |
a = 3 |
MyST Markdown erweitert CommonMark jupyterbook.org/en/stable/content/
es kann auch Fälle geben, in denen man selbst programmieren muss, zum Beispiel wenn man eine Exponentialfunktion
auf einen Waschbären anwenden möchte ({numref}`fig:exponential_raccoon`).
```{figure} images/einleitung/exponential_raccoon.png
---
width: 10cm
name: fig:exponential_raccoon
---
Originalbild eines Waschbärs (links) und nach Anwendung einer Exponentialfunktion (rechts).
```
````{margin}
```{admonition} Tipp
:class: tip
Eine größere Darstellung von Abbildung können Sie durch Klicken auf das entsprechende Bild erhalten.
```
````
Das Beispiel der Digitalkamera schlägt die Brücke vom Alltag ins Labor. Im Grunde genommen ist eine Digitalkamera
nichts anderes als ein Messgerät, das
```markdown
```{admonition} Hinweis
:class: tip
Seit Python 3.9 lässt sich die kleinste darstellbare
Zahl, also `5e-324` mit Hilfe von `math.ulp(0)`
erhalten.
```
```
```markdown
````{admonition} Weiterführendes (rechts aufklappen)
:class: toggle
Nach der Kompilierung des obigen C-Programms entsteht als Zwischenprodukt
ein so genanntes Assembler-Programm, das schon sehr maschinennah ist und
von einem Assembler in den von einem Computer les- und ausführbaren
Maschinencode umgewandelt wird.
```{code-block}
.file "bsp_exp.c"
.text
⋮
```
- Python besitzt eine umfangreiche Standardbibliothek (»Python comes with batteries included«) und das
wissenschaftliche Rechnen wird durch eine Vielzahl freier Programmbibliotheken, wie {program}`NumPy/SciPy`, das wir
im Kapitel {ref}`scipy` besprechen werden, unterstützt.
- Python hat sich in den letzten Jahren zu einer sehr populären Sprache entwickelt, unter anderem im Bereich der
wissenschaftlichen Datenanalyse.
Bei den beiden physikalischen Beobachtungen, die in den letzten Jahren die Aufmerksamkeit einer breiten Öffentlichkeit
erregten, nämlich die Beobachtung von Gravitationswellen [^prd93] und die Aufnahme des Abbilds eines schwarzen
⋮
[^prd93]: B. P. Abbott et al. , [Phys. Rev. D 93 , 122003 (2016)](https://doi.org/10.1103/PhysRevD.93.122003). Das
Analysepaket PyCBC basiert auf Python und auch das Analysepaket GstLAL enthält einige Pythonskripte.
Im ersten Beispiel soll der Zusammenhang zwischen der Winkelgeschwindigkeit $\omega$
und der Beschleunigung $a$ bei einer Rotationsbewegung untersucht werden. Gemäß
der Mechanik erfährt ein Objekt im Abstand $r$ von der Drehachse die Beschleunigung
$$a = r\omega^2\,.$$
Zur experimentellen Untersuchung wird ein Smartphone wie in
```markdown
```{code-block} python
---
linenos: true
emphasize-lines: 18,21-25,29
---
import random
def get_result(n_self, n_other):
result = (n_self - n_other) % 3
if result == 0:
return 'Das Spiel endete unentschieden.'
elif result == 1:
return 'Du hast gewonnen.'
return 'Du hast leider verloren.'
objekte = ['Stein', 'Papier', 'Schere']
info_text = ('\n[0] Stein\n'
'[1] Papier\n'
'[2] Schere\n\n'
'Gib eine Zahl zwischen 0 und 2 ein oder -1 zum Beenden: ')
while True:
n_benutzer = int(input(info_text))
⋮
</div>
<div>
<img src="images/linenos.png" style="width: 100%; margin: auto">
</div>
</div>
---
# MyST Markdown anhand von Beispielen
```markdown
Möchte man aus den Werten zweier Variablen eine komplexe Zahl konstruieren, geht dies mit der zweiten der gerade
genannten Methoden sehr einfach
```{code-cell} python
x = 1
y = 2
z1 = complex(x, y)
z2 = complex(x, -y)
z1/z2
```
Falls man die Funktion {func}`complex` nicht verwenden möchte, muss man beachten, dass die folgenden beiden Wege
```{code-cell} python
---
tags: [raises-exception]
---
x = 18
y = 9
z = x+yj
```
auch im nächsten Abschnitt noch einmal eine Rolle spielen, wenn wir die Ausgabe von Daten in eine Datei besprechen.
<video width="640" height="360" controls>
<source src="https://gertingold.github.io/resources/flush.webm" type="video/webm">
Ihr Browser unterstützt nicht das video-Tag.
</video>
(readfile)=
## Lesen von Dateien
_conf.yml
title : Einführung in Prinzipien der Programmierung
author : Gert-Ludwig Ingold
copyright : "CC-BY"
logo : ""
only_build_toc_files: true
repository:
url: https//github.com/gertingold/epriprog
path_to_book: epriprog
html:
use_repository_button: false
use_issues_button: false
use_edit_page_button: false
home_page_in_navbar: false
latex:
latex_documents:
targetname: epriprog.tex
latex_elements:
papersize: a4paper
sphinx:
config:
language: de
numfig_format:
section: 'Kapitel %s'
launch_buttons:
binderhub_url: "https://mybinder.org"
_toc.yml
root: intro
options:
numbered: true
chapters:
- file: einleitung
- file: vorschau
- file: datentypen
- file: kontrollstrukturen
- file: funktionen
- file: sequenzen
- file: einausgabe
- file: scipy
- file: objektorientiert
- file: zahlensysteme
- file: floats
- file: unicode
- Plattform für Software-Versionskontrolle und Projektzusammenarbeit
- freier persönlicher Account
- Webseiten unter username.github.io unter Verwendung eines öffentlichen GitHub-Repositories mit diesem Namen
- Erzeugung des Inhalts aus anderen GitHub-Repositories mit Hilfe von GitHub-Actions in einem
Zweig
gh-pages
- statische Webseiten, also z.B. keine PHP-Skripten
- Beschränkung der Seitengröße und Bandbreite, nicht für kommerziellen Gebrauch
::left::
name: deploy
on:
push:
branches:
- master
jobs:
build-and-deploy-book:
runs-on: ubuntu-latest
steps:
- name: checkout merge commit
uses: actions/checkout@v4
- name: set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: install dependencies
run: |
conda install -y python=3.11
conda env update --file environment.yml --name base
echo $CONDA/bin >> $GITHUB_PATH
- name: build the book
run: |
jupyter-book build epriprog
- name: deploy book's HTML to gh-pages branch
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: epriprog/_build/html
::right::
name: epriprog
channels:
- default
- conda-forge
dependencies:
- python==3.11
- scipy
- matplotlib
- jupyter-book
- neben Jupyter Book zweites (und jüngeres) Hauptprojekt von executable{books}
- Javascript statt Python, schneller und mehr Funktionalität
- Überlapp mit Jupyter Book
- Jupyter Book Quellen verwendbar
- Intersphinx für Verlinkung mit Sphinx-Dokumentationen
- vor allem Templates für Journale
(derzeit 2
docx
, 18tex
, 2typst
) sowie 2 Templates für Webseiten (article und book) - Möglichkeit für interaktive Inhalte
- Lokalisierung??
```markdown
Dies ist ein MyST-Beispiel für den LinuxInfoTag 2024, in
dem es allgemein um geht.
```
Beispielcode, siehe
github.com/gertingold/lit2024/tree/main/myst-example
```markdown
Beim LinuxInfoTag 2017 habe ich ein
[Bild](#exponential_raccoon) gezeigt. Man kann auf das
Bild auch mit seiner Nummer verweisen:
[Abb. %s](#exponential_raccoon), aber in der
Bildüberschrift steht trotzdem "Figure 1".
```
Intersphinx-Link zu einer Seite der Jupyter Book
Dokumentation: [](myst:jupyterbook#publish/gh-pages)
Dieses Diagramm ist mit mermaid erstellt und stammt aus
der MyST-Dokumentation:
```{mermaid}
flowchart LR
A[Jupyter Notebook] --> C
B[MyST Markdown] --> C
C(mystmd) --> D{AST}
D <--> E[LaTeX]
E --> F[PDF]
D --> G[Word]
D --> H[React]
D --> I[HTML]
D <--> J[JATS]
```
- Executable Book Project: executablebooks.org
- Jupyter Book: jupyterbook.org
- MyST: mystmd.org
- Quellen zu diesem Vortrag: github.com/gertingold/lit2024
- Beispiel mit Jupyter Book: github.com/gertingold/epriprog
- Beispiel mit Sphinx: github.com/gertingold/tools4scicomp