2013-10-09 29 views
5

當使用sqrt(x)時,Gnuplot只使用正平方根值。有沒有辦法在同一個函數中繪製正值和負值。如何在一個函數中繪製±sqrt(x)?

我知道一個黑客,它將使用f(x) = sqrt(x)和​​並將它們繪製在一起,然後調整這兩個函數以使用相同的線條顏色,但有沒有更好的方法?

回答

6

您可以繪製一個參數化曲線:

set parametric 
set trange [-10:10] 
set samples 1000 
plot abs(t), (t > 0 ? 1: -1) * sqrt(abs(t)) 

來實現這一目標:

enter image description here

0

在數學上,函數是一個數學對象,對於函數域內的每個x,只有一個相應的f(x)值。 Gnuplot處理數學「功能」。所以這不是一個「黑客」,也不是gnuplot的「問題」。

+2

我從來沒有說過這是一個「問題」...... – user80551

+0

Gnuplot一般處理情節,不僅功能。在任何情況下,你的推理都有點遲鈍,因爲對於這種特殊情況,x是y的函數。它被表示爲相對於它們的標準表示旋轉的軸不會使它少於一個功能。 – Miguel

+0

這不是一個意見問題,或者是一個定義。所以是的,如果一個「x」有2個「y」,這不是一個函數。參數圖是一個函數,因爲給定t只有一個f(t)。 https://en.wikipedia.org/wiki/Function_%28mathematics%29 – Sebastien

3

如果使用參數表示(由克里斯托夫的答案),你也可以用逆功能sqrt(t),這將是t**2,例如

set parametric 
set trange [-10:10] 
set samples 1000 
plot t**2,t 
相關問題