用C语言求多项式求sinx的近似值。
來源:互聯網 2010-12-22 19:59:48 評論
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
問題描述:
3、利用下列台劳多项式求sinx的近似值。
Sin x ≈x/1 - x3/3! + x5/5!-x7/7!+…….+(-1)n-1x2n-1 /(2n-1)!
參考答案:
#include
double factorial(double n)
{//求n!
double result=1;
for(int i=1;i<=n;i++)
{
result*=i;
}
return result;
}
double sinx(double x,int n)
{//求sin(x),精度为n
double result=0;
bool bAdd=true;//是加还是减
for(int i=1;i<=n;i++)
{
if(bAdd)
{
result+=((double)x*(2*i-1)/factorial(2*i-1));
}
else
{
result-=((double)x*(2*i-1)/factorial(2*i-1));
}
bAdd=!bAdd;
}
return result;
}
void main()
{
printf("%f\r\n",sinx(0.4,10));
}
[b]分类:[/b] 电脑/网络 >> 程序设计 >> 其他编程语言[br][b]问题描述:[/b][br]3、利用下列台劳多项式求sinx的近似值。
Sin x ≈x/1 - x3/3! + x5/5!-x7/7!+…….+(-1)n-1x2n-1 /(2n-1)![br][b]参考答案:[/b][br]#include
double factorial(double n)
{//求n!
double result=1;
for(int i=1;i<=n;i++)
{
result*=i;
}
return result;
}
double sinx(double x,int n)
{//求sin(x),精度为n
double result=0;
bool bAdd=true;//是加还是减
for(int i=1;i<=n;i++)
{
if(bAdd)
{
result+=((double)x*(2*i-1)/factorial(2*i-1));
}
else
{
result-=((double)x*(2*i-1)/factorial(2*i-1));
}
bAdd=!bAdd;
}
return result;
}
void main()
{
printf("%f\r\n",sinx(0.4,10));
}