C語言里sin函數(shù)和cos函數(shù)是C標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)庫中的函數(shù),調(diào)用需要引入math.h頭文件。

創(chuàng)新互聯(lián)公司10多年企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站建設(shè)及推廣,對成都資質(zhì)代辦等多個方面擁有多年建站經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
一、sin()?函數(shù)描述:
C 庫函數(shù) double sin(double x) 返回弧度角 x 的正弦。sin() 函數(shù)的聲明:double sin(double x)。
參數(shù):x -- 浮點(diǎn)值,代表了一個以弧度表示的角度。
返回值:該函數(shù)返回 x 的正弦。
二、cos() 函數(shù)描述:
cos() 函數(shù)的功能是求某個角的余弦值。cos()?函數(shù)的聲明:double cos(double x)。
參數(shù):x -- 浮點(diǎn)值,代表了一個以弧度表示的角度。
返回值:該函數(shù)返回 x 的余弦。
擴(kuò)展資料:
相關(guān)的三角函數(shù):
double asin (double); 結(jié)果介于[-PI/2,PI/2]
double acos (double); 結(jié)果介于[0,PI]
double atan (double); 反正切(主值),結(jié)果介于[-PI/2,PI/2]
double atan2 (double,double); 反正切(整圓值),結(jié)果介于[-PI,PI]
參考資料來源:百度百科-math.h
C語言中之?dāng)?shù)學(xué)函數(shù)
C語言提供了以下的數(shù)學(xué)函數(shù),要使用這些函數(shù)時(shí),在程序文件頭必須加入:
#include math.h
編譯時(shí),必須加上參數(shù)「-lm」(表示連結(jié)至數(shù)學(xué)函式庫),例如「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 的自然對數(shù) ln(x),x 0
double log10(double x)
x 底數(shù)為 10 的對數(shù),log10x,x 0
double pow(double x, double y)
x 的 y 次方 xy
double sqrt(double x)
x 的根號值 √x
double ceil(double x)
不小于 x 的最小整數(shù)(但其型別為 double)
double floor(double x)
不大于 x 的最大整數(shù)(但其型別為 double)
int abs(int x)
整數(shù) x 的絕對值 |x|
long labs(long x)
長整數(shù) x 的絕對值 |x|
double fabs(double x)
實(shí)數(shù) x 的絕對值 |x|
double atan(double x)
x 的反正切函數(shù)值tan-1x,傳回的值在 [-pi/2,pi/2] 之間
double atan2(double y, double x)
y/x 的反正切函數(shù)值tan-1(y/x),傳回的值在 [-pi, pi] 之間
arctanX的導(dǎo)數(shù)是1/(1+X2)這里的X=x/2復(fù)合函數(shù)求導(dǎo),需要先求子函數(shù)的導(dǎo)數(shù),即X'=1/2再乘上arctanX的導(dǎo)數(shù)所以所求導(dǎo)數(shù)是1/[2(1+x2/4)]
C語言中之?dāng)?shù)學(xué)函數(shù)
C語言提供了以下的數(shù)學(xué)函數(shù),要使用這些函數(shù)時(shí),在程序文件頭必須加入:
#include
編譯時(shí),必須加上參數(shù)「-lm」(表示連結(jié)至數(shù)學(xué)函式庫),例如「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]
計(jì)算反正切函數(shù)(使用歐拉變換公式,精度很高),反正切函數(shù)的級數(shù)展開公式:
f(x) = x - x^3/3 + x^5/5 +...+ (-1)^k * x^(2k+1)/(2k + 1)+...
當(dāng)|x| 1時(shí),級數(shù)絕對值發(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];
}
}
}
級數(shù)計(jì)算就不用我給代碼了吧。
是的啊,我給你再舉個例子,以下兩行分別打印出tan(45)=1,atan(1)=45。
注意:要用double類型,不然會得到錯誤的結(jié)果。
#include stdio.h
#include math.h
#define pi 3.1415926
void main()
{
printf("%f\n",tan(double(45)/double(180)*pi));
printf("%f\n",atan(1)*double(180)/pi);
}
網(wǎng)頁題目:c語言函數(shù)反正切的編程,c語言正切函數(shù)實(shí)現(xiàn)
標(biāo)題來源:http://chinadenli.net/article39/dseocsh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站營銷、微信公眾號、建站公司、營銷型網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)