如果只是需要值,那么調(diào)用math中的sin和cos函數(shù)即可.
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、花垣網(wǎng)站維護、網(wǎng)站推廣。
參數(shù)為弧度, 如果要使用的參數(shù)是角度,需要自行轉(zhuǎn)換一下.
如果想自己寫,可以參考泰勒展開, 計算近似值.一般計算到最后一項小于1e-6即可.
double cos1(double e)
{
double cos_x=0;
double temp=1;
for (int i=0;i5;)
{
cos_x += pow(-1,i)*pow(x,2*i)/temp;
i++;
temp *= 2*i*(2*i-1);
}
return cos_x;
}
通過輸入一個角度的自定義變量a(輸入范圍在-180到180度)
先判斷范圍,若大于90或者小于-90,則a=180-a,設(shè)立標志位置1;否則不管
然后b=a乘pi除180度,換算成弧度制。
定義變量c=余弦的泰勒級數(shù)展開,原公式里面的x就是b,百度有公式(余弦的泰勒級數(shù)展開),一般取到前5項就好。
輸出通過計算后的函數(shù)值即可。
1.
C語言中要編寫sin函數(shù),實質(zhì)上要利用sin的泰勒公式,然后根據(jù)泰勒公式,將其中的每一項進行分解,最后用循環(huán),累加計算出最終結(jié)果
2.
下面用for循環(huán)實現(xiàn)sin的算法,程序代碼如下:
#includestdio.h
#includemath.h
void
main()
{
int
i;
float
x,sum,a,b;
//sum代表和,a為分子,b為分母
char
s;
printf("please
input
x");
scanf("%f",x);
s=1;
sum=0;
a=x;
//分母賦初值
b=1;
//分子賦初值
for(i=1;a/b=1e-6;i++)
{
sum=sum+s*a/b;
//累加一項
a=a*x*x;
//求下一項分子
b=b*2*i*(2*i+1);
//求下一項分母
s*=-1;
}
printf("sum=%f\n",sum);
}
3.
關(guān)于上述程序的幾點說明:上述程序的計算結(jié)果精確到小數(shù)點后六位;上述程序運用了sin的泰勒展開式
sin
x=x-x^3/3!+x^5/5!
......
,程序中將sin泰勒公式中的每一項拆成了分子,分母以及每一項前的符號這三項,以便于每一項的累加
whie((a/b)=c),這里有錯誤,根據(jù)循環(huán)體來看,a是帶符號的,所以a/b在循環(huán)一次后就變負值鳥,應該改成while(fabs(a/b)=c)才正確!
試試吧,應該是這樣,希望對你有幫助!
文章題目:c語言泰勒公式求余弦函數(shù) 余弦函數(shù)的泰勒展開公式
URL標題:http://aaarwkj.com/article22/hhjpcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、做網(wǎng)站、網(wǎng)站排名、ChatGPT、網(wǎng)站營銷、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)