pta使用函数求余弦函数的近似值

本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e:

cos(x)=x​0/0!−x​2/2!+x​4/4!−x​6/6!+

函数接口定义:

double funcos( double e, double x );

其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。
裁判测试程序样例:

#include <stdio.h>
#include <math.h>

double funcos( double e, double x );

int main()
{    
    double e, x;

    scanf("%lf %lf", &e, &x);
    printf("cos(%.2f) = %.6f\n", x, funcos(e, x));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

0.01 -3.14

输出样例:

cos(-3.14) = -0.999899
double funcos( double e, double x )
{
	int j,b=1;
	double sum=0,a,i,c;
	for(i=0;;i++)
	{
		for(j=1,c=1;j<=2*i;j++)
		{
			c*=j;
		}//实行阶乘运算 
		a=pow(x,2*i)/c;//pow(,)函数为幂函数 
		sum+=b*a;
		b=-b;
		if(fabs(a)<e)//fabs()函数为取绝对值函数 
		//此处的fabs()函数可以省略,因为a不会为负数
			break;//另起一行进行跳出循环 
	}
	return sum;
}
  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
用多项式来近似表示余弦函数cosx 分数 20 作者 李军 单位 陕西理工大学 在数学上对一些复杂的函数,常用多项式来近似表示函数。例如正弦函数cosx是用如下多项式来近似表达的: cosx≈1− 2! x 2 ​ + 4! x 4 ​ − 6! x 6 ​ +⋯+(−1) n−1 (2n−2)! x 2n−2 ​ +⋯ 在实际计算时当多项式尾项(−1) n−1 (2n−2)! x 2n−2 ​ 的绝对值小于一个预定值ε(例如10 −5 或10 −6 )时可认为达到了计算精度要,结束计算。请根据题目描述编写函数计算在x∈[0,π]处点的余弦值。 编程要: 编写两个函数,一个是cosx的函数MyCos(x),另一个是n!的函数fact(n)。在函数MyCos(x)中调用fact(n)函数。其中公式中的x n 可用库函数pow(x,n)来实现。 函数接口定义: n!的函数接口: double fact(int n); 参数n是要阶乘的数,是一个整数类型的参数,函数的返回值为double型. sinx值的函数: double MyCos(double x,double epsilon); 其中x是cosx的自变量参数,epsilon是计算精度要参数。 裁判测试程序样例: #include <stdio.h> /* 请在这里填写答案 */ int main() { double x,epsilon; scanf("%lf%lf",&x,&epsilon); printf("%.15f\n",MyCos(x,epsilon)); return 0; } 输入说明: 在一行内输入两个数,两数之间用空格间隔,其中第一个数是自变量的值,第二者数是计算精度要值。 输出说明: 输出一个值,输出保留17位小数。 输入样例: 1.1 0.000000000001 输出样例: 0.453596121425359
06-07

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值