PStricks를 사용하여 f(x)의 주어진 지점(x,y)에서 임의 함수 y=f(x)의 접선을 그리는 방법은 무엇입니까?

PStricks를 사용하여 f(x)의 주어진 지점(x,y)에서 임의 함수 y=f(x)의 접선을 그리는 방법은 무엇입니까?

저는 PStricks를 사용하는 것이 비교적 새로운 사람이고 곡선의 주어진 지점에서 y=f(x)의 접선을 그리는 방법을 정확히 모릅니다. 나는 점 [(x,y), dx, dy]에서 연관 미분 삼각형을 구성함으로써 수행될 수 있는 간단한 수학을 알고 있습니다. 하지만 내 생각에는 PStrics가 이를 자동으로 수행할 수 있는 "쉬운 방법"이 있어야 한다고 생각합니다. 도와 주실 수 있으신가요?

답변1

Pstricks는 여러 패키지로 구성됩니다. 의 기본은 입니다 pstricks.

간단한 설명과 함께 사용 가능한 모든 패키지의 전체 목록은 다음에서 제공됩니다.tug.org/PStricks

함수를 플롯하려면 패키지를 pst-plot사용하는 것이 좋습니다. 명령을 제공합니다 \psplot.

주어진 함수의 접선을 그리는 것은 \psplotTangent패키지에서 제공하는 명령을 사용하여 쉽게 수행할 수 있습니다 pstricks-add.

다음은 문서의 예입니다.

\documentclass[pstricks]{standalone}
\usepackage{pstricks,pst-plot,pstricks-add}

\begin{document}
\def\F{x RadtoDeg dup dup cos exch 2 mul cos add exch 3 mul cos add}
\def\Fp{x RadtoDeg dup dup sin exch 2 mul sin 2 mul add exch 3 mul sin 3 mul add neg}
\psset{plotpoints=1001}
\begin{pspicture}(-7.5,-2.5)(7.5,4)%X\psgrid
\psaxes{->}(0,0)(-7.5,-2)(7.5,3.5)
\psplot[linewidth=3\pslinewidth]{-7}{7}{\F}
\psset{linecolor=red, arrows=<->, arrowscale=2}
\multido{\n=-7+1}{8}{\psplotTangent{\n}{1}{\F}}
\psset{linecolor=magenta, arrows=<->, arrowscale=2}%
\multido{\n=0+1}{8}{\psplotTangent[linecolor=blue, Derive=\Fp]{\n}{1}{\F}}
\end{pspicture}

\end{document}

여기에 이미지 설명을 입력하세요

답변2

아래 내 답변은 Marco Daniel의 답변에 삽입 버전을 추가하고 사용자 정의하기 쉬운 몇 가지 설정을 템플릿으로 제공합니다.

\documentclass[pstricks,border=0bp,12pt,dvipsnames]{standalone}
\usepackage{pstricks-add}

\usepackage[nomessages]{fp}

\FPset\TrigLabelBase{4}
\FPeval\XMin{0-pi}
\FPeval\XMax{2*pi}
\FPset\YMin{-3}
\FPset\YMax{3}

\FPeval\DeltaX{pi/TrigLabelBase}
\FPeval\DeltaY{1}

\FPeval\Left{XMin-DeltaX/2}
\FPeval\Right{XMax+DeltaX/2}
\FPeval\Bottom{YMin-DeltaY/4}
\FPeval\Top{YMax+DeltaY/4}

\newlength\Width\Width=12cm
\newlength\Height\Height=6cm

\newlength\urx\urx=15pt
\newlength\ury\ury=15pt
\newlength\llx\llx=-5pt
\newlength\lly\lly=-5pt



\psset
{
    algebraic,
    urx=\urx,
    ury=\ury,
    llx=\llx,
    lly=\lly,
    plotpoints=1000,
    trigLabels,
    trigLabelBase=\TrigLabelBase,
    xAxisLabel=$x$,
    yAxisLabel=$y$,
    tickcolor=gray,
    ticksize=0 -4pt,
    labelFontSize=\scriptstyle,
}



% the same as \sum_{i=1}^{3} \frac{\cos(i x)}{i},
% the third arg represent increment step,
\def\f{Sum(i,1,1,3,cos(i*x)/i)}% is the same as \def\f{cos(x)+cos(2*x)/2+cos(3*x)/3}


% the first derivative of \f
\def\fp{Derive(1,\f)}



\begin{document}

\begin{psgraph}[dx=\DeltaX,dy=\DeltaY,linecolor=gray]{->}(0,0)(\Left,\Bottom)(\Right,\Top){\dimexpr\Width-\urx+\llx}{!}%{\dimexpr\Height-\ury+\lly}
    \psplot[linecolor=NavyBlue]{\XMin}{\XMax}{\f}
    \pstVerb{/xxx {Pi 4 div} def}%
    \psset{arrows=<->}
    \psplotTangent[linecolor=ForestGreen]{xxx}{3}{\f}% tangent line
    \psplotTangent[linecolor=Maroon,Derive={-1/\fp}]{xxx}{3}{\f}% normal line
\end{psgraph}

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보