Saltar al contenido

Dibujar función gamma en LaTeX

Contamos con tu apoyo para extender nuestras reseñas sobre las ciencias de la computación.

Solución:

Hay una manera elegante… con el pst-func paquete:

documentclass[x11names]article

usepackagepst-func
usepackageauto-pst-pdf

begindocument
pssetunit=1.25cm
beginpspicture*(-4.8,-4.8)(4.8,4.8)
psaxes[ticksize=2pt -2pt]->(0,0)(-4.8,-4.8)(4.8,4.8)[$ x $, -120][$ y $, -140]
pssetlinecolor=Tomato3,linewidth=1.2pt,plotpoints=100,algebraic
psplot-4.995-4.005GAMMA(x)
psplot-3.995-3.01GAMMA(x)
psplot-2.99-2.05GAMMA(x)
psplot-1.95-1.05GAMMA(x)
psplot-0.9-0.1GAMMA(x)
psplot.15.8GAMMA(x)
pssetlinewidth = 0.6pt, linecolor = LightSteelBlue3
multidoi=-4+14psline(i, -5.8)(i, 5.8)
endpspicture*
enddocument 

ingrese la descripción de la imagen aquí

La función Gamma también está integrada en Asymptote. Aquí hay una reproducción del gráfico de Bernard con este programa.

import graph;
unitsize(1.5cm);
real Xmin=-5, Xmax=5, Ymin=-5, Ymax=5;
// Graphs
for (real x = Xmin; x < 0; x=x+1) draw(graph(gamma, x+0.001, x+0.999), red);;
draw(graph(gamma, 0.1, Xmax), red);
// Clipping (cut the parts beyond the borders)
clip((Xmin, Ymin) -- (Xmax, Ymin) -- (Xmax, Ymax) -- (Xmin, Ymax) -- cycle);
// Asymptotes (no pun here)
for (real x=Xmin; x<0; x=x+1) draw((x, Ymin)--(x, Ymax), 0.8*white);;
// Axes
xaxis(xmin=Xmin, xmax=Xmax, Ticks(Step=1, OmitTick(0, Xmax)), arrow=Arrow);
yaxis(ymin=Ymin, ymax=Ymax, Ticks(Step=1, OmitTick(0, Ymin, Ymax)), arrow=Arrow);

función gamma

1. Con pgfplots y gnuplot:

ingrese la descripción de la imagen aquí

% arara: pdflatex: shell: yes
documentclass[margin=5mm, tikz]standalone
usepackagepgfplots
pgfplotssetcompat=newest

begindocument
begintikzpicture[]

beginaxis[
xmin = -4.9, xmax = 5.1, 
%ymin = -3.5, ymax = 3.5,  
restrict y to domain=-6:6,
axis lines = middle,
axis line style=-latex,  
xlabel=$x$, 
ylabel=$y$,
%enlarge x limits=upper=val=0.2,
enlarge y limits=0.05,
x label style=at=(ticklabel* cs:1.00), inner sep=5pt, anchor=north,
y label style=at=(ticklabel* cs:1.00), inner sep=2pt, anchor=south east,
]

addplot[color=red, samples=222, smooth, 
domain = 0:5] gnuplotgamma(x);

foreach[evaluate=N=n-1] n in 0,...,-5%
addplot[color=red, samples=555, smooth,  
domain = n:N] gnuplotgamma(x);
%
addplot [domain=-6:6, samples=2, densely dashed, thin] (N, x);
%
endaxis
endtikzpicture
enddocument

2. Solo pgfplots como una aproximación:

ingrese la descripción de la imagen aquí

Podemos ver un buen acuerdo con la curva de gnuplot exacta:

ingrese la descripción de la imagen aquí

documentclass[margin=5mm, tikz]standalone
usepackagepgfplots
pgfplotssetcompat=newest

begindocument
begintikzpicture[]
beginaxis[
xmin =0, xmax = 5.1, 
%ymin = -3.5, ymax = 3.5,  
restrict y to domain=-6:6,
axis lines = middle,
xlabel=$x$, 
ylabel=$y$,
enlarge x limits=0.05,
enlarge y limits=0.1,
x label style=at=(ticklabel* cs:1.00), inner sep=5pt, anchor=north,
y label style=at=(ticklabel* cs:1.00), inner sep=2pt, anchor=south east,
]
addplot[color=blue, samples=222, smooth, 
domain = 0:5] sqrt(2*pi)*x^(x-0.5)*exp(-x)*exp(1/(12*x));
endaxis
endtikzpicture
enddocument

valoraciones y reseñas

Si posees algún titubeo y disposición de refinar nuestro división eres capaz de realizar una nota y con mucho gusto lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *