泰勒公式可以很好地求函数的值,它把任何函数的值展开为幂的和的方式。
即
泰勒公式:Taylor's formula
泰勒中值定理:若函数f(x)在开区间(a,b)有直到n+1阶的导数,则当函数
在此区间内时,可以展开为一个关于(x-x.)多项式和一个余项的和:
f(x)=f(x.)+f'(x.)(x-x.)+f''(x.)/2!•(x-x.)^2,+f'''(x.)/3!•(x-x.)^3+…
…+f(n)(x.)/n!•(x-x.)^n+Rn
其中Rn=f(n+1)(ξ)/(n+1)!•(x-x.)^(n+1),这里ξ在x和x.之间,该余项称为
拉格朗日型的余项。
(注:f(n)(x.)是f(x.)的n阶导数,不是f(n)与x.的相乘。)
常见的用法是用来求sinx的值.
1、展开三角函数y=sinx
解:根据导数表得:f(x)=sinx , f'(x)=cosx , f''(x)=-sinx , f'''(x)=-
cosx , f(4)(x)=sinx……
于是得出了周期规律。分别算出f(0)=0,f'(0)=1, f''(x)=0, f'''(0)=-1,
f(4)=0……
最后可得:sinx=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-……(这里就写成无穷级
数的形式了。)
为了求解sinx=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-……,我们要分析其规律,
这样才能进行运算
1.它是和的方式
2.每一项的分母每次的幂要加2次,且会乘-1
3.分母的幂会在原有基础上加上(2*i)(2*i + 1)
这样就好分析了。对于1。 我们可先定义一个数sum, 先等于x, 再在基础上再加
对于2, 在a = a*x*x*(-1)即可,对于3, 可以在原有基础上b = b*2*i(2*i + 1)
即可,
下面是程序代码示例
#include
#include
int main()
{
int i=1,b=1;
float x,a,s=0;
printf("输入x的值:\n");
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);
return 0;
}
----------------------------------------------------------------------
进来了就多看几篇: