Zeichnen Sie die Funktion X->R mit eingeschränktem Definitionsbereich, wobei X={(x,y) | 2*x^2+y^2 < 1}

Zeichnen Sie die Funktion X->R mit eingeschränktem Definitionsbereich, wobei X={(x,y) | 2*x^2+y^2 < 1}

Um meine Frage zu verdeutlichen, sei f die Funktion f(x,y)=x^2+y^2. Jetzt möchte ich nur die Funktion f: X -> R darstellen, wobei X={(x,y) | 2*x^2+y^2<1}, aber ich möchte die Domäne so einschränken, dass nur der innere Teil der Funktion gezeichnet wird. Hier ist mein Code:

\begin{tikzpicture}[]
\begin{axis}[axis lines=center,
axis on top,
xtick=\empty,
ytick=\empty,
ztick=\empty,
xrange=-2:2,
yrange=-2:2
]
% function
\addplot3[domain=-2:2,y domain=-2:2,colormap/viridis,surf,opacity=0.5]
%shader=interp für optional Linien weg
{x^2+y^2};
% Line on the function
\addplot3[color=black,
samples=40,
domain=0:2*pi,
line width=1.0pt]
({2*cos(deg(x))}, 
{sin(deg(x))}, 
{(2*cos(deg(x)))^2+sin(deg(x))^2});
% Line on bottom
\addplot3[dashed,
samples=40,
domain=0:2*pi]
({2*cos(deg(x))}, 
{sin(deg(x))}, 
{0});
\end{axis}
\end{tikzpicture}

Das resultierende Bild ist:

Bildbeschreibung hier eingeben

Wie kann ich es nun so machen, dass nur der „innere“ Teil innerhalb der schwarzen Linie gezeichnet wird? (Entschuldigen Sie mein schlechtes Englisch, ich bin Deutscher.)

Antwort1

Willkommen! Ich würde einfach Polarkoordinaten verwenden.

\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}[]
\begin{axis}[axis lines=center,
axis on top,
xtick=\empty,
ytick=\empty,
ztick=\empty,
xrange=-2:2,
yrange=-2:2
]
\begin{scope}
\addplot3[domain=0:1,y domain=0:2*pi,colormap/viridis,surf,opacity=0.5,
samples=5,samples y=40,
] %-0.2 just to avoid gaps
%shader=interp für optional Linien weg
({2*x*cos(deg(y))},{x*sin(deg(y))},{(2*x*cos(deg(y)))^2+(x*sin(deg(y)))^2});
\end{scope}
% Line on the function
\addplot3[color=black,
samples=40,
domain=0:2*pi,
line width=1.0pt]
({2*cos(deg(x))}, 
{sin(deg(x))}, 
{(2*cos(deg(x)))^2+(sin(deg(x)))^2});
% Line on bottom
\addplot3[dashed,
samples=40,
domain=0:2*pi,smooth]
({2*cos(deg(x))}, 
{sin(deg(x))}, 
{0});
\end{axis}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

DudürfenVerwenden Sie nur kartesische Koordinaten /pgfplots/restrict expr to domain(wie restrict expr to domain={x^2/4+y^2}{0:1}in Ihrem Fall). Übrigens umschließt Ihre Kontur nicht {(x,y) | 2*x^2+y^2<1}. Sie umschließt {(x,y) | x^2/4+y^2<1}. Meiner Erfahrung nach führt dies bei diesen Arten von Diagrammen jedoch nicht zu sehr guten Ergebnissen, da die Grenzen „verpixelt“ werden.

verwandte Informationen