Interpolation zwischen mehreren Punkten

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Interpolation zwischen mehreren Punkten

von Patrick1990 » So 1. Jun 2014, 20:12

Vielen Dank erstmal für die Antwort.


Mein Ziel ist es, zu erreichen, dass die "Ausreißer" nicht so sehr ins Gewicht fallen, also eine Art interpolierte Kurve anhand der Punkte.

Das hochgeladene Bild aus meinem ersten Beitrag habe ich in Mathematica entworfen und "InterpolationOrder" größer gewählt.

von esdd » So 1. Jun 2014, 12:14

Mir ist jetzt nicht genau klar, was du genau erreichen willst. Mit mark=none kannst du die Marker ausblenden. Die Glättung der Plots mittels smooth lässt sich dann noch über den Parameter tension=... beeinflussen. Ich habe dafür jetzt einen myplot Stil definiert. Diesen gebe ich den einzelnen Plots als Option.
\documentclass[11pt,fleqn,numbers=noenddot]{scrartcl} 

\usepackage[ngerman]{babel} 
\usepackage{pgfplots,pgfplotstable} 
\usepackage[locale=DE]{siunitx} 
\usepackage{pdflscape} 
\usepackage{nicefrac} 

\pgfplotsset{ 
    compat=newest, 
    xlabel near ticks, 
    ylabel near ticks,
    myplot/.style={smooth,tension=0.5,mark=none,very thick}
} 


\begin{document} 

\begin{landscape} 
\begin{tikzpicture} 
\begin{axis}[ 
 title={$\Phi$-$V_{Umlauf}$-Kennlinien}, 
 width=1.5\textwidth,height=0.9\textheight, 
 axis x line=bottom, 
 xmin=0, 
 xmax=820, 
 xtick={0,80,160,240,320,400,480,560,640,720,800}, 
 axis y line=left, 
 ymin=0, 
 ymax=0.0021, 
 ytick={0,0.0001,0.0002,0.0003,0.0004,0.0005,0.0006,0.0007,0.0008,0.0009,
0.001,0.0011,0.0012,0.0013,0.0014,0.0015,0.0016,0.0017,0.0018,0.0019,0.002}, 
 xlabel={$V_{Umlauf}$ in $\left[\si{\ampere}\right]$}, 
 ylabel={$\Phi$ in$\left[\si{\volt\second}\right]$}, 
 grid=major, 
 legend style={ 
   at={(current bounding box.north-|current axis.east)}, 
   anchor=east, 
   legend columns=3
} 
] 
\addplot+[color=red,myplot ] 
 coordinates { 
 (0,0) 
 (80,         0.0005) 
 (160,      0.0009) 
 (240,      0.0011) 
 (320,      0.0013) 
 (400,      0.0014) 
 (480,      0.0015) 
 (560,      0.0015) 
 (640,      0.0016) 
 (720,      0.0016) 
 (800,      0.0017) 
} 
 ; 
\addlegendentry{Case 1} 

\addplot+[color=blue,myplot ] 
 coordinates { 
 (0,0) 
 (80,         0.0001) 
 (160,      0.0003) 
 (240,      0.0003) 
 (320,      0.0004) 
 (400,      0.0006) 
 (480,      0.0006) 
 (560,      0.0008) 
 (640,      0.0009) 
 (720,      0.0010) 
 (800,      0.0011) 
} 
 ; 
\addlegendentry{Case 2} 
\addplot+[color=green,myplot ] 
 coordinates { 
 (0,0) 
 (80,         0.0001) 
 (160,      0.0001) 
 (240,      0.0002) 
 (320,      0.0003) 
 (400,      0.0004) 
 (480,      0.0005) 
 (560,      0.0005) 
 (640,      0.0006) 
 (720,      0.0006) 
 (800,      0.0007) 
} 
 ; 
\addlegendentry{Case 3} 
\addplot+[color=brown,myplot] 
 coordinates { 
 (0,0) 
 (80,         0.0000) 
 (160,      0.0001) 
 (240,      0.0001) 
 (320,      0.0002) 
 (400,      0.0003) 
 (480,      0.0003) 
 (560,      0.0004) 
 (640,      0.0004) 
 (720,      0.0005) 
 (800,      0.0005) 
} 
 ; 
\addlegendentry{Case 4} 
\addplot+[color=black,myplot] 
 coordinates { 
 (0,0) 
 (80,         0) 
 (160,      0.0001) 
 (240,      0.0001) 
 (320,      0.0001) 
 (400,      0.0002) 
 (480,      0.0002) 
 (560,      0.0003) 
 (640,      0.0003) 
 (720,      0.0003) 
 (800,      0.0004) 
} 
 ; 
\addlegendentry{Case 5} 
\legend{$\nicefrac{\delta}{2}=0$\\$\nicefrac{\delta}{2}=0,5$\\
$\nicefrac{\delta}{2}=1$\\$\nicefrac{\delta}{2}=2$\\$\nicefrac{\delta}{2}=4$\\} 
\end{axis} 
\end{tikzpicture} 
\end{landscape} 

\end{document} 
Gruß
Elke

Interpolation zwischen mehreren Punkten

von Patrick1990 » Fr 30. Mai 2014, 15:52

Hallo,

ich habe folgendes Problem. Ich möchte einige Messwerte unter LaTeX darstellen und dazwischen eine "Kurve" interpolieren.
Soweit funktioniert dies sehr gut, doch die Kurve ist nicht schön "flüssig".


Hier das Minimalbeispiel:
\documentclass[11pt,fleqn,numbers=noenddot]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage{pgfplots,pgfplotstable} 
\usepackage[locale=DE]{siunitx} 
\usepackage{pdflscape}
\usepackage{nicefrac}

\pgfplotsset{
	compat=newest, 
	xlabel near ticks, 
	ylabel near ticks 
} 


\begin{document}

\begin{landscape}
\begin{tikzpicture}
\begin{axis}[ 
title={$\Phi$-$V_{Umlauf}$-Kennlinien},
width=1.5\textwidth,height=0.9\textheight,
axis x line=bottom, 
xmin=0, 
xmax=820,
xtick={0,80,160,240,320,400,480,560,640,720,800},
axis y line=left,
ymin=0,
ymax=0.0021, 
ytick={0,0.0001,0.0002,0.0003,0.0004,0.0005,0.0006,0.0007,0.0008,0.0009,
0.001,0.0011,0.0012,0.0013,0.0014,0.0015,0.0016,0.0017,0.0018,0.0019,0.002},
xlabel={$V_{Umlauf}$ in $\left[\si{\ampere}\right]$}, 
ylabel={$\Phi$ in$\left[\si{\volt\second}\right]$},
grid=major,
legend style={
  at={(current bounding box.north-|current axis.east)},
  anchor=east,
  legend columns=3
}
] 
\addplot+[color=red,smooth] 
coordinates {
(0,0) 
(80,			0.0005) 
(160,		0.0009) 
(240,		0.0011) 
(320,		0.0013) 
(400,		0.0014) 
(480,		0.0015)
(560,		0.0015)
(640,		0.0016)
(720,		0.0016)
(800,		0.0017)
}
;
\addlegendentry{Case 1}

\addplot+[color=blue,smooth] 
coordinates {
(0,0) 
(80,			0.0001) 
(160,		0.0003) 
(240,		0.0003) 
(320,		0.0004) 
(400,		0.0006) 
(480,		0.0006)
(560,		0.0008)
(640,		0.0009)
(720,		0.0010)
(800,		0.0011)
}
;
\addlegendentry{Case 2}
\addplot+[color=green,smooth] 
coordinates {
(0,0) 
(80,			0.0001) 
(160,		0.0001) 
(240,		0.0002) 
(320,		0.0003) 
(400,		0.0004) 
(480,		0.0005)
(560,		0.0005)
(640,		0.0006)
(720,		0.0006)
(800,		0.0007)
}
;
\addlegendentry{Case 3}
\addplot+[color=brown,smooth] 
coordinates {
(0,0) 
(80,			0.0000) 
(160,		0.0001) 
(240,		0.0001) 
(320,		0.0002) 
(400,		0.0003) 
(480,		0.0003)
(560,		0.0004)
(640,		0.0004)
(720,		0.0005)
(800,		0.0005)
}
;
\addlegendentry{Case 4}
\addplot+[color=black,smooth] 
coordinates {
(0,0) 
(80,			0) 
(160,		0.0001) 
(240,		0.0001) 
(320,		0.0001) 
(400,		0.0002) 
(480,		0.0002)
(560,		0.0003)
(640,		0.0003)
(720,		0.0003)
(800,		0.0004)
}
;
\addlegendentry{Case 5}
\legend{$\nicefrac{\delta}{2}=0$\\$\nicefrac{\delta}{2}=0,5$\\$\nicefrac{\delta}{2}=1$\\$\nicefrac{\delta}{2}=2$\\$\nicefrac{\delta}{2}=4$\\}
\end{axis} 
\end{tikzpicture}
\end{landscape}

\end{document}
und hier nochmal so, wie es aussehen sollte:
http://s7.directupload.net/images/140530/oqq3j55o.png


Vielen Dank.

Nach oben