12.2

原创 2013年12月03日 16:52:06
/*
*Corpyright (c)2013,烟台大学计算机学院
*All right reseved.
*作   者 :曹昕卓
*完成日期:2013年12月3日
*版 本 号:v1.0
*输入描述:
*问题描述:乘法口诀
*程序输出:
*问题分析:
*算法设计:
*/
#include <iostream>
using namespace std;
const double pi=3.1415926;
double mysin(double);
double mycos(double);
double myabs(double);   //程序中需要求精度的绝对值,也用自定义函数完成吧
int main( )
{
	cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;
	cout<<"sin(56°)的值为"<<mysin((56.0/180)*pi)<<endl;
	cout<<"cos(87°)的值为"<<mycos((87.0/180)*pi)<<endl;
	cout<<"cos(π/3)的值为"<<mycos(pi/3)<<endl;
	return 0;
}

double mysin(double x)
{
	double sum=x,x_pow=x,item;
	int n=1,fact=1,sign=1;     //定义变量时赋初值,已经将第一项考虑到累加和sum中
	do
	{
		fact=fact*(n+1)*(n+2);  //fact用于表示阶乘,在公式中作分母
		x_pow*=x*x;             //x_pow是分子中用于表示阶乘,在公式中作分母
		sign=-sign;             //确定即将要累加的这一项的符号
		item =x_pow/fact*sign; //计算出要累加的项
		sum+=item;              //将该项累加上去
		n+=2;
	}while(myabs(item)>1e-5);
	return sum;
}

//下面定义mycos函数
double mycos(double x)
{
	double sum=1,x_pow=1,item;
	int n=0,fact=1,sign=-1;
	do
	{
		fact=fact*(n+1)*(n+2);
		x_pow*=x*x;
		item =x_pow/fact*sign;
		sum+=item;
		sign=-sign;
		n+=2;
	}while(myabs(item)>0.00001);
	return sum;
}

//下面定义myabs函数
double myabs(double x)
{
	return ((x>=0)?x:-x);
}


 

成果展示:
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

EBS R12.2 更改apps密码

  • 2017-04-26 18:29
  • 439KB
  • 下载

从头认识java-12.2 Class对象(4)-泛化

这一章节我们来讨论一下Class对象的泛化。1.为什么需要泛化?代码在编译时就可以进行类型检测,不需要等到运行时才检测类型。 2.例子package com.ray.ch12; public c...

SFF-8472 v12.2

  • 2017-06-28 22:01
  • 218KB
  • 下载

Oracle 12.2的Sharding-1-基础概念

2015年8月份内部release了Oracle 12.2beta版本(目前内部最新release的版本是2016年2月份发布的,windows和Linux都有了),目前根据12.2beta文档的介绍...

K3 成长版 V12.2 网上银行

  • 2011-03-15 14:13
  • 1.40MB
  • 下载

12.2添加下拉菜单

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml"> 无标题文档...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)