学习笔记:用c语言编写泰勒展开公式myexp()实现math.h.数学函数库中的exp()函数。并与exp()函数做比较。精度相同。

学习笔记:用c语言编写泰勒展开公式myexp()实现math.h.数学函数库中的exp()函数。并与exp()函数做比较。精度相同。

#include <stdio.h>
#include <math.h>
double myexp(double x){
 int i,k,m,t;
 int xm=(int)x; 
 double sum;
 double e ;
 double ef;
 double z ;
 double sub=x-xm;
  m=1;      //阶乘算法分母
     e=1.0;  //e的xm
  ef=1.0;  
  t=10;      //算法精度
  z=1;  //分子初始化
  sum=1;   
//  printf("x=%f\n",x);
//  printf("sub=%f\n",sub);
 if (xm<0) {     //判断xm是否大于0?
   xm=(-xm); 
   for(k=0;k<xm;k++){ef*=2.718281;}
   e/=ef;
  } 
 else { for(k=0;k<xm;k++){e*=2.718281;} }
//  printf("e=%f\n",e);
//  printf("xm=%d\n",xm);
  for(i=1;i<t;i++){
  m*=i; 
  z*=sub;  
  sum+=z/m;
 }
 return sum*e;
}
  
int main(void)
{
 double a;
 double b;
 double c;
 do 
 {
 printf("Input a double data:\n");
 scanf_s("%lf",&a);
 printf("Just input a data:%f\n",a);
 b=exp(a);
 c=myexp(a);
 printf("The result of exp() funtion is: %f\n",b);
 printf("The result of myexp() funtion is: %f\n\n",c);  
 } 
 while(1);
 return (0);
 
}

我的运行结果:
在这里插入图片描述

(原作者已无法联系,如不可转载,本人会立即删除)
转载于:https://blog.51cto.com/lifj07/162952

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值