c语言用泰勒级数求sinx,数值计算----利用泰勒展开式求sinx的值

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

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

}

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

进来了就多看几篇:

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值