如何使用 PGF/TikZ 绘制该分段图?

如何使用 PGF/TikZ 绘制该分段图?

鉴于
在此处输入图片描述

有没有一种简单的方法可以使用 PGF/TikZ 将条件定义为“合理”和“不合理”? 一个最小的例子将不胜感激。

这是迈克尔·斯皮瓦克 (Michael Spivak) 所著《微积分》一书中的有理/无理图之一,第 97 页。 在此处输入图片描述

答案1

没有办法用图形表示这个函数。你的绘图工具有厚度。如果你尝试表示属于狄利克雷函数图的点 (1/2,0),并且是铅笔的厚度,那么你将覆盖无限多个形式为 (t,0) 的点,其中 t 是无理数,属于图:区间 (-ε+1/2,ε+1/2) 中有无数个无理数,对于任何ε>0。如果你想绘制图形上无理 x 坐标的点,方法也是一样的。

除此之外,对于这种绘图,您需要以浮点表示的数字,这些数字都是有理数;但甚至不是区间 [0,1] 内的所有有理数都可以在计算机中表示为浮点数。

因此,您获得的该函数的最佳表示将是两个段,这是无用的。

答案2

代码

\documentclass[tikz,border=2pt]{standalone}
\usepackage{mathtools}
\begin{document}
\begin{tikzpicture}
\draw (-2,0) -- (4,0);
\draw (0,-2) -- (0,4);

\foreach \x in {-2.0, -1.9, ..., 3.01}
    \fill (\x,0) circle (1pt);
\foreach \x in {-1.95, -1.85, ..., 3.01}
    \fill (\x,\x) circle (1pt);

    \node at (4,1) {
    $f(x) = \begin{cases*}
        x, & $x$ rational \\
        0, & $x$ irrational \\
    \end{cases*}
    $};
\end{tikzpicture}
\end{document}

输出

输出

答案3

\begin{rant}  

我真的很震惊,任何微积分教科书都会展示该函数的这种图形。我打算把它添加到我正在写的名为“显然是错的!“顺便说一句,这是第一的从未公开宣布过这本即将出版的书……它从未打算成为一本技术书籍,但这本书必须被收录进去。尽管如此,我还有一个真正令人震惊的数学例子,但我会把它留到即将到来的采访中。

\end{rant}

由于其他人已经给出了他们的图表,这里是我的,以及它背后的理由。/鉴于

  1. 任何两个有理数之间都有无数个无理数,并且
  2. 任何两个无理数之间都有无数个有理数

我认为给定函数的更好的表示是:

在此处输入图片描述

如果您担心看不到不连续性,那只是意味着您没有放大足够。:-) 继续放大,您将看到不连续性。

代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
  axis lines=middle,
  clip=false,
  mark=none,
  ymin=-4.5, ymax=4.5,
  xmin=-4.5, xmax=4.5
]
    \addplot [red,  ultra thick, domain=-4:4, latex-latex] {0};
    \addplot [blue, ultra thick, domain=-4:4, latex-latex] {x};
    \node at (axis cs:5.5,1.3) 
        {$f(x)=
            \begin{cases}
                \textcolor{blue}{x},\quad&\text{\textcolor{blue}{$x$ rational}} \\ 
                \textcolor{red}{0},\quad&\text{\textcolor{red}{$x$ irrational}}
            \end{cases}
        $};
\end{axis}
\end{tikzpicture}

\end{document}

答案4

这是我能为您实现的最高分辨率!

在此处输入图片描述

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}
\usepackage{amsmath}
\begin{document}
\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
    \psaxes[linecolor=lightgray]{->}(0,0)(-3.5,-3.5)(3.5,3.5)[$x$,-90][$y$,180]
    \psplot[linecolor=red]{-3}{3}{0}% for irrational
    \psplot[linecolor=blue]{-3}{3}{x}% for rational
    \rput(1.75,-1.5){\scriptsize
                                                $f(x)=\begin{cases}
                                                        \color{blue}x,&\text{\color{blue}$x$ rational.}\\ 
                                                        \color{red}0,&\text{\color{red}$x$ irrational.}
                                                \end{cases}$}
\end{pspicture}
\end{document}

相关内容