编程 求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<stdio.h>

#include<math.h>

double sin(double)

double nResult(double,double)

int main()

{

double x=0

scanf("%lf",&x)

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

return 0

}

double sin(double x)

{

//sin(x)=x-x^3/3!+x^5/5!-x^7/7!+……+(-1)(n^2n+1)/(2n+1)!+……

int i=0

double result=0,n=0

while( fabs( n=nResult(x,2*++i-1) ) > 0e-5 )//绝对值大于10^-5次方就循环

result+=(i%2==1)?n:-n

return result

}

double nResult(double x,double n)

{

//(n^2n+1)/(2n+1)!也就是n/1*n/2*n/3*n/4*.....n/(2n+1)

return n==1?x:nResult(x,n-1)*x/n

}

用递归给写了一个  sin(π)=0 sin(π/2)=1

楼主看得上就采纳吧 


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存