![样本应该有多大才能得到平滑的无理函数?](https://linux22.com/image/347260/%E6%A0%B7%E6%9C%AC%E5%BA%94%E8%AF%A5%E6%9C%89%E5%A4%9A%E5%A4%A7%E6%89%8D%E8%83%BD%E5%BE%97%E5%88%B0%E5%B9%B3%E6%BB%91%E7%9A%84%E6%97%A0%E7%90%86%E5%87%BD%E6%95%B0%EF%BC%9F.png)
我正在尝试使用 TikZ 和 gnuplot 绘制一个平滑的无理函数,但接近函数零点的地方仍然存在差距。
我可以使固定通过选择来实现这一点samples=5000
,但这会大大减慢编译过程,并且即使这样仍然存在小的差距......它似乎也相当随意。
一定有更好的方法,但如何做呢?
平均能量损失
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[very thin,color=gray] (-4.9,-4.9) grid (4.9,4.9);
\draw[-stealth] (-5.2,0) -- (5.2,0) node[above] {$x$};
\draw[-stealth] (0,-5.2) -- (0,5.2) node[left] {$y$};
\draw (1,0) node [below] {$1$};
\draw (0,1) node [left] {$1$};
\draw (0,0) node [below left] {$0$};
\draw[very thick,color=blue] plot[domain=-5:5] function{1.5*(x+4)**(0.5)};
\end{tikzpicture}
\end{document}
答案1
请注意,您的函数1.5*(x+4)**(0.5)
仅针对 进行定义x>=-4
,因此图形实际上是从第一个大于或等于负四的点开始绘制的。事实证明,对于默认样本长度或 5000,样本中没有等于 -4 的点,这解释了差距。
plot[domain=-4:5] function{1.5*(x+4)**(0.5)}
弥补了差距。添加sample=1000
几乎修复了由 处的无限导数(或垂直切线)引起的绘图平滑度问题x=-4
。