PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellenkakulation mit Latex



BTFYA
05-12-2011, 15:56
Gute Tag,

ich möchte gerne Formeln in Latex zur Tabellenkalkulation verwenden. Das stelle ich mir so vor:

Man hat eine Tabelle mit messwerten m_ij und möchte die Beispieloperation für das ergebnis e_i3=m_i1/m_i2 durchführen.

\begin{tabular}{ccc}
m_i1 & m_i2 & e_i3 \\
\midrule
m_11 & m_12 & e_13 \\
m_21 & m_22 & e_13
\end{tabluar}
\label{tab.tab1}

Dazu schreibt man dann sowas wie $e_i3 = \frac{m_i1}{m_i2}$. Dieses Programm soll dann erstmal alle werte e_i3 ausrechnen und zusätzlich eine zeile in den annex schreiben die so aussieht:

Rechnung für Spalte j von Tabelle \ref{tab.tab1}:

\begin{equation}
e_i3 = \frac{m_i1}{m_i2}.
\end{equation}

Bisher mach ich das mit excel und exportiere es dann in tex. Die wichtigsten Formeln texe ich dann. So wäre das aber viel schöner, weil man nicht excel und latex code schreiben muss.

Sind ja auch nicht so viele Operationen für z.B. eine Fehlerrechnung:

Addieren, Subtrahieren
Dividieren, Multiplizieren
\ln{}, \exp{}
quadrieren, wurzel, absolut
ignorieren von Textsatzbefehlen wie \left \right
auslesen von werten wie \unit{10}{M \Omega} = 10*10^6


Und man hätte eine Perfekte dokumentation von allen Tabellenberechnungen.

Gibts sowas schon, oder muss ich mir das mit PERL oder was auch immer selber machen? Ich mein ich bin noch Jung, bevor ich das 40 jahre immer zweimal mache...

hakaze
05-12-2011, 16:37
datatool (http://ctan.org/tex-archive/macros/latex/contrib/datatool) liest ASCII-Dateien und kann auch einfache Berechnungen. Das Umrechenen von Einheitenpräfixen ist allerdings AFAIK nicht drin.

Ich persönlich bin da eher Vertreter der Variante "Daten extern verarbeiten und nur noch den relevanten Teil als Latex-Code zur weiteren Verwendung ausgeben". In deinem Besipiel wären das dann nur noch die Mittelwerte und Abweichungen.

localghost
05-12-2011, 18:06
Versuche es mit calctab (http://ctan.org/pkg/calctab), spreadtab (http://ctan.org/pkg/spreadtab) oder tabularcalc (http://ctan.org/pkg/tabularcalc).


Thorsten

BTFYA
05-12-2011, 23:32
Versuche es mit calctab (http://ctan.org/pkg/calctab), spreadtab (http://ctan.org/pkg/spreadtab) oder tabularcalc (http://ctan.org/pkg/tabularcalc).


Thorsten

Danke, aber calctab macht nur Addition und gibt keine Formeln aus. Und spreadtab verwendet keinen normalen Mathe-Latex Code. Ah... tabularcalc sieht cool aus!

Super vielen Dank, ich werde das mal ausprobieren. :)

BTFYA
05-12-2011, 23:45
datatool (http://ctan.org/tex-archive/macros/latex/contrib/datatool) liest ASCII-Dateien und kann auch einfache Berechnungen. Das Umrechenen von Einheitenpräfixen ist allerdings AFAIK nicht drin.

Ich persönlich bin da eher Vertreter der Variante "Daten extern verarbeiten und nur noch den relevanten Teil als Latex-Code zur weiteren Verwendung ausgeben". In deinem Besipiel wären das dann nur noch die Mittelwerte und Abweichungen.

So habe ich es ja bisher auch gemacht. Ich werde mal in ner Weile schreiben was besser funktioniert.

Meine Vision sieht halt so aus:


Relevante Formeln möglichst kurz in den Text.
Messdaten in eine Tabelle (je nach Länge/Situation in den Anhang oder Text)
Mit Messdaten Zielgröße Ausrechnen.
Statistische Fehler aus Zielgröße Abschätzen.
Fehlerfortpflanzung automatisch ausrechnen lassen.


Mit dem Ausrechnen der Fehlerfortpflanzung stelle ich mir das so vor: Wenn man eine Funktion f(x,y) hat wobei x mit dem fehler dx und y mit dem Fehler dy behafet ist, alle Möglichkeiten ausrechnen, also
f(x+dx,y+dy), f(x-dx,y-dy), f(x+dx,y-dy), f(x-dx,y+dy), dann die größte f_+ Und die kleinste Möglichkeit f_- nehmen und (f_+-f_-)/2 rechnen. Das ist dann der systematische Fehler. Man kann sich dann sogar dieses ewige Ableiten sparen. Geht leider nicht bei der Fortpflanzung statistischer Fehler, weil die sich ja quadratisch addieren.

cookie170
07-12-2011, 14:32
Tabellenkalkulation innerhalb von LaTeX-Dateien kann man mit Lua umsetzen, aber man muss da erhebliche Aufwand reinstecken. Lua lernen, z.B.

Ausgangpunkt ist die Lua-Tabelle, die LaTeX-Tabelle wird daraus erzeugt, mit den berechneten Werten. Wenn man programmieren kann, ist das gar nicht so schwer, aber für mich als Laien ist die Hürde zu hoch. Ich hab's ausprobiert und komme zu schönen Tabellen mit Berechnungen, aber zum einen muss man, wenn es darauf ankommt, natürlich Routinen einbauen, die Fehler abfangen und zum anderen vergesse ich nach ganz kurzer Zeit mein bisschen Lua wieder und fange von vorne an beim nächsten Mal.

Man kann mit LuaTeX, da bin ich sicher, eine ziemlich weitgehende Tabellenkalkulation bauen, aber bisher hat das noch niemand getan.

Gruß,
Alexander

Schweinebacke
07-12-2011, 15:15
Es gab übrigens einen interessanten Artikel in der DTK-Ausgabe 2/2011. Darin haben Alexander Willand und Markus Kohm gezeigt, wie man lua-Tabellen für eine tabellarische Rechnung verwenden kann.

cookie170
07-12-2011, 18:48
Es gab übrigens einen interessanten Artikel in der DTK-Ausgabe 2/2011. Darin haben Alexander Willand und Markus Kohm gezeigt, wie man lua-Tabellen für eine tabellarische Rechnung verwenden kann.

Naja, rate wer der Alexander war.

Gruß,
Alexander

BTFYA
07-12-2011, 22:50
Danke, aber calctab macht nur Addition und gibt keine Formeln aus. Und spreadtab verwendet keinen normalen Mathe-Latex Code. Ah... tabularcalc sieht cool aus!

Super vielen Dank, ich werde das mal ausprobieren. :)

Ah ich habe das schelcht durchgelesen. Da muss man ja doch die Formel zwei Mal eingegen. Schade! Das verdoppelt den Aufwand. Trotzdem danke für den Tipp.

BTFYA
07-12-2011, 22:54
Tabellenkalkulation innerhalb von LaTeX-Dateien kann man mit Lua umsetzen, aber man muss da erhebliche Aufwand reinstecken. Lua lernen, z.B.

Ausgangpunkt ist die Lua-Tabelle, die LaTeX-Tabelle wird daraus erzeugt, mit den berechneten Werten. Wenn man programmieren kann, ist das gar nicht so schwer, aber für mich als Laien ist die Hürde zu hoch. Ich hab's ausprobiert und komme zu schönen Tabellen mit Berechnungen, aber zum einen muss man, wenn es darauf ankommt, natürlich Routinen einbauen, die Fehler abfangen und zum anderen vergesse ich nach ganz kurzer Zeit mein bisschen Lua wieder und fange von vorne an beim nächsten Mal.

Man kann mit LuaTeX, da bin ich sicher, eine ziemlich weitgehende Tabellenkalkulation bauen, aber bisher hat das noch niemand getan.

Gruß,
Alexander

Ich würde gerne mich mit PERL beschäftigen, wäre das dafür nicht auch denkbar? Wo liegen vor und Nachteile?

Schweinebacke
08-12-2011, 07:55
Expertenklüngel elendiger! :p

Schweinebacke
08-12-2011, 07:58
Perl ist ein externes Programm, mit dem Du durchaus TeX-Code erzeugen kannst. Lua ist in luaTeX eingebaut, so dass auf diverse Innereien von TeX Zugriff besteht und man eine enge Verzahnung beider Teile hat.

cookie170
08-12-2011, 09:23
Der Unterschied zwischen Perl und Lua liegt darin, dass es für Lua eine inzwischen umfangreiche Bibliothek gibt, mit der direkt auf LaTeX-Befehle zugegriffen werden kann. Man kann beispielsweise direkt den Wert von in Lua definierten Variablen ausdrucken. Schau Dir dazu mal die Seiten 115 ff. der aktuellen LuaTeX-Doku an (Du kennst den Befehl "texdoc Paketname", oder?).

Aber nochmal: das ist etwas für jemanden, der einigermaßen programmieren kann. Ansonsten macht man viele Fehler und sucht sich dumm und dusselig. Alleine bis ich begriffen habe, wie ich Tabellen mit vielen Spalten in Lua abbilde und auf jedes einzelne Element zugreife, das war für mich als Juristen eine Herausforderung. Und dann die Routinen, um Fehler abzufangen! Eine Variable kann alle möglichen Werte haben. Verrutscht man in der Spalte einer Tabelle, hat sie plötzlich einen Text als Wert oder eine falsche Zahl. OK, aber man muss auch daran denken, dass die Variable noch überhaupt keinen Wert haben kann und damit "nil" ist, was zu einem Fehler beim Lauf führt.

OK, Spaß hat das schon gemacht, mir hat das deutsche Handbuch sehr geholfen (Programmieren mit Lua oder so ähnlich, OpenSource Verlag).

Wenn Du sowas anpackst, dann veröffentliche doch hier ab und zu Deinen Stand.

Gruß,
Alexander