3

I'm writting a document in maths and I want to add the graph of the Dirichlet Function. I was googling to find the tikz code of something like that but unfortunately I found nothing...

The graph is what seems in the picture: enter image description here

I don't know how to plot it in tikz... and a link I found https://github.com/MartinThoma/LaTeX-examples/blob/master/tikz/dirichlet-function/dirichlet-function.tex

well while it was compiled... the graph was nowhere to be seen.

So, I would be more than happy if someone could provide me a link where I can copy the cody or draw that for me... I know it's a long shot!

  • It's this one tex.stackexchange.com/questions/75688/… . What is the condition for this plot? And how do you distinguish a real number from a rational on a computer? – percusse Dec 5 '14 at 12:22
  • 2
    BTW, as described in e.g. mathworld.wolfram.com/DirichletFunction.html what you've put in as an image isn't actually the Dirichlet function. – Joseph Wright Dec 5 '14 at 12:25
  • Well that is what Google picture get.. when I type Dirichlet Function... !! Ok.. for the link.. apparentely I misunderstood..something.. so how do I draw tha graph on the pictue above that I posted? – J.K Dec 5 '14 at 12:27
  • That is the same as the "popcorn" function (Thomae's function), see p.56 of the documentation of pst-func. Can easily be changed to draw lines, if needed. – user2478 Dec 5 '14 at 14:49
  • @Herbert Thank you although the result is not as nice the picture's above... But I think that will suit me.. – J.K Dec 5 '14 at 18:38
5

A modification of the popcorn function. \psThomase@i will be part of the next version of pst-func, hopefully.

\documentclass[]{article}
\pagestyle{empty}
\usepackage{pst-func}
\makeatletter
\def\psThomae@i(#1,#2)#3{%
  \addbefore@par{dotsize=1pt}
  \begin@ClosedObj
  \addto@pscode{
    1 1 #3 {
      dup 
      /ipSave ED    % save loop value
      /ip ED        % dito
      1 1 #3 {      
        dup     
        /iqSave ED  % save loop value
        /iq ED      % dito
        { 
          iq 0 le { exit } if
          ip iq mod 
          /ip iq def
          /iq ED 
        } loop
        ip 1 eq { 
          /xVal ipSave iqSave div def
          xVal #1 ge { xVal #2 lt {
            \pst@number\pslinewidth SLW
            \pst@usecolor\pslinecolor xVal 1 iqSave div \tx@ScreenCoor            
            2 copy pop 0 moveto lineto } if } if
        } if
      } for 
    } for
  }%
  \end@ClosedObj%
}
\makeatother
\begin{document}

\psset{unit=4cm}
\begin{pspicture}(-0.1,-0.2)(2.5,1.15)
    \psaxes{->}(0,0)(2.25,1.1)
    \psThomae[linewidth=1pt](0,2){200}
\end{pspicture}

\end{document}

enter image description here

  • May I ask you? the graph is ok... but pstrick does not compile... how can I fix it? – J.K Dec 6 '14 at 15:12
  • Run it with xelatex or use \usepackage{auto-pst-pdf} and run it with pdflatex -shell-escape <file> – user2478 Dec 6 '14 at 15:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.