Pgfplots:無法繪製一些常用的數學函數

Pgfplots:無法繪製一些常用的數學函數

我開始學習 pgfplots,我想繪製一些函數:立方根、反函數和一些三角函數。

問題是,對於 y=1/x 函數,它將域的負部分和正部分之間的點連接起來:我們看不到漸近線。

\documentclass{minimal}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[]
\addplot [domain=-10:10, samples=100]{x^(-1)};
\end{axis}
\end{tikzpicture}
\end{document}

使用函數 y=x^{1/3},它不會顯示域的負數部分。對於三角函數,它只是沒有做任何正確的事情...

\addplot[domain=-27:27]{x^(1/3)};
\addplot[domain=-2*pi:2*pi]{cos(rad(x))};

如果你能幫我一點忙的話,非常感謝。


非常感謝您的回答,這真的很有幫助。最後一件事:立方根函數在其定義域中有一個負數部分無法顯示。你知道為什麼嗎?

\begin{tikzpicture} 
\begin{axis}[
    width=8cm,xlabel={$x$},
    ylabel={$y$},grid=both, axis x line=middle, axis y line=middle, 
    title={$f(x)=x^{1/3}$}] 
\addplot[blue,domain=-27:27, no markers,samples=100] {x^(1/3)}; 
\end{axis} 
\end{tikzpicture}

注意:是的,三次根函數有一個部分負域,不,沒有虛部。注意:很抱歉,我堅持在這條評論中提出我的第一個問題,這應該是一個“答案”,我只是新來的,因為我還沒有註冊,所以我不知道我如何在新的“問題評論」中提出與該主題相關的問題

答案1

為了將圖的負數和正數部分1/x分開,您需要確保在 處計算函數x=0。如果您的領域是對稱的,則只需指定奇數個樣本(samples=101例如 )。您還必須確保非實數值不僅會被默默丟棄,還會導致情節跳躍。為此,請指定unbounded coords=jump(而不是預設行為discard)。

PGF 中的三角函數需要度數,因此您必須使用將弧度轉換為度數deg(x)(不是rad(x),它用於將度數轉換為弧度)。

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[enlargelimits=false]
\addplot [domain=-10:10, samples=101,unbounded coords=jump]{x^(-1)};
\end{axis}
\end{tikzpicture}

\begin{tikzpicture}
\begin{axis}[enlargelimits=false]
\addplot[domain=-2*pi:2*pi, samples=100]{cos(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}

答案2

其他答案提供了很好的繪圖方法1/x,但沒有人介紹如何繪圖x^(1/3)

這個問題出現在許多不同的繪圖程式/計算器中。立方根通常使用對數計算,這就是為什麼它們有時似乎沒有為負數定義。當然,我們知道我們可以計算任何實數的立方根,所以我們必須欺騙程式/計算器。

一種方法是繪製

x/|x| * (|x|)^(1/3)

它繪製了立方根函數,並偷偷地適當地切換了符號。當然,這個函數沒有在 處定義0,所以它實際上並不是平等的立方根函數,但它對我們有用:)

在此輸入影像描述

\documentclass{standalone}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
    \begin{axis}
       \addplot[blue,domain=-10:10, samples=200]{x/abs(x)*abs(x)^(1/3)};
    \end{axis}
\end{tikzpicture}

\end{document}

答案3

我認為你的期望太大了,因為 pgfplots 不是電腦代數系統(CAS)。所以你需要透過調整數據來幫助它。此外,samples選項也會產生很大的差異,因為圖實際上連接了點,並且要查看一個值是否無界,它必須在該點進行評估,否則結果將是有限的,它將連接這些點。

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[restrict y to domain=-9.9:9.9]
\addplot [domain=-10:10, samples=200]{x^(-1)};
\addplot[blue,domain=-10:10, samples=200]{x^(1/3)};
\addplot[red,domain=-2*pi:2*pi, samples=200]{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}

在此輸入影像描述

相關內容