您好,是這樣的:泰勒展開是這個:sinx=x-x^3/3!+x^5/5!-..
創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)與策劃設(shè)計,藍(lán)田網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:藍(lán)田等地區(qū)。藍(lán)田做網(wǎng)站價格咨詢:18980820575
下面給出算20項的程序。
#include"math.h"
#include"stdio.h"
void main()
{
double x=0,y=0,z=1,s=1,mynum=0;
int i=1 ,j=0, k=1;
scanf("x=%f",x);
for(i=1;i20;i++)
z=1;k=1;
for(j=1;j=2*i-1;j++)
{
z=x*z;//算j次方
k=k*j;//算階乘}
s=-j*pow(-1,i);//pow(a,b)是a的b次方
z=z*s/k;
mymun=mynum+z;
}
printf("sinx=x-x^3/3!+x^5/5!-..");
printf("sinx=%f",mynum);
getch();
}
sinx=sinx+pow(-1,(i-1)/2)*pow(x,i)/s
題主你看是不是這里有錯,最后那里應(yīng)該是pow(x,i)除以S的階乘而不是除以S,越大的數(shù)跟它自己的階乘相差越遠(yuǎn),所以才會導(dǎo)致到100就完全不對了。
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泰勒公式中的每一項拆成了分子,分母以及每一項前的符號這三項,以便于每一項的累加。
C語言是一門通用計算機編程語言,應(yīng)用廣泛。C語言的設(shè)計目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。
二十世紀(jì)八十年代,為了避免各開發(fā)廠商用的C語言語法產(chǎn)生差異,由美國國家標(biāo)準(zhǔn)局為C語言制定了一套完整的美國國家標(biāo)準(zhǔn)語法,稱為ANSI C,作為C語言最初的標(biāo)準(zhǔn)。目前2011年12月8日,國際標(biāo)準(zhǔn)化組織(ISO)和國際電工委員會(IEC)發(fā)布的C11標(biāo)準(zhǔn)是C語言的第三個官方標(biāo)準(zhǔn),也是C語言的最新標(biāo)準(zhǔn),該標(biāo)準(zhǔn)更好的支持了漢字函數(shù)名和漢字標(biāo)識符,一定程度上實現(xiàn)了漢字編程。
你這個要求最后一項的近似值的精度...
我給你的是10的-5次方的精度。
#include
#include
main()
{
int
n=1,count=1;
float
x;
double
sum
,term;
printf("input
x:");
scanf("%f",x);
sum=x;
term=x;
do
{
term=-term*x*x/((n+1)*(n+2));
sum=sum+term;
n=n+2;
count++;
}
while
(fabs(term)=1e-5);
printf("sin(x)=%f,count=%d\n",sum,count):
}
當(dāng)前名稱:正弦函數(shù)泰勒展開c語言,正弦函數(shù) 泰勒展開
當(dāng)前網(wǎng)址:http://aaarwkj.com/article30/hsddpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、外貿(mào)建站、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計、網(wǎng)站營銷、面包屑導(dǎo)航
聲明:本網(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)