我也想为这个函数 f(x)=-x²/(x+1)² 描绘一个图形,但是当我使用时,tkz-fct
我遇到了这个问题“尺寸太大”
这是我的代码:
\documentclass[twoside]{report}
\usepackage[a4paper, left=1.5cm, right=1.5cm]{geometry}
\usepackage{etex}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[explicit,calcwidth]{titlesec}
\usepackage{amsthm,amsfonts}
\usepackage{amsmath,amssymb,graphicx,multicol,mathrsfs, enumerate,kpfonts,eurosym,alterqcm,enumitem,tabularx,variations,pifont,multirow}
\usepackage[francais]{babel}
\usepackage[np]{numprint}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage[many,most]{tcolorbox}
\usepackage{tkz-base}
\usepackage{tkz-fct}
\usetikzlibrary{babel}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
\tkzInit[xmin=-4,xmax=4,ymin=-6,ymax=6,xstep=2,ystep=2]
\tkzAxeXY
\tkzFct[color=red,samples=400,domain=-4:3]{(-1*x**2)/(x+1)**2 -2}
\end{tikzpicture}
\end{document}
谢谢您的回答
答案1
我不太熟悉tkz-fct
,但如果可以使用pgfplots
,您可以尝试以下方法。关键点是键restrict y to domain
,它使您能够丢弃特定域之外的所有计算值。
\documentclass[twoside]{report}
\usepackage[a4paper, left=1.5cm, right=1.5cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage{pgfplots}
\usetikzlibrary{babel}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-4,xmax=4,
ymin=-6,ymax=6,
width=6cm,height=6cm,
xtick distance=2,ytick distance=2,
domain=-4:4,
samples=500,
axis lines=middle
]
\addplot [
red,
% discard all y-values outside given domain
restrict y to domain=-6:6
] {(-1*x^2)/(x+1)^2 -2};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
tkz-fct
远不如 pgfplots 复杂。您必须自己处理不连续性。
\documentclass{article}
\usepackage{tkz-fct}
\begin{document}
\begin{tikzpicture}
\tkzInit[xmin=-6,xmax=6,ymin=-10,ymax=10,xstep=2,ystep=2]
\tkzAxeXY
\tkzFct[color=red,samples=400,domain=(-6):(-3)]{(-1*x**2)/(x+1)**2 -2}
\tkzFct[color=red,samples=400,domain=-1.5:4]{(-1*x**2)/(x+1)**2 -2}
\end{tikzpicture}
\end{document}