c语言求泰勒公式sinx近似值

#include<stdio.h>#include<math.h>int main(){ double up,x,c,pow(double x,double y); int down=1,n=0,i=1; printf("x="); scanf("%f",&x); c=x; do { up=pow(-1,i)*pow(x,2i+1); down*=(n+2)*(n+3); c+=up/down; i+=2,n++; } while(up/down<=0.0000001); printf("sin(x)=%f",c); return 0;} do while 里up=.......................2i+1显示出错(图中波浪线)

你的程序错误太多。直接给出按泰勒公式展开求sinx近似值的程序。

#include <stdio.h>
#include <math.h>
int main()
{
double i,x,k,s=0;
scanf("%lf",&x);
k=x;
for(i=1;abs(k)>=0.0000001;i++)
{s+=k;k*=-x*x/(i*2*(i*2+1));}
printf("%.3lf",s);
return 0;
}

//运行示例截图:

截图中0.523598为弧度值,近似为角度值的30°。结果为0.5。

如果要输入角度值,那么:

#include <stdio.h>
#include <math.h>
#define PI 3.14159
int main()
{
double i,x,k,s=0;
scanf("%lf",&x);
k=x=x*PI/180;
for(i=1;abs(k)>=0.0000001;i++)
{s+=k;k*=-x*x/(i*2*(i*2+1));}
printf("%.3lf",s);
return 0;
}

//运行示例截图:

此时输入为角度值,例如截图中输入30,输出为0.5。

本题属于基础题。很简单的程序,不要人为复杂化。

追问

我要的就是错误的地方

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-08

2i应该是2*i

第2个回答  2019-04-08

本回答被提问者采纳

c语言 根据泰勒公式求sinx的近似值
} printf("sinx=x-x^3\/3!+x^5\/5!-..");printf("sinx=%f",mynum);getch();}

c语言求泰勒公式sinx近似值
你的程序错误太多。直接给出按泰勒公式展开求sinx近似值的程序。include <stdio.h>#include <math.h>int main(){double i,x,k,s=0;scanf("%lf",&x);k=x;for(i=1;abs(k)>=0.0000001;i++){s+=k;k*=-x*x\/(i*2*(i*2+1));}printf("%.3lf",s);return 0;}\/\/运行示例截...

sinX的泰勒公式展开式用C语言怎么编写?非常急
你这个要求最后一项的近似值的精度...我给你的是10的-5次方的精度。include<math.h> include<stdio.h> 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;co...

c语言,如何用泰勒公式求sinx?
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);

C++编程4. 【问题描述】根据泰勒公式,求sinx的值。
include <stdio.h>int main(){int i;double x,r = 0, item = 0;scanf("%lf",&x);for(i = 1, item = x; i <= 10; i ++){if(i != 1) item = item * x * x * -1 \/ (2*i-1)\/(2*i-2);r += item;}printf("sin(x)=%.2lf\\n", r);} ...

c语言怎么写泰勒公式
泰勒公式是一种用于逼近函数值的数学工具,尤其适用于在某一点附近计算复杂函数的值。在C语言编程中,实现泰勒公式的方法是定义一个函数,根据特定的函数和点来进行逼近。泰勒公式的基础在于将函数展开成多项式的形式,其中每一项都包含了函数的导数信息。要实现这个过程,首先需要确定目标函数以及进行逼近的点...

C++编程【问题描述】根据泰勒公式,求sinx的值。
double a=x,b=1,t,r=0,xx=x*x,s=1,i=3;do { t=a\/b;r+=t*s;a=a*xx;b=b*i;i+=2;s=s==1?-1:1;}while(t>1e-5);return r;} return s;} int main(){ using namespace std;double x;cout<<"请输入x值:";cin>>x;cout<<"sin(x)="<<sin(x);return 0;} ...

C语言 泰勒公式的sinx问题
scanf("%f",&x,&n);改成 scanf("%f,%f",&x,&n);

关于泰勒公式展开sinx的误差估计
sinx=0+x+0*x^2\/2!+R2(x)可能是因为其1阶展开也是sinx=0+x+R1(x)所以,楼主在看到sinx=x时后当成下面的了吧.其实,书上求的是2阶的哦~~~由于所求近似为2阶.所以余项R2(x)为3阶的 所以,最后R<=x^3\/6 讲的很清楚了吧?不明白再问我好了~至于x>3的时候,我觉得你把误差放小似乎有...

C语言 泰勒公式的sinx问题
b=b*2*i*(2*i-1);这个式子就是错的 include <stdio.h> include <math.h> int main(){ int i=1,b=1;float x,a,s=0;printf("输入x的值");scanf("%f",&x);a=x;while(fabs(a\/b)>=1e-6){ s+=(a\/b);a=-1*a*x*x;b=b*2*i*(2*i+1);i++;} printf("%f",s...

相似回答