我想要绘制以下函数:
f=\sum_{n=1}^\infty f_n
where
f_n(x)=\begin{cases}
n^2(x-n+1/n^2) & \quad \text{if } n-1/n^2\leq x\leq n,\\
n^2(-x+n+1/n^2) & \quad \text{if } n\leq x\leq n+1/n^2,\\
0 & \quad \text{else}.
\end{cases}
每个 f_n 都是一个三角形,因此整个图形将是这样的:(我错误地绘制了前两个三角形而没有截距)
我利用 Tikz 按照以下方式创建前两个三角形:
\begin{tikzpicture}
\begin{axis}[
axis lines = left,
xlabel = $x$,
ylabel = {$f(x)$},
]
\addplot [
domain=0:1,
samples=100,
color=blue,
]
{x};
\addplot [
domain=1:1.75,
samples=100,
color=blue,
]
{-x+2};
\addplot [
domain=1.75:2,
samples=100,
color=blue,
]
{3*x-5};
\addplot [
domain=2:2.25,
samples=100,
color=blue,
]
{-4*x+9};
\end{axis}
\end{tikzpicture}
我只是想不明白如何画第三个三角形。
答案1
像这样?
我没有从你的方程式重建三角形,而是使用了你的 mwe 和草图。因为你喜欢画简单的三角形,我建议使用它们的重要点的坐标(如果它们是错误的,请采用它们来纠正值):
\documentclass[margin=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines = left,
xlabel = $x$,
ylabel = {$f(x)$},
xmax = 4.5,
ymax = 1.5,
xtick = {0,1,2,4},
xticklabels = {0,1,2,$n$},
ytick = {1},
no marks,
samples = 10,
]
\addplot +[blue] coordinates {(0,0) (1,1) (1.75,0)};
\addplot +[blue] coordinates {(1.75,0) (2,1) (2.25,0)};
\addplot +[blue] coordinates {(3.95,0) (4,1) (4.05,0)};
\draw[dashed,very thin] (0,1) -- (4,1);
\draw[loosely dotted,very thick] (2.5,0.5) -- (3.5,0.5);
\end{axis}
\end{tikzpicture}
\end{document}