Wie kann ich eine mit der TikZ-Bibliothek math berechnete Folge in eine Matrix bzw. TikZ-Matrix schreiben?

alt text

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass[11pt]{scrartcl}
%\documentclass[border=3mm]{standalone}
\usepackage[ngerman]{babel}
\usepackage{pgf, pgffor, tikz, amsmath, amssymb}
\usetikzlibrary{math, matrix}
\begin{document}
$M_n(k) = (2k-1)\cdot 2^n - 1 \text{ mit } k,n \in \mathbb{N}_{\geq 1}$ \\
IST: \\
%\tikzmath{%
%function Mersenne(\n){return 2^\n-1;}; % Klappt nicht ganz
%function Ungerade(\k){return (2*\k-1);};
%}
\tikzmath{% ===================
int \M, \n, \k;
for \k in {3}{%
for \n in {1,...,4}{%%
\M = (2*\k-1)*2^\n-1;
print {\M, };
};%%
};%
} % ===================
\bigskip
SOLL: \\
$\begin{pmatrix}
1 & 3 & 7 & 15 & ... & \infty\\
5 & 11 & 23 & 47 & ... & \infty\\
9 & 19 & 39 & 79 & ... & \infty\\
13 & 27 & 55 & 111 & ... & \infty\\
\vdots & \vdots & \vdots & \vdots& \ddots& \vdots\\
\infty & \infty & \infty & \infty & ... & \infty\\
\end{pmatrix}$
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

gefragt 01 Jan '18, 18:13

cis's gravatar image

cis
9.5k102460491
Akzeptiert-Rate: 29%

bearbeitet 01 Jan '18, 20:24


Mit Lua ist alles einfacher.

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\begin{pmatrix}
\directlua{\unexpanded{
% Inhalt
for k = 1,3 do
for n = 1,4 do
local M = (2*k-1)*2^n-1
tex.sprint(M .. "&")
end
tex.sprint("\\cdots & \\infty \\\\")
end
% Punkte
for n = 1,4 do
tex.sprint("\\vdots &")
end
tex.sprint("\\ddots & \\vdots \\\\")
% Schluss
for n = 1,4 do
tex.sprint("\\infty &")
end
tex.sprint("\\cdots & \\infty \\\\")
}}
\end{pmatrix}
\]
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Noch schöner ist es, finde ich, in ConTeXt. Da kann man einfach die gesamte Formel mit Matrix in Lua bauen.

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\starttext
\startluacode
context.startformula()
context.startmathmatrix{left="\\left(", right="\\right)"}
-- Inhalt
for k = 1,3 do
for n = 1,4 do
local M = (2*k-1)*2^n-1
context.NC(M)
end
context.NC("\\cdots")
context.NC("\\infty")
context.NR()
end
-- Punkte
for n = 1,4 do
context.NC("\\vdots")
end
context.NC("\\ddots")
context.NC("\\infty")
context.NR()
-- Schluss
for n = 1,4 do
context.NC("\\infty")
end
context.NC("\\cdots")
context.NC("\\infty")
context.NR()
context.stopmathmatrix()
context.stopformula()
\stopluacode
\stoptext
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Permanenter link

beantwortet 02 Jan '18, 00:56

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

bearbeitet 02 Jan '18, 04:02

"Mit Lua ist alles einfacher." --> Dann muss ich aber Lua lernen, ich komm doch schon mit TeX nicht klar.

(02 Jan '18, 11:23) cis

Mir ging es jetzt zunächst darum, diese for-Schleife zu optimieren. Setzt man z.B. for \k in {1,...,4} werden die Zahlen nebeneinander, nicht untereinander geschrieben.

(02 Jan '18, 11:25) cis
Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×731
×58
×4

gestellte Frage: 01 Jan '18, 18:13

Frage wurde gesehen: 6,980 Mal

zuletzt geändert: 02 Jan '18, 20:15

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×