c++实现sinx()函数的编写应用

计算如下公式看\widetilde{}$$ k= \begin{cases} \sqrt{(sinr)^{2}+(sins)^{2}}, &(r^{2} <= s^{2})\\ \frac{1}{2}sin(rs), &(r^{2} >s^{2}) \end{cases} $$,其中 r、s 的值键盘输入sinx近似值利用泰勒公式计算

sinx = \frac{x}{1!} - \frac{x^{3}}{3!} + \frac{x^{5}}{5!}-\frac{x^{7}}{7!}\sum(-1)^{n-1}(-1)^{n-1}*\frac{x^{2n-1}}{(2n-1)!}.    (计算精度为10^{-6})

测试用例为:

r = 5

s= 8

1.37781

源程序如下:

#include<iostream>
#include<cmath> //具有c++标准库中数学函数的说明 
using namespace std;
const double TINY_VALUE = 1e-6;
double tsin(double x)
{
	double g = 0; //g为sinx()最终结果 
	double t = x; //初始值x赋给t 
	int n = 1; //n 用于求分母 
	do{
		g += t;
		n++;
		t = -t * x * x / (2 * n - 1) / (2 * n - 2);
	}while(fabs(t) >= TINY_VALUE); //fabs()求double型变量的绝对值 
	return g;
}
int main()
{
	double k, r, s;
	cout << "r=";
	cin >> r;
	cout << "s=";
	cin >> s;
	if(r * r <= s * s)
	{
		k = sqrt(tsin(r) * tsin(r) + tsin(s) * tsin(s));
	}
	else 
	{
		k = tsin(r * s) / 2;
	}	
	cout << k << endl; 
	return 0;
} 

 

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值