加载中…
个人资料
小朋友
小朋友
  • 博客等级:
  • 博客积分:0
  • 博客访问:3,559
  • 关注人气:70
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

数值计算----利用泰勒展开式求sinx的值

(2009-10-28 16:18:25)
标签:

数值计算

泰勒公式

sinx

it

      泰勒公式可以很好地求函数的值,它把任何函数的值展开为幂的和的方式。

泰勒公式: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;
}


----------------------------------------------------------------------

进来了就多看几篇:


关于心语婚庆

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有