如何绘制函数
$f:x\mapsto
\int_0^{x}\frac{1}{\sqrt{1+t^2*ln^2(t)}}\, \textrm{d}t$
使用 TikZ?谢谢
答案1
正如上面建议的链接所示,Asymptote 是本例中合适的绘图工具。我只是模仿了 @g.kov 的代码。
// http://asymptote.ualberta.ca/
import graph;
size(300,200,IgnoreAspect);
real f(real t){return (t==0)?1:1/sqrt(1+t^2*(log(t))^2);}
real F(real x){return simpson(f,0,x);}
//real a=20;
real a=1000;
draw(graph(F,0,a,n=200),red+1.5pt);
string noZero(real x) {return (x==0)?"":string(x);}
xaxis(LeftTicks(noZero,Step=a/5));
yaxis(RightTicks(noZero,Step=1));
string s="$F(x)=\displaystyle\int_0^{x}\frac{\textrm{d}t}{\sqrt{1+t^2\ln^2(t)}}$";
label(s,point(E),SW);
shipout(bbox(5mm,invisible));
你可以放LaTeX 文档中的 asy 代码。
解释和评论被积函数没有在零点处定义,因此,为了告诉 Asymptote 知道如何计算积分,可以这样写(另见此链接)
\documentclass{article}
\usepackage{amsmath,amssymb}
\begin{document}
Note that $\lim\limits_{t\to 0} t\ln(t)=0$. One may write
\[f(t)=
\begin{cases}
\dfrac{1}{\sqrt{1+t^2\ln^2(t)}},\quad &t\not=0\\
\qquad 1,\quad &t=0.
\end{cases}
\]
\[F(x)=
\displaystyle\int_0^{x} f(t)\;\textrm{d}t, \quad x\geq 0.\]
We see that $F(0)=0$, $F'(x)=f(x)\geq 0$, and $\lim\limits_{t\to +\infty} f(t)=1$.
Therefore $F$ is increasing to infinity \[\lim\limits_{x\to +\infty} F(x)=+\infty.\]
\end{document}
答案2
使用 PGFplots 绘图,使用包pst-ode
(RKF45 方法)进行定积分计算。由于被积函数未定义在吨=0,我们从开始积分吨=1e-9。
lualatex
用或latex
+ dvips
+排版ps2pdf -DNOSAFER
至少两次:
\documentclass[tikz,border=5pt]{standalone}
\usepackage{pgfplots} \pgfplotsset{compat=newest}
\usepackage{pst-ode}
\pstODEsolve[algebraicAll,saveData]{integral}{t | y[0]}{10^-9}{20}{201}{0}{1/sqrt(1+(t*ln(t))^2)}
\begin{document}
\IfFileExists{integral.dat}{}{dummy text\end{document}}
\begin{tikzpicture}
\begin{axis}[
xlabel=$x$,
ylabel=$F(x)$,
xmin=0,xmax=20,ymin=0
]
\addplot[red,thick] table {integral.dat};
\end{axis}
\end{tikzpicture}
\end{document}