C语言用泰勒公式求sin(x)的近似值
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/21 13:58:17
#include#includemain(){intn=2,count=1,sign=-1;floatx;doublesum,term;printf("inputx:");scanf("%f",&x)
首先你定义了double类型而scanf();中用的是%f.float型对应用%fdouble型对应用%lf这是第一个错误,输入的数值根本就没读进去.不过这不是唯一的错误,等我继续调试..printf
不需要用taylor公式,那是求导次数多时的近似求解直接一次:cosx二次:-sinx三次:-cosx带入:1
问题出在变量c的数据类型上,这是因为,当x的值比较大的时候,x^n除以n!收敛到0的速度非常慢,只有当n的值非常大的时候才能使得两者的商小于你给的精度,所以在这一过程中c=n!会超出int型数据表示的
#include#includeintmain(void){intfun(inti);inti;floatsum=0.0,x;inttemp=1;scanf("%f",&x);sum=x;for(i=
问题1:第二个for语句处改成2*n-1问题2:第一个for语句里的n+=2,改成n++问题3:a的值反转,从第二个for语句里拿出来,放到t=a*y/j之后.问题4:y在t=a*y/j这一行用过之后
sin(sinx)=x-2x^3/3!+o(x^5)
第十八行改为:\x09\x0918:for(n=1,h=1;n再问:对!这是一个问题,先谢过。不过我照这样改了之后,还是有问题,输入3,正确应是0.4几,我的输出确实-0.3几,愁死了再答:经过调试,
泰勒公式(Taylor'sformula)f(x)=f(0)+f'(0)x+f''(0)/2!?x^2,+f'''(0)/3!?x^3+……+f(n)(0)/n!?x^n+Rn(x)其中Rn(x)=f
在数学里乘号可以省略不写,类似(n+1)(n+2)这样.但是程序里不能省略,所以term=sign*term*x*x/((n+1)(n+2));应该是:term=sign*term*x*x/((n+1
#include <stdio.h>#include <math.h>int jiecheng(int n){\x09int
把A换成double或者float都行
不需要用pow的double expx(double x){ double ret = 1;
//把b定义为浮点型.inti=1,b=1;floatx,a,c;doubles=0;//上面两行改为inti=1;floatx,a,c,b=1.0;doubles=0;再问:我试过之后还是不行mai
(arctan(x))'=1/(1+x^2)这个导数可以用基本公式1/(1+x)来展开
首先你要明确泰勒展开在不同的前提设定下可以有不同的展开.就这个函数来说,对sinX可以先展开=sin(sinx)=sinx-(1/3!)(sinx)^3+(1/5!)(sinx)^5-(1/7!)(s
你这个要求最后一项的近似值的精度...我给你的是10的-5次方的精度.#include#includemain(){intn=1,count=1;floatx;doublesum,term;print
因为分母是x^2,所以只展开到2阶导数就够了,到三阶式子肯定含有x^3,由于x趋于0,所以x^3是x^2的高阶无穷小.也就是分母是几次方,一般就展到几阶.书后边写了几个常见的泰勒展开式,e^x的展开也
据我所知,似的
#include#include#definepi3.1415voidmain(){doublef;inta;scanf("%d",&a);f=sin(a/pi);printf("%lf\n",