-->
当前位置:首页 > 题库

函数题:用多项式来近似表示正弦函数sinx

Luz4年前 (2022-04-09)题库800
$$\qquad$$在数学上对一些复杂的函数,常用多项式来近似表示函数。例如正弦函数$$\sin x$$是用如下多项式来近似表达的:

$$\qquad\sin x \approx x-\frac{x^3}{3!}+\frac{x^5}{5!}-\frac{x^7}{7!}+\cdots +(-1)^{n-1}\frac{x^{2n-1}}{(2n-1)!}+\cdots$$

在实际计算时当多项式尾项$$(-1)^{n-1}\frac{x^{2n-1}}{(2n-1)!}$$的绝对值小于一个预定值ε(例如$$10^{-5}$$或$$10^{-6}$$)时可认为达到了计算精度要求,结束计算。请根据题目描述编写函数计算在$$x\in[0, \pi]$$处的正弦值。
### 编程要求:
$$\qquad$$编写两个函数,一个是求$$\sin x$$的函数MySin(x),另一个是求$$n!$$的函数fact(n)。在函数sin(x)中调用fact(n)函数。其中公式中的$$x^n$$可用库函数pow(x,n)来实现。

### 函数接口定义:
##### 求n!的函数接口:
c++
double fact ( int n );

$$\qquad$$参数n是要求阶乘的数,是一个整数类型的参数,函数的返回值为double型.
##### 求$$\sin x$$值的函数:
c++
double MySin(double x,double epsilon);

$$\qquad$$其中x是$$\sin x$$的自变量参数,epsilon是计算精度要求参数。
### 裁判测试程序样例:
c++
#include "stdio.h"
#include <math.h>
/* 请在这里填写答案 */

int main()
{
double x,epsilon;
scanf("%lf%lf",&x,&epsilon);
printf("%.15f\n",MySin(x,epsilon));
return 0;
}

### 输入说明:
在一行内输入两个数,两数之间用空格间隔,其中第一个数是自变量的值,第二者数是计算精度要求值。
### 输出说明:
输出一个值,输出保留17位小数。
### 输入样例:

在这里给出一组输入。例如:

in
1.1 0.00001


### 输出样例:

在这里给出相应的输出。例如:

out
0.891200933115079







答案:若无答案欢迎评论