복잡한 방정식의 방향 필드

복잡한 방정식의 방향 필드

나는 다음과 같은 미분방정식을 가지고 있습니다. 미분방정식을 그래프로 표현하고 싶습니다: dy/dx = \frac{2x}{x^4+1}. 그 지점을 통과하는 해법도 그래프로 그려보고 싶습니다 (1,1). 현재 내가 가지고 있는 것은 다음과 같습니다.

\documentclass{report}

\usepackage{tikz}
\usepackage{pgfplots}
\usepgfplotslibrary{external}
\tikzexternalenable

\begin{document}
\begin{tikzpicture}[declare function={f(\x)=2*\x/(\x^4+1);}]
  \begin{axis}[
    xmin=-4,xmax=4,
    ymin=-4,ymax=4,
    domain=-4:4,
    ]

    \def\xmax{4} \def\xmin{-4}
    \def\ymax{4} \def\ymin{-4}
    \def\nx{15}
    \def\ny{15}
    \def\yo{1}

    \pgfmathsetmacro{\hx}{(\xmax-\xmin)/\nx}
    \pgfmathsetmacro{\hy}{(\ymax-\ymin)/\ny}
    \foreach \i in {0,...,\nx}
    \foreach \j in {0,...,\ny}{
      \pgfmathsetmacro{\yprime}{f({\xmin+\i*\hx})}
      \addplot [blue,shift={({\xmin+\i*\hx},{\ymin+\j*\hy})}]
        (0,0)--($(0,0)!2mm!(.1,.1*\yprime)$);
    }

    \addplot [<->,red] {-1/4*pi+rad(atan(x^2))+1};
  \end{axis}
\end{tikzpicture}
\end{document}

하지만 계속해서 다음과 같은 오류가 발생합니다.

! Missing number, treated as zero.
<to be read again> 
                   {
l.30     }
          
?

함수가 \y를 사용하지 않기 때문에 \y를 전달할 필요가 없기 때문에 원래는 \pgfmathsetmacro{\yprime}{f({\xmin+\i*\hx},{\ymin+\j*\hy})}대체를 사용 했습니다. \pgfmathsetmacro{\yprime}{f({\xmin+\i*\hx})}그러나 그렇게 하고 함수 정의를 에서 로 업데이트하더라도 f(\x) = ...프로그램 f(\x,\y) = ...은 여전히 ​​다음과 같은 충돌을 발생시킵니다.

! Undefined control sequence.
\pgfmath@dimen@ ...men@@ #1=0.0pt\relax \pgfmath@ 
                                                  
l.32   \end{axis}
                 
?

나는 다음과 같은 질문을 알고 있습니다. 나는 그것들을 사용했지만 그들 중 누구도 효과가 없었습니다.

  1. 라텍스에서 가능한 모든 솔루션 곡선을 사용하여 기울기 필드를 그리는 방법
  2. 함수와 그 파생물을 그리는 방법
  3. pgfplots를 사용한 미분 방정식 방향 플롯

관련 정보