Cómo dibujar este gráfico de función con la operación de trazado (TIKZ, Bucle)

Aug 20 2020

Deseo dibujar un gráfico de función, la fórmula analítica de la función es:

Puedo usar el siguiente código para dibujar una imagen de una función específica

Pero quiero ser conciso, cómo definir una letra n,

Dibuja la imagen de la función correspondiente con el cambio de n

Creo que debería realizarse por bucle, pero no sé cómo hacerlo.

¿Lo que hay que hacer?

\documentclass{book}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}     
    \draw[->,>=stealth] (-4,0)  --  (4,0)   node[below] {$ x  $};   
    \draw[->,>=stealth] (0,-0.5)    --  (0,4)   node[right] {$ y  $};
    \fill (0,0)  circle  (  0  )   node[  below   left  ] {  $  O  $  } ;

    \draw[  domain=  -3  :  3  ,samples=  300  ] plot (  \x,  {  
        abs(\x) 
    });

    \draw[  domain=  -3  :  3  ,samples=  300  ] plot (  \x,  {  
        abs(\x) + abs((\x) +  1)  
    });

    \draw[  domain=  -3  :  3  ,samples=  300  ] plot (  \x,  {     
    abs(\x) + abs((\x) +  1)  + abs((\x) +  2)  
    });
    
\end{tikzpicture}

\end{document}

Respuestas

5 ZhiyuanLck Aug 21 2020 at 10:34

Usar mathbiblioteca.

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{math}

\begin{document}
\begin{tikzpicture}
\pgfset{fpu=true, fpu/output format=fixed}
\tikzmath{
  function f(\x, \n) {
    real \s;
    \s = 0;
    for \i in {0,...,\n}{
      \s = \s + abs(\x + \i);
    };
    return \s;
  };
}
\pgfset{fpu=false}
\draw[->,>=stealth] (-4,0) -- (4,0) node[below] {$x$};
\draw[->,>=stealth] (0,-0.5) -- (0,15) node[right] {$y$};
\fill (0,0) circle (2pt) node[below left] {$o$};
\foreach \i in {1,...,4} {
  \draw [domain=-3:1, samples=300] plot (\x, {f(\x, \i)});
}
\end{tikzpicture}
\end{document}