用sin和cos的泰勒展开式编程序,求出sin(π/2)、sin(56°)、cos(87°)、cos(π/3),当最后一项的绝对值小于0.00001时,累加结束
2013-11-17 14:45
477 查看
我的程序: 01./* 02.* 程序的版权和版本声明部分: 03.* Copyright (c) 2013, 烟台大学计算机学院 04.* All rights reserved. 05.* 文件名称:test.cpp 06.* 作 者:王鲁峰 07.* 完成日期:2013 年 11月17 日 08.* 版 本 号:v1.0 09.* 对任务及求解方法的描述部分: 10.* 输入描述:无 11.* 问题描述:用sin和cos的泰勒展开式编程序,求出sin(π/2)、sin(56°)、cos(87°)、cos(π/3), 当最后一项的绝对值小于0.00001时,累加结束 12.* 程序输入:略 13.* 程序输出:略 14.* 算法设计:略 15.*/ #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,s=1,a=1; while(myabs(item)>0.00001) { s=s*(n+1)*(n+2); x_pow*=x*x; a=(-1)*a; item =x_pow/s*a; sum+=item; n+=2; } return sum; } double mycos(double x) { double sum=1,x_pow=1,item; int n=0,s=1,a=-1; do { s=s*(n+1)*(n+2); x_pow*=x*x; item =x_pow/s*a; sum+=item; a=(-1)*a; n+=2; }while(myabs(item)>0.00001); return sum; } double myabs(double x) { return ((x>=0)?x:-x); }
运行结果:
心得体会:
学好高数 学好C++ 这个泰勒公式帮了我很大忙。
相关文章推荐
- (bok) 利用泰勒级数sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-... 计算sin(x)的值。要求最后一项的绝对值小于10^(-5), 并统计出此时累计了多少项?
- C++:利用如下公式,编写函数计算∏的值,直到最后一项的绝对值小于e,主程序接收从键盘输入的e,输出∏的值(保留5位小数)。 ∏/4 = 1-1/3+1/5-1/7...
- 用sin 和cos 的泰勒展开式编程序,求出sin( π/2)、sin(56°)、cos(87°)、cos( π/3)
- 求sin π/2的值和sin 56°的值
- 使用格里高利公式求π的近似值,要求精确到最后一项的绝对值小于10–4
- 6.9.编程计算e的近似值。直到最后一项的绝对值小于0.001时为止,输出e的值并统计累加的项数。
- C++上机报告 利用公式计算π=4(1-1/3+1/5-1/7+1/9-...)的近似值,直到括号中最后一项的绝对值小于0.000001为止。
- 利用公式计算π=4(1-1/3+1/5-1/7+1/9-...)的近似值,直到括号中最后一项的绝对值小于0.000001为止
- sin和cos的泰勒展开式
- 真NM喜闻乐见。new出一段空间 结束程序就runtime错误 调了一周 最后换成malloc搞定
- 泰勒展开式求sin(x)
- 2015-6-20求整数的绝对值,碰撞检测,游戏结束时,回掉“back to menu",操作方法
- l*cos(theta) & l*sin(theta)
- PHP不推荐在文件最后写‘?>’结束符
- 15.求函数:sin(x)=x/1! - x3/3! + x5/5! -x7/7! +…,最后一项精度不低于0.000001
- 运行程序时,提示模拟器的minSdk != deviceSdk,但是minsdk的设置是小于模拟器ban'b
- <c:forEach 表格最后一行累加
- 实验7(4)编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。
- 趣味图形之 正弦函数sin&&余弦函数cos相交
- 将文本文件中的数据读取到一个二维数组中,求出这些数据的中位数,然后求所有数据与中位数的差值的绝对值和,并求出和的最小值,最后把程序运行的结果写到一个txt文件中