master > master: nb - plotformatierung
This commit is contained in:
parent
b94b763cf1
commit
050dde99f6
@ -49,7 +49,7 @@
|
||||
"u[8] = -0.7\n",
|
||||
"u[58] = 1j * sqrt(2);\n",
|
||||
"\n",
|
||||
"display_signal(u, 'Beispiel eines Vektors als Signal dargestellt');"
|
||||
"display_signal(u, 'Beispiel eines Vektors in $\\mathbb{C}^{100}$ als Signal über $\\{0,1,2,\\ldots,99\\}$ dargestellt');"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -211,16 +211,33 @@
|
||||
"# Anzeige der Lösung:\n",
|
||||
"display_signal(u_guess, 'Geschätztes Signal');\n",
|
||||
"\n",
|
||||
"# Verifikation von Lösung:\n",
|
||||
"print(dedent(\n",
|
||||
"# Verifizierung der Lösung:\n",
|
||||
"display_latex(\n",
|
||||
" f'''\n",
|
||||
" %error := ‖u_guess – u‖ / ‖u‖\n",
|
||||
" = ‖F_n · (u_guess – u)‖ / ‖F_n · u‖\n",
|
||||
" ... wieso?? [Stichwort: unitär]\n",
|
||||
" = ‖F_n · u_guess – F_n · u‖ / ‖F_n · u‖\n",
|
||||
" = {linalg.norm(F_n @ u_guess - F_mal_u)/linalg.norm(F_mal_u):.2%}\n",
|
||||
" $$\n",
|
||||
" \\\\begin{{array}}{{rcl}}\n",
|
||||
" \\\\%\\\\text{{error}}\n",
|
||||
" &\\colonequals\n",
|
||||
" &\\\\dfrac{{\\\\|u_{{\\\\text{{guess}}}} - u\\\\|}}{{\\\\|u\\\\|}}\\\\\\\\\n",
|
||||
" &=\n",
|
||||
" &\\\\dfrac{{\n",
|
||||
" \\\\|\\\\mathcal{{F}}_{{n}}\\\\,(u_{{\\\\text{{guess}}}} - u)\\\\|\n",
|
||||
" }}{{\n",
|
||||
" \\\\|\\\\mathcal{{F}}_{{n}}\\\\,u\\\\|\n",
|
||||
" }}\n",
|
||||
" \\\\quad\\\\text{{\\\\ldots wieso?? [Stichwort: unitär!]}}\\\\\\\\\n",
|
||||
" &= &\\\\dfrac{{\n",
|
||||
" \\\\|\\\\mathcal{{F}}_{{n}}\\\\,u_{{\\\\text{{guess}}}} - \\\\mathcal{{F}}_{{n}}\\\\,u\\\\|\n",
|
||||
" }}{{\n",
|
||||
" \\\\|\\\\mathcal{{F}}_{{n}}\\\\,u\\\\|\n",
|
||||
" }}\\\\\\\\\n",
|
||||
" &= &{linalg.norm(F_n @ u_guess - F_mal_u)/linalg.norm(F_mal_u):.2%}\n",
|
||||
" \\\\%\n",
|
||||
" \\\\\\\\\n",
|
||||
" \\\\end{{array}}\n",
|
||||
" $$\n",
|
||||
" '''\n",
|
||||
"));\n"
|
||||
");\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
39
src/thirdparty/render.py
vendored
39
src/thirdparty/render.py
vendored
@ -6,14 +6,47 @@
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
from IPython.display import Latex;
|
||||
from IPython.display import display_latex;
|
||||
from IPython.display import display_png;
|
||||
from IPython.display import display_markdown;
|
||||
from IPython.display import display;
|
||||
from IPython.display import display_png;
|
||||
from IPython.display import display as display_text_ipython;
|
||||
from IPython.display import display_latex as display_latex_ipython;
|
||||
from IPython.display import display_markdown as display_md_ipython;
|
||||
import ipywidgets as widgets;
|
||||
# from array_to_latex import to_ltx as array_to_latex; # <- has issues
|
||||
from qiskit.visualization import array_to_latex;
|
||||
|
||||
from functools import wraps;
|
||||
from typing import Callable;
|
||||
from typing import TypeVar;
|
||||
|
||||
from src.thirdparty.misc import dedent;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# MODIFICATIONS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
T1 = TypeVar('T1');
|
||||
T2 = TypeVar('T2');
|
||||
|
||||
def display_with_dedent(pre_process: Callable[[str], T1] = lambda x: x):
|
||||
'''
|
||||
Returns a decorator that modifies string -> string methods
|
||||
'''
|
||||
def dec(method: Callable[[T1], T2]) -> Callable[[str], T2]:
|
||||
'''
|
||||
Performs method but dedents first.
|
||||
'''
|
||||
@wraps(method)
|
||||
def wrapped_method(text: str) -> T2:
|
||||
return method(pre_process(dedent(text)));
|
||||
return wrapped_method;
|
||||
|
||||
return dec;
|
||||
|
||||
display_latex = display_with_dedent(Latex)(display_latex_ipython);
|
||||
display_text = display_with_dedent()(display_text_ipython);
|
||||
display_markdown = display_with_dedent()(display_md_ipython);
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
Loading…
Reference in New Issue
Block a user