數學圖形之常用函數


      如果你也像我一樣畢業多年,你是否還記得當年所學的數學中那些函數:冪,對數,指數,正弦,余弦,正切,余切,反正弦,反余弦,反正切,反余切,雙曲正弦,雙曲余弦,雙曲正切,雙曲余切,正割函數,余割函數,雙曲正割,雙曲正割.聽這些名字讓人覺得即熟悉又陌生吧.這里將展示出這些函數所生成的平面圖形.你可能記得這些函數生成的是曲線,不過我這里給數據多加了一個維度,然后是以面的形式顯示這些函數.怎么說這些函數的曲線樣子總能通過百度或是維基上搜索到,而我這的圖形可都是原創的.

      相關軟件參見:數學圖形可視化工具

 

(1)冪函數

X的N次冪.

vertices = D1:100 D2:100

u = from (-2) to (2) D1
v = from 0 to 4 D2

x = u
y = v*pow_sign(u, v)

腳本代碼中X,N都為變量,兩個變量會生成一個二維數據,得到一個平面圖形.pow_sign是一個保留正負號的pow函數,其C++實現為:

static float     yf_pow_sign(float a, float b)
{
    float s = yf_sign(a);
    a = ::fabsf(a);
    if (a < FLT_EPSILON)
    {
        return 0.0f;
    }
    return ::powf(a, b)*s;
}

上圖為腳本所生成的圖形,右下角有兩個滑動塊控件,在軟件中按下鍵盤'P'會出現,用於設置當前選擇的數值.圖形上的紅色曲線表示當前數值下的函數曲線.

 

(2)指數函數

它與冪函數很相似,表示N的X次冪

vertices = D1:100 D2:100

u = from (-10) to (10) D1
v = from 0.1 to 10 D2

x = u
y = pow_sign(v, u)

y = limit(y, -50, 50)

腳本中y = limit(y, -50, 50)表示將Y值限定在-50到50之間,以防止圖形過大.

 

(3)對數函數

對數函數與指數函數相對應

vertices = D1:100 D2:100

u = from 0.1 to 10 D1
v = from 1 to 10 D2

x = u
y = log_ax(v, u)

y = limit(y, -50, 50)

圖中有一條紅色曲線,一條綠線,按下鍵盤'8'會顯示在右上角的面板.其中會顯示兩線交點的數值信息

 

(4)log函數

vertices = D1:360 D2:100
u = from (0.001) to (10) D1
v = from 0 to 1 D2

x = u
y = log(x)*v

v = v*2

 

(5)pow 函數

vertices = D1:360 D2:100
u = from 0 to 1 D1
v = from 0.1 to 10 D2
s = 10
x = s*u
y = s*pow(u, v)

 

(6)EXP

vertices = D1:360 D2:100
u = from (-4) to (4) D1
v = from 0 to 1 D2

x = u
y = exp(x)*v

v = v*2

 

(7)正弦

vertices = D1:360 D2:100
u = from (-2*PI) to (2*PI) D1
v = from 0 to 1 D2

x = u
y = v*sin(u)

u = u*5
v = v*2

 


(8)余弦

vertices = D1:360 D2:100
u = from (-2*PI) to (2*PI) D1
v = from 0 to 1 D2

x = u
y = v*cos(u)

u = u*5
v = v*2

 


(9)正切

vertices = D1:360 D2:100
u = from (-2*PI) to (2*PI) D1
v = from 0 to 1 D2

x = u
y = tan(x)*v

y = limit(y, -100, 100)

u = u*5
v = v*5

 


(10)余切

vertices = D1:360 D2:100
u = from (-4*PI) to (4*PI) D1
v = from 0 to 1 D2

x = u
y = cot(x)*v

y = limit(y, -100, 100)

u = u*5
v = v*5

 


(11)反正弦

vertices = D1:360 D2:100
u = from (-1) to (1) D1
v = from 0 to 1 D2

x = u
y = asin(x)*v

v = v*2

 


(12)反余弦

vertices = D1:360 D2:100
u = from (-1) to (1) D1
v = from 0 to 1 D2

x = u
y = acos(x)*v

v = v*2

 


(13)反正切

vertices = D1:360 D2:100
u = from (-10) to (10) D1
v = from 0 to 1 D2

x = u
y = atan(x)*v

v = v*2

 

 

vertices = D1:360 D2:100
u = from (-10) to (10) D1 v = from -10 to 10 D2 x = u y = atan2(u, v)

 


(14)反余切

vertices = D1:360 D2:100
u = from (-10) to (10) D1
v = from 0 to 1 D2

x = u
y = acot(x)*v

v = v*2

 


(15)雙曲正弦

vertices = D1:360 D2:100
u = from (-0.9*PI) to (0.9*PI) D1
v = from 0 to 1 D2

x = u
y = sinh(x)*v

u = u*5
v = v*5

 


(16)雙曲余弦

vertices = D1:360 D2:100
u = from (-0.9*PI) to (0.9*PI) D1
v = from -1 to 1 D2

x = u
y = cosh(x)*v

u = u*5
v = v*5

 


(17)雙曲正切

vertices = D1:360 D2:100
u = from (-0.9*PI) to (0.9*PI) D1
v = from -1 to 1 D2

x = u
y = tanh(x)*v

u = u*5
v = v*5

 


(18)雙曲余切

vertices = D1:360 D2:100
u = from (-2*PI) to (2*PI) D1
v = from 0 to 1 D2

x = u
y = cth(x)*v

y = limit(y, -100, 100)

u = u*5
v = v*5

 


(19)正割函數

vertices = D1:360 D2:100
u = from (-2*PI) to (2*PI) D1
v = from 0 to 1 D2

x = u
y = sec(x)*v

y = limit(y, -100, 100)

u = u*5
v = v*5

 


(20)余割函數

vertices = D1:360 D2:100
u = from (-2*PI) to (2*PI) D1
v = from 0 to 1 D2

x = u
y = csc(x)*v

y = limit(y, -100, 100)

u = u*5
v = v*5

 


(21)雙曲正割

vertices = D1:360 D2:100
u = from (-PI) to (PI) D1
v = from -1 to 1 D2

x = u
y = sch(x)*v

y = limit(y, -100, 100)

u = u*5
v = v*5

 


(22)雙曲余割

vertices = D1:360 D2:100
u = from (-PI) to (PI) D1
v = from -1 to 1 D2

x = u
y = xh(x)*v

y = limit(y, -100, 100)

u = u*5
v = v*5

 

 

(23)反正割

vertices = D1:360 D2:100
u = from (-10) to (10) D1
v = from 0 to 1 D2

x = u
y = asec(x)*v + PI/2*(1 - v)

y = limit(y, -100, 100)

u = u*5
v = v*5


(24)反余割

vertices = D1:360 D2:100
u = from (-10) to (10) D1
v = from 0 to 1 D2

x = u
y = acsc(x)*v

y = limit(y, -100, 100)

u = u*5
v = v*5

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM