编程 求sinx近似值

编程 求sinx近似值,第1张

以下是使用泰勒级数来计算 sin(x) 近似值的 C 语言程序示例:

#include <stdio.h>

#include <math.h>// 调用 math 库中的 pow() 和 sin() 函数

int main() {

double x, eps, sinx = 0, term = x// sinx 为近似值,term 为每一项的值

int n = 1// n 为当前项的次数

printf("请输入 x 的值(弧度):知举")

scanf("%lf", &x)

printf("请输入 eps 的值(误差限):")

scanf("%lf", &eps)

while (fabs(term) >eps) { // 当当前项的值小于误差限时,停止计算

sinx += term// 累加当前项的值

n += 2// 次数加 2

term = -term * x * x / (n * (n - 1))// 根据泰勒级数公式计算下一项的值

}

printf("sin(%lf) 的近似值为 %lf\n", x, sinx)

return 0

}

这个程序首先从键盘读入 x 和 eps 的值,其中 x 是 sin 函数的自变量,eps

是计算近似值的误差限,也就是要求的精度。然后,程序使用 while 循环计算 sin(x)

的近似值,直到当前项的绝对值小于误差限为止。在循环中,程序使用一个变量 n 来表示当前项的次数,初始值为 1,每次加 2,因为 sin

函数的泰勒级数只包含奇数次项。程序还使用一个变量 term 来表示每一项的值,初始值为

x,后面郑猛猜每次通喊型过公式计算下一项的值。最后,程序输出计算得到的 sin(x) 的近似值。

#include

#include

/*计算n的阶乘*/

int factor(int n)

{

if(n==1)

return 1

else

return factor(n-1)*n

}

/*得到分子的值*/

double get_numerator(double x,int order)

{

return pow(x,order) //求x^order

}

/*得到分母的值*/

double get_denominator(int n)

{

return factor(n) //求n的阶乘

}

/*获得第n项的符号,即(-1)^n*/

int get_symbol(int n)

{

if(n%2 ==0) //n是偶数

return 1

else

return -1

}

int main()

{

int i

double x

double sin_x=0

double tmp=0

printf("please input the x:\n")

scanf("滑宏%lf",&x)

for(i=0i++)

{

tmp=sin_x //暂时保存上一步得到的sin值

sin_x += get_numerator(x,2*i+1)/get_denominator(2*i+1)*get_symbol(i)

if(fabs(sin_x-tmp)<1e-6) //精度满足要求

break

}

printf("sin(%lf)=%lf\n",x,sin_x)

return 0

} /***********************************************************************

学好c语言,首先应该把语言的语法学好,这也是基础。尤其是注意指针部分,可以说这是c语言的精髓,也是c语言能够直接 *** 作内存的犀利之处。

其次,应该多练代码,并且注意代码的可读性,规范性。

最好,能够亲身用c语言参加某个项目实践,毕竟实践出真知。

至于之后c++或者java的学习,要看自己的发展规划了。不过学信凳册好c语言,绝对对你今后学习其他语言有很大粗败帮助。

*************************************************************************/

sinx在流程图在表示需要开头加上一个头文件math.h即可。根据查询相关公开信息显:在C语言家族程序中,头文件被大量使用,一般芦扰而言,每个C++/C程序通常由头文件和定义文件组成。头文件作为一种包含功能函数、数据接亏逗口销哗卖声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12448485.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存