我想绘制以下序列但我不知道该怎么做。
f_n(t)=
\begin{cases}
-1,~ -1\leq t\leq -\frac1n,\\
\frac{t}{n},~~~\frac1n\leq t\leq \frac1n,\\
1,~~~~~\frac1n\leq t\leq 1.
\end{cases}
我从这个开始,但我不知道如何放在$-\frac1n, \frac1n$
图表上
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
%\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}[
declare function={
func(\x)= -1 +
and(\x>-1-\frac1n, \x<=1/n) * (-1) +
and(\x>-1/n, \x<=1/n) * (\x/n) +
(\x>1/n, \x<=1) * (1);
}
]
\begin{axis}[
axis x line=middle, axis y line=middle,
%ymin=-, ymax=2, ytick={-2,...,2}, ylabel=$f_n(x)$,
%xmin=-1, xmax=1, xtick={-1,...,1}, xlabel=$x$,
]
%\pgfplotsinvokeforeach{-2, 1, 2}{
\addplot[blue, domain=-1:1, smooth]{func(x)};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
正如聊天中提到的,\frac
是一个用于排版数学的宏。pgfmath
不明白,但只是用1/n
而不是\frac{1}{n}
。
另外,您不需要在 中添加明确的空格cases
,只需添加列分隔符&
。
n=2
无论如何,这是您指定的方程的图。
\documentclass{article}
\usepackage{pgfplots,amsmath}
%\pgfplotsset{compat=1.8}
\begin{document}
\begin{equation}
f_n(t)=
\begin{cases}
-1, & -1 < t < -\frac{1}{n},\\
\frac{t}{n}, &-\frac{1}{n}\leq t\leq \frac{1}{n},\\
1, & \frac{1}{n} < t < 1.
\end{cases}
\end{equation}
\begin{tikzpicture}[
declare function={
func(\x,\n)=
and(\x >=-1, \x <= -1/\n) * (-1) +
and(\x > -1/\n, \x< 1/\n) * (\x/\n) +
and(\x >= 1/\n, \x<=1) * (1)
;
}
]
\begin{axis}[
axis x line=middle, axis y line=middle,
ymin=-2, ymax=2, ytick={-2,...,2}, ylabel=$f_n(x)$,
xmin=-1, xmax=1, xtick={-1,...,1}, xlabel=$x$,
legend entries={$n=2$},
legend pos=north west,legend style={draw=none}
]
%\pgfplotsinvokeforeach{1, 2, 3, 4}{
%\addplot+[mark=none,thick,domain=-1:1,samples=100]{func(x,#1)};
%}
\addplot+[mark=none,thick,domain=-1:1,samples=100]{func(x,2)};
\end{axis}
\end{tikzpicture}
\end{document}
但也许你想要的是这个:
\documentclass{article}
\usepackage{pgfplots,amsmath}
%\pgfplotsset{compat=1.8}
\begin{document}
\begin{equation}
f_n(t)=
\begin{cases}
-1, & t < -n,\\
\frac{t}{n}, &-n\leq t\leq n,\\
1, & n < t .
\end{cases}
\end{equation}
\begin{tikzpicture}[
declare function={
func(\x,\n)=
(\x <= -\n) * (-1) +
and(\x > -\n, \x< \n) * (\x/\n) +
(\x >= \n) * (1)
;
}
]
\begin{axis}[
axis x line=middle, axis y line=middle,
ymin=-2, ymax=2, ytick={-2,...,2}, ylabel=$f_n(x)$,
%xmin=-1, xmax=1, xtick={-1,...,1},
xlabel=$x$,
legend entries={$n=1$,$n=2$,$n=3$,$n=4$},
legend pos=north west,legend style={draw=none}
]
\pgfplotsinvokeforeach{1, 2, 3, 4}{
\addplot+[mark=none,thick,samples=100]{func(x,#1)};
}
\end{axis}
\end{tikzpicture}
\end{document}
或者
\documentclass{article}
\usepackage{pgfplots,amsmath}
%\pgfplotsset{compat=1.8}
\begin{document}
\noindent\begin{minipage}{0.45\linewidth}
\begin{equation}
f_n(t)=
\begin{cases}
-1, & t < -\frac{1}{n},\\
tn, &-\frac{1}{n}\leq t\leq \frac{1}{n},\\
1, & \frac{1}{n} < t .
\end{cases}
\end{equation}
\end{minipage}\hfill
\begin{minipage}{0.5\linewidth}
\centering
\begin{tikzpicture}[
declare function={
func(\x,\n)=
(\x <= -1/\n) * (-1) +
and(\x > -1/\n, \x< 1/\n) * (\x*\n) +
(\x >= 1/\n) * (1)
;
}
]
\begin{axis}[
axis x line=middle, axis y line=middle,
ymin=-2, ymax=2, ytick={-2,...,2}, ylabel=$f_n(t)$,
%xmin=-1, xmax=1, xtick={-1,...,1},
domain=-1.2:1.2,samples=200,
xlabel=$t$,
legend entries={$n=1$,$n=2$,$n=3$,$n=4$},
legend pos=north west,legend style={draw=none},
width=\linewidth,scale only axis
]
\pgfplotsinvokeforeach{1, 2, 3, 4}{
\addplot+[mark=none,thick]{func(x,#1)};
}
\end{axis}
\end{tikzpicture}
\end{minipage}
\end{document}