C語(yǔ)言中之?dāng)?shù)學(xué)函數(shù)

創(chuàng)新互聯(lián)專注于嘉陵企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城系統(tǒng)網(wǎng)站開發(fā)。嘉陵網(wǎng)站建設(shè)公司,為嘉陵等地區(qū)提供建站服務(wù)。全流程定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
C語(yǔ)言提供了以下的數(shù)學(xué)函數(shù),要使用這些函數(shù)時(shí),在程序文件頭必須加入:
#include
math.h
編譯時(shí),必須加上參數(shù)「-lm」(表示連結(jié)至數(shù)學(xué)函式庫(kù)),例如「gcc
-lm
test.c」。
函數(shù)之自變量與傳回之值型別見自變量或函數(shù)前之型別宣告。
函數(shù)已經(jīng)在「math.h」或其它標(biāo)頭檔宣告過了,因此在使用時(shí)不必再加型別宣告,例如「y=sin(x);」,不用寫成「y=double
sin(double
x);」。
函數(shù)說明
double
sin(double
x)
x
的正弦函數(shù)值
double
cos(double
x)
x
的余弦函數(shù)值
double
tan(double
x)
x
的正切函數(shù)值
double
asin(double
x)
x
的反正弦函數(shù)值
sin-1x,x的值在
[-1,1]
之間,傳回的值在
[-p/2,p/2]
之間
double
acos(double
x)
x
的反余弦函數(shù)值cos-1x,x的值在
[-1,1]
之間,傳回的值在
[-p/2,p/2]
之間
double
atan(double
x)
x
的反正切函數(shù)值tan-1x,傳回的值在
[-p/2,p/2]
之間
double
atan2(double
y,
double
x)
y/x
的反正切函數(shù)值tan-1(y/x),傳回的值在
[-p,
p]
之間
double
sinh(double
x)
x
的雙曲正弦函數(shù)值
double
cosh(double
x)
x
的雙曲余弦函數(shù)值
double
tanh(double
x)
x
的雙曲正切函數(shù)值
double
exp(double
x)
x
的指數(shù)函數(shù)
ex
double
log(double
x)
x
的自然對(duì)數(shù)
ln(x),x
double
log10(double
x)
x
底數(shù)為
10
的對(duì)數(shù),log10x,x
double
pow(double
x,
double
y)
x
的
y
次方
xy
double
sqrt(double
x)
x
的根號(hào)值
√x
double
ceil(double
x)
不小于
x
的最小整數(shù)(但其型別為
double)
double
floor(double
x)
不大于
x
的最大整數(shù)(但其型別為
double)
int
abs(int
x)
整數(shù)
x
的絕對(duì)值
|x|
long
labs(long
x)
長(zhǎng)整數(shù)
x
的絕對(duì)值
|x|
double
fabs(double
x)
實(shí)數(shù)
x
的絕對(duì)值
|x|
計(jì)算反正切函數(shù)(使用歐拉變換公式,精度很高),反正切函數(shù)的級(jí)數(shù)展開公式:
f(x) = x - x^3/3 + x^5/5 +...+ (-1)^k * x^(2k+1)/(2k + 1)+...
當(dāng)|x| 1時(shí),級(jí)數(shù)絕對(duì)值發(fā)散,無法直接使用歐拉公式計(jì)算。因此可以通過下面的公式
進(jìn)行等價(jià)轉(zhuǎn)換之后再進(jìn)行計(jì)算。
等價(jià)轉(zhuǎn)換公式:
a) ATan(1/x) = Pi/2 - ATan(x)
b) ATan(-x) = - ATan(x)
特殊情況
0 = ArcTan(0)
Pi/2 = ArcTan(無窮大)
//
// 歐拉公式
//
// sum是和,term是通項(xiàng)值,jterm初始為1,以后按1遞增。wrksp是工作單元,視jterm的
// 最大值而定。
//
void eulsum(int nterm,double *sum,double term,int jterm,double wrksp[])
{
double tmp,dum;
if(jterm == 1)
{
nterm = 1;
wrksp[1] = term;
*sum = 0.5 * term;
}
else
{
tmp = wrksp[1];
wrksp[1] = term;
for(int j=1; j = nterm; j++)
{
dum = wrksp[j+1];
wrksp[j+1] = 0.5 * (wrksp[j] + tmp);
tmp = dum;
}
if(fabs(wrksp[nterm + 1]) = fabs(wrksp[nterm]))
{
*sum = *sum + 0.5 * wrksp[nterm + 1];
nterm = nterm + 1;
}
else
{
*sum = *sum + wrksp[nterm + 1];
}
}
}
級(jí)數(shù)計(jì)算就不用我給代碼了吧。
包含頭文件 math.h
反3角函數(shù)有 acos(double),asin(double),atan(double),atan(double,double),
返回值 double 型,弧度值。轉(zhuǎn)角度要 *180.0/3.1416
例如:
#include stdio.h
#includestdlib.h
#includemath.h
int main()
{
double x=0.5;
printf("acos=%.2lf degrees\n",acos(x) * 180.0/3.1416);
printf("asin=%.2lf degrees\n",asin(x) * 180.0/3.1416);
printf("atan=%.2lf degrees\n",atan(x) * 180.0/3.1416);
printf("atan2=%.2lf degrees\n",atan2(1.0,2.0) * 180.0/3.1416);
return 0;
}
例如要使用cos的反函數(shù)arccos,C語(yǔ)言里有acos()函數(shù),在頭文件math.h里。
1、C語(yǔ)言中,數(shù)學(xué)函數(shù)是函數(shù)的一種。指專門進(jìn)行數(shù)學(xué)運(yùn)算的函數(shù),一般都在math.h頭文件下。如果該標(biāo)準(zhǔn)庫(kù)內(nèi)存在某個(gè)函數(shù)的反函數(shù),直接調(diào)用該反函數(shù)即可計(jì)算。
2、數(shù)學(xué)函數(shù)列表:
1)int abs(int i); 求整數(shù)的絕對(duì)值。
2)long labs(long n); 求長(zhǎng)整型數(shù)的絕對(duì)值。
3)double fabs(double x); 求實(shí)數(shù)的絕對(duì)值。
4)double floor(double x); 求不大于x的最大整數(shù),它相當(dāng)于數(shù)學(xué)函數(shù)[x]。
擴(kuò)展資料:
語(yǔ)言組成:基本構(gòu)成。
數(shù)據(jù)類型:C的數(shù)據(jù)類型包括:整型、字符型、實(shí)型或浮點(diǎn)型(單精度和雙精度)、枚舉類型、數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、指針類型和空類型。
常量與變量:常量其值不可改變,符號(hào)常量名通常用大寫。
變量是以某標(biāo)識(shí)符為名字,其值可以改變的量。標(biāo)識(shí)符是以字母或下劃線開頭的一串由字母、數(shù)字或下劃線構(gòu)成的序列,請(qǐng)注意第一個(gè)字符必須為字母或下劃線,否則為不合法的變量名。變量在編譯時(shí)為其分配相應(yīng)存儲(chǔ)單元。
數(shù)組:如果一個(gè)變量名后面跟著一個(gè)有數(shù)字的中括號(hào),這個(gè)聲明就是數(shù)組聲明。字符串也是一種數(shù)組。它們以ASCII的NULL作為數(shù)組的結(jié)束。要特別注意的是,中括號(hào)內(nèi)的索引值是從0算起的。
參考資料來源:百度百科-c語(yǔ)言
分享名稱:c語(yǔ)言實(shí)現(xiàn)反正旋函數(shù),反正旋函數(shù)的定義域
路徑分享:http://chinadenli.net/article49/dsgophh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計(jì)、App開發(fā)、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)