PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : plot mit tikz "Dimension too Large"



zac
08-11-2013, 15:37
Ich würde gerne in latex etwas plotten, da dann auch die Beschriftung einheitlich zum restlichen Dokument passt. Prinzipiell funktioniert das auch. Bei einem Beispiel sind die Werte mit denen Latex rechnen muss wohl zu groß "Dimension too Large".
Meine Frage ist nun:
Muss ich das so akzeptieren und kann diese Funktion nicht mit Latex plotten, oder gibt es eine Möglichkeit auch mit "großen Zahlen" zu plotten?

Hier mein Beispiel, das auskommentierte lässt sich nicht plotten, die ersten beiden plots schon:


\documentclass[a4paper,11pt,ngerman,oneside,reqno]{book}
\usepackage[latin1]{inputenc} %deutsche Zeichen [ansinew]
\usepackage{tikz} %zeichnencenter


\begin{document}
\begin{tikzpicture}
\draw[scale=1,domain=-3:3,smooth,variable=\t] plot ({\t},{1/(3.13^(1/4))*exp(-\t*\t/2)});
\draw[->] (-5,0) -- (5,0) node[right,below] {$x$};
\draw (-1.41,-.1) -- (-1.41,.1);
\draw (1.41,-.1) -- (1.41,.1);
\end{tikzpicture}

\begin{tikzpicture}
\draw[scale=1,domain=-5:5,smooth,variable=\t] plot ({0.447*\t},
{2*(0.038330715)*(16*\t*\t*\t*\t-48*\t*\t+12)*exp(-\t*\t/2)});
\draw[->] (-5,0) -- (5,0) node[right,below] {$x$};
\draw (0.447*-3.16,-.1) -- (0.447*-3.16,.1);
\draw (0.447*3.16,-.1) -- (0.447*3.16,.1);
\end{tikzpicture}

%\begin{tikzpicture}
%\draw[scale=1,domain=-5:5,smooth,variable=\t] plot ({0.447*\t},
%{2*(3.14^(1/4)*1170980768)*
%(518918400 +0 -8302694400*(\t)^2 +0 +19372953600*(\t)^4 +0 -15498362880*(\t)^6 +0 +5535129600*(\t)^8 +0 -984023040*(\t)^(10) +0 +89456640*(\t)^(12) +0 -3932160*(\t)^(14) +0 +65536*(\t)^(16)
%)
%*exp(-\t*\t/2)});
%\draw[->] (-5,0) -- (5,0) node[right,below] {$x$};
%\draw (0.447*-3.16,-.1) -- (0.447*-3.16,.1);
%\draw (0.447*3.16,-.1) -- (0.447*3.16,.1);
%\end{tikzpicture}

\end{document}




auch wenn ich im auskommentierten Teil den Vorfaktor reinmultiplizier und die Koeffizienten so kleiner werden ist immer noch "Dimension too Large"

Stefan_K
08-11-2013, 22:21
Du könntest alternativ das pgfplots (http://pgfplots.net)-Paket probieren.

Stefan

zac
09-11-2013, 11:23
ok, dort rechnet er zwar auch ne weile, aber es funktioniert. Leider ist dort die Darstellung etwas anders (so mit Kasten außenrum), aber das ist akzeptabel oder lässt sich vielleicht auch noch beheben. Ich hab nun aber nur folgendes Problem. Ich würde gerne im Intervall [-8,8] plotten. pgfplots plottet aber nur im Intervall [-5,5], obwohl mein Kasten von -8 bis 8 geht.



\documentclass[a4paper,11pt,ngerman,oneside,reqno]{book}
\usepackage[latin1]{inputenc} %deutsche Zeichen [ansinew]
\usepackage{tikz} %zeichnencenter
\usepackage{pgfplots}
\usepackage{pgfplotstable}
%\pgfplotsset{width=7cm,compat=1.5.1}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
xmin=-8,
xmax=8,
xlabel=$x$,
ylabel={$\varphi_{16}$},
]
\addplot[no marks, samples=500] {
(0.3328601771 +0 -5.325762834*(x)^2 +0 +12.42677994*(x)^4 +0 -9.941423957*(x)^6 +0 +3.55050855616420*(x)^8 +0 -0.6312015210*(x)^(10) +0 +0.05738195646*(x)^(12) +0 -0.002522283800*(x)^14 +0 +4.203806334*10^(-5)*(x)^(16)
)
*exp(-x*x/2)
};
\end{axis}
\end{tikzpicture}

\end{document}

esdd
10-11-2013, 12:45
Du musst domain entsprechend anpassen. Voreingestellt ist der Bereich von -5 bis 5. Die Angaben von xmin und xmax beeinflussen die x-Achse und können damit die Darstellung zwar begrenzen, aber sie erweitern den Berechnungsbereich nicht.


\documentclass[margin=5mm]{standalone}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.9}

\begin{document}

\begin{tikzpicture}
\begin{axis}[xmin=-8,xmax=8.4,domain=-8:8,
xlabel=$x$,ylabel={$\varphi_{16}$},
axis x line=bottom, axis y line=left]

\addplot[no marks, samples=500] {
(0.3328601771-5.325762834*(x)^2
+12.42677994*(x)^4
-9.941423957*(x)^6
+3.55050855616420*(x)^8
-0.6312015210*(x)^(10)
+0.05738195646*(x)^(12)
-0.002522283800*(x)^14
+4.203806334*10^(-5)*(x)^(16))
*exp(-x*x/2)
};
\end{axis}
\end{tikzpicture}

Gruß
Elke

zac
11-11-2013, 18:49
danke, so funktionierts!