10/20/2006

4.1數學基本函數

一般函數有三角函數、矩陣函數及統計函數。有些由於解說之需要,在前文中已有述及。但基本上,其歸類有些也甚為模糊的,只是這種分類也沒多大意義。故讀者參考時,可以前後作對照。三角函數是工程上最為常見的函數,下表將其列入。

4.1.1三角函數


由於三角函數牽涉到角度的單位,以往其輸入參數均以弧度為單位,故應用時須先轉換,令pi等於180度,依此比例計算。新版的應用中,則增加以度數為單位輸出與輸入的型式,因此不必再經過轉換的程序。在函數的名稱上,若輸入為度數,則可使用字尾加"d"的型式,如xxxd是,詳情見表4.1。當然是否必須使用不同的度數為指令,則見仁見智。若考慮新舊版的共通性,仍仍以採用轉換之型式為宜。

表4.1三角函數指令表













指令型式說明
sin / sind正弦函數,輸入參數單位為弧度/度數
cos /cosd 餘弦函數,輸入參數單位為弧度/度數
tan /tand 正切函數,輸入參數單位為弧度/度數
cot /cotd 餘切函數,輸入參數單位為弧度/度數
asin / asind 反正弦函數,輸出參數單位為弧度/度數
acos /acosd 反餘弦函數,輸出參數單位為弧度/度數
atan /atand 反正切函數,輸出參數單位為弧度/度數
acot /acotd 反餘切函數,輸出參數單位為弧度/度數
sinh / cosh 超正/餘弦函數
asinh /acosh 反超正/餘弦函數,輸出參數單位為弧度
tanh /coth 超正/餘切函數
atanh /acoth 反超正/餘切函數,輸出參數單位為弧度
atan2 四象限反正切函數,輸出參數單位為弧度


例1. 計算sin(60)之值:

>>sin(60*pi/180)

ans = 0.8660

>>sind(60)

ans = 0.8660



其結果相同。

例2. 計算sin²(60度)+cos²(60度)之值

>>theta=60*pi/180;
>>sin(theta)^2;+cos(theta)^2;
ans = 1

>>sind(60)^2;+cosd(60)^2;
ans = 1


兩者之結果亦相同。

例3. 計算arctan(1)+arccot(1)之值

>>atan(1)+acot(1)
ans = 1.5708

>>atand(1)+acotd(1)
ans = 90


前者之單位為弧度,後者為度數,其實兩者所指的角度是相同的。

表4.1中亦列有超函數之計算,這是在許多工程數學常見到的解,其型式近乎雙曲線函數。其定義如下:

cosh x ={exp(x)+exp(-x)}/2

sinh x ={exp(x)-exp(-x)}/2


若依其定義進行計算,則可利用後節之對數函數配合解決,若直接用超函數表示,則可簡單計算如下:

>>cosh(1)
ans =
1.5431


4.1.2指數與對數函數



有關指數與對數函數之指令則如表4.2所示。這些指令與極座標有關,也與超函數之運算有關。

表4.2 指數與對數與複數函數指令表











指令型式說明
sqrt(x)開方根( )
exp(x)指數函數(ex)
log(x)自然對數( )
log10(x)以10為基底之對數(log10x)
abs(x)(複數之)絕對值
angle(x)複數或極座標之夾角,弧度
real(x)複數之實數部份
imag(x)複數之虛數部份
conj(x)共軛複數
i,j虛數單位,如3+4j,或3+4i


一般數之次方常用"^"表示,如A^5代表A5。開平方根則是常用的指令,故有特別的操作函數sqrt,例如3的開平方:

>>sqrt(3)
ans = 1.7321


同理負數的開方也可以得到結果,只是會產生複數,以-5之開方為例:

>>sqrt(-5)
ans = 0 + 2.2361i


結果進入虛數的世界,因為得到虛根。所以MATLAB在處理數值時,開方根並不限於正值。
指數方面,因為基底之不同,數學上分為以e 與以10為底;對應於指令方面,分別為log(x)與log10(x)之型式。與對數相應,以e 為底者稱為自然對數,用exp(x)表示。例如e¹其值為:


>>exp(1)
ans =
2.7183


顯然e值就是2.7183。由於定義上,y=e^x 兩邊分取對數,則log(y)=x。故上述結果代入log(y)應可得到x,如:

>>log(2.7183)
ans =
1.0000


所以兩者是相互為用的。在以10為基底的情況下,若要更換為自然對數,則其對數值應乘以log(10) 。以x=10^5為例,兩邊取自然對數後,成為log(x)=5*log(10),則:


>>logx=5*log(10)
logx = 11.5129

>>x=exp(logx)
x =
1.0000e+005


其值與原數相同。注意:結果為以10為底之指數型式,由e後面為其次方值。
指數的型式,其輸入項亦可使用複數,以配合極座標之應用。通常將複數中之實數部份作為橫軸,虛數之值則視為縱軸,如此可以構成二度空間。假設某向量R=3+4j,則:


>>R=3+4j
R = 3.0000 + 4.0000i


由此可以利用計算其絕對值abs(R)、夾角angle(R):

>>abs(R)
ans = 5

>>angle(R)*180/pi
ans = 53.1301


後者之角度已轉換為度數。利用同一複數量R亦可求其實數、虛數及共軛複數:

>>real(R) %實數部份 
ans = 3

>>imag(R) %虛數部份
ans = 4

>>conj(R) %共軛複數
ans = 3.0000 - 4.0000i


根據尤拉公式,虛數之自然對數可以與正、餘弦作轉換,其基本型式為:

eix=cos(x)+ i sin(x)

此時,x之值為弧度值。因此利用這種轉換亦可將自然對數之型式轉換為三函數之關係:例如,設theta=[ 20 60 80]度,則

>>theta=[20 60 80]/180*pi %先轉換為弧度
theta = 0.3491 1.0472 1.3963

>>eix=exp(i*theta)
eix = 0.9397 + 0.3420i 0.5000 + 0.8660i 0.1736 + 0.9848i

>>cos(theta)+i*sin(theta)
ans = 0.9397 + 0.3420i 0.5000 + 0.8660i 0.1736 + 0.9848i


由此可以證明三個不同角度下,其演算結果相同。

就超函數之定義而言,其值與指數間具確定的關係,依照前述之cosh(x)與sinh(x)之定義,兩者相加可以得到如下之如果:


ex=cosh(x)+sinh(x)

>>cosh(1:5)+sinh(1:5)
ans = 2.7183 7.3891 20.0855 54.5982 148.4132

>>exp(1:5)
ans = 2.7183 7.3891 20.0855 54.5982 148.4132



兩者對應之結果一致。

4.1.3元素操作函數


有些數值必須在計算中進行整理,使其符合需求。這些函數包括四捨五入(round)、頂部整數(ceil)、底部整數(fix)、近零整數(floor)等。這些功能如下表:

表4.3元素操作函數






指令型式說明
ceil(x)大於x之最近整數
fix(x)位於接近於零之整數
floor(x)小於x之最近整數
round(x)四捨五入之整數
sign(x)符號值,若x>0為+1;x=0為0;x<0為-1>


假設有一向量A為:


>>A=rand(1,10)*10-5 %利用隨機函數產生-5至+5間之亂數
A =
1.1543 2.9194 4.2181 2.3821 -3.2373 -0.9429
   4.3547 4.1690 -0.8973 3.9365

>>round(A) %進行四捨五入。
ans =
1 3 4 2 -3 -1 4 4 -1 4

>>fix(A) %最接近零之整數
ans =
1 2 4 2 -3 0 4 4 0 3

>>floor(A) %得到最接近A值但低於A值之整數
ans =
1 2 4 2 -4 -1 4 4 -1 3

>>ceil(A) %得到大於A且最接近於A之整數
ans =
2 3 5 3 -3 0 5 5 0 4

>>sign(A) %得到該值之符號值,若該值為零,則為零(本例沒有)
ans =
1 1 1 1 -1 -1 1 1 -1 1