计算cosx和sinx的近似值
Description
遍一个程序计算sinx和cosx的近似值,使用如下的台劳级数:
舍去的绝对值应小于ε
Input
输入文件包括2个实数x,ε,两个数间有一空格。
Output
输出文件共两行
第一行输出sinx的近似值
第二行输出cosx的近似值
Sample Input
5 0.001
Sample Output
-0.958776 0.284221
Source
习题06-01
问题分析:
这个题目是对公式的理解和实现。通过观察,发现一下的规律。
1.每一项的组成形式是X^K/K!;
2.每一项的符号与K有关。Kmod4为1,4的是正的,Kmod4为2,3的是负的;
3.sin是K为奇数时候的累加,cos是K为偶数时候的累加;
4.对于X的初值的处理,需要将这个数字转换成2*pi以内的数。
解决方案:
用一个while循环控制程序。维护里面的条件是单项的值小于给出的初值。对if进行一个奇数偶数的判断,可以在一个循环中完成对sinx和cosx的叠加分配。我使用了一个子函数item专门来计算每一项的值。在计算的时候使用一个大小为K的循环,来计算X^K/K!。具体的可以见参考程序。
参考程序:
#include<stdio.h>
#include<math.h>
const double pi=3.1415926; //define pi
double item(int n);
double x;
int main()
{
scanf("%lf",&x);
double e;
scanf("%lf",&e);
x=x-(floor(x/(2*pi)))*(2*pi); //change x to 0~2*pi
double sinx=0.0;
double cosx=0.0;
int n=0;
double now=item(n); //here we can change to do……while
while(fabs(now)>e)
{
if(n%2==0) { // if n%2==0 cosx+ else sinx+
cosx=cosx+now;
}
else{
sinx=sinx+now;
}
n++;
now=item(n);
}
printf("%lf\n",sinx);
printf("%lf\n",cosx);
return 0;
}
double item(int k)
{
double ans=1.0;
int i;
for(i=1;i<=k;i++) { //here to cal X^K/K!
ans*=x;
ans/=i;
}
if(k%4==2||k%4==3)
{
ans=-ans;
}
return ans;
}
分享到:
相关推荐
RUC_Equip 数据库课程设计,以学生、老师、仪器辅导员三种身份参与的大型仪器预约管理平台。 项目实现使用python3.7, mysql,Django, 其中 $Mysql$ 数据库部分使用 $\text{phpmyadmin}$ 进行图形页面管理。数据库...
中国人民大学大型仪器管理平台 RUC_InsManagement一、Introduction本项目为数据库课程设计的前期demo版本,主要包括了该项目的前端设计、交互控制等内容。项目内容大致完整,基本只需要简单的命令就能够上手跑起这个...
Validador RUC和DNI客户和被证明者: * Nuevo campo "tipo de documento"* Validacion RUC y DNI相依性: $ sudo apt-get install tesseract-ocr tesseract-ocr-eng python-imaging python-pip python-bs4 $ sudo ...
以AIROBOT为平台构建的一个智能机器人。主源码见main.c。其余为使用的函数接口定义
RUC Validation. For purposes of control, in Peru, public and private enterprises are identified by a Taxpayer Registration Number-RUC. For this reason it is of much value to accounting or financial ...
巴拿马电视用于为巴拿马计算给定RUC的DV的程序。 见 用法: #!/usr/bin/env python2 import sys import argparse import ruc parser = argparse . ArgumentParser ( description = 'DV calculator' ) parser . add_...
塞杜拉和厄瓜多尔RUC的验证人 开发此小程序包可以轻松验证: 身份证 自然人的RUC 私人公司的RUC 上市公司的RUC 介绍 对于这种包装的发展,以下库通过创建已被作为一个基础,它已被修改,以便它是安装通过作曲家...
汇编语言人大的讲义绝对真实RUC汇编语言人大的讲义绝对真实RUC汇编语言人大的讲义绝对真实RUC汇编语言人大的讲义绝对真实RUC
ruc-beamer-模板 用于 RUC 的乳胶投影仪模板。 如何使用 latexmk -xelatex -use-make example.tex 或者, xelatex example.tex 截图 依赖关系 特克斯 雅黑字体 关于作者
API顾问DNI和RUC-秘鲁,empleando软件包。 Requerimientos PHP 7.3或更高。 安装 码头工人 使用镜像 docker run -d -p 8080:8080 --name peru-consult -e API_TOKEN=your_key giansalex/peru-consult-api 建筑设计...
对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同...
[1] [8-10] 教学科研仪器设备值7.44亿元; [11] 馆藏纸质图书392万册、电子图书297万种;下设5个学部、26个教学单位、81个本科专业;有专任教师1846人、全日制在校生24778人。 [4] 创办时间 1937年(丁丑年)8月 ...
操作手册与使用说明:针对每个游戏项目,都准备了详细的操作手册和使用说明,手把手教你如何运行和测试项目。 学习笔记:整理了Java语言在游戏开发中的核心知识点和常用技术,方便你随时查阅和学习。 适用人群: 这...
Ruc验证 允许为秘鲁业务验证ruc 使用npm或bower安装 npm install validate-ruc --save bower install validate-ruc --save 从Node.js或浏览器使用 var ruc = require('validate-ruc'); [removed][removed] var ...
jQuery插件,用于验证厄瓜多尔ID或RUC jQuery插件,用于验证厄瓜多尔ID或RUC。 :warning: 该库已有一段时间没有得到积极维护。 但是,请求请求是欢迎的。如何使用jQuery [removed][removed] JavaScript库: [removed...
在SUNAT中咨询RUC。 安装软件包 npm install 运行服务器 npm start node app.js 请愿 http://localhost:3000/ 要求POST: { " ruc " : " 20254138577 " } 回复: [ { " name " : " Número de RUC: " , " ...
基于elasticsearch+django+bootstrap的类案检索系统。现阶段仅能从RUC校园网访问 Environments elasticsearch==8.4.1 django==4.0.3 bootstrap==5.1.3
2017年中国综合社会调查(CGSS),数据为csv格式,下载自官网(httpcgss.ruc.edu.cnindex.htm),仅作练习数据使用,禁止商用及传播。
多媒体大数据分析研究进展综述导读 自然语言生成、深度学习算法、多媒体大数据分析,今天为大家详细介绍下多媒体大数据分析综述这篇文章。