C++:利用泰勒公式求cos x近似值

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

【问题描述】

已知cos x的近似计算公式如下:

cos x = 1 - x^{2}/2! + x^{4}/4! - x^{6}/6! + ... + (-1)^{n}x^{2n}/(2n)!

 其中x为弧度,n为大于等于0的整数。编写程序根据用户输入的x和n的值,利用上述近似计算公式计算cos x的近似值,要求输出结果小数点后保留8位。

【输入形式】

从控制台输入小数x(0<=x<=10)和整数n(0<=n<=1000),两数中间用空格分隔。

【输出形式】

控制台输出公式结果:小数点后保留8位。

【样例输入1】

1.0472  3

【样例输出1】

0.49996244

【样例输入2】

1.0472  49

【样例输出2】

0.49999788

【样例说明】

输入x为1.0472,n为3,求得cos x近似计算公式的值为0.49996244,小数点后保留8位;同样,输入x为1.0472,n为49,求得cos x近似计算公式的值为0.49999788,小数点后保留8位。

【源代码】

#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;

double factorial(int n)//定义一个求阶乘的函数
{
	double fac = 1;//用double不用int,int容量过小
	for (int i = 1; i <= n; i++)
	{
		fac = fac * i;
	}
	return fac;
}
int main()
{
	double x, cos=1;
	int n;//用int不用double,否则会有误差
	cin >> x >> n;
	for (int i = 1; i <= n; i++)
	{
		if(i % 2 == 0)
		{
			cos +=  pow(x, 2*i) / factorial(2 * i);//pow乘方函数,需头文件cmath
		}
		if(i % 2 != 0)
		{
			cos -=  pow(x, 2*i) / factorial(2 * i);
		}
	}
	cout << fixed << setprecision(8) << cos << endl;//setpreciion保留小数,需头文件iomanip
	return 0;
}

其中使用了自定义求阶乘的函数factorial

double factorial(int n)
{
	double fac = 1;
	for (int i = 1; i <= n; i++)
	{
		fac = fac * i;
	}
	return fac;
}

利用泰勒级数sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9)! ... (循环的循环体,10^(-5)的表达,次方不仅可以用pow还可以用循环的方式) 利用泰勒级数sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9)! … 计算sin(x) 的值。要最后一项的绝对值小于10^(-5),并统计出此时累加了多少项。 #include <math.h> #include <stdio.h> void main() { int n = 1,count = 1; fl... 阅读详情

相关推荐

c++实验2:6-4 余弦函数近似值

6-4 使用函数余弦函数的近似值 (15 分) 本题要实现一个函数,用下列公式cos(x)的近似值,精确到最后一项的绝对值小于e: cos(x)=x ​0​​ /0! − x2/2! + x4/4! − x​6/6! + ⋯ 函数接口定义: double funcos( double e, double x ); 其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算...

Skyed_blue的博客 4181

使用泰勒公式计算cos(x)的值

泰勒公式,应用于数学、物理领域,是一个用函数在某点的信息描述其附近取值的公式。如果函数足够平滑的话,在已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的邻域中的值。泰勒公式还给出了这个多项式和实际的函数值之间的偏差。 泰勒公式得名于英国数学家布鲁克·泰勒。他在1712年的一封信里首次叙述了这个公式,尽管1671年詹姆斯·格雷高里已经发现了它的特例。拉格朗日在1797年之前,最先提出了带有余项的现在形式的泰勒定理。

从键盘输入一个角度值,利用如下泰勒公式计算cos(x)的近似值

从键盘输入一个角度值,利用如下泰勒公式计算cos(x)的近似值,要截断误差小于10-7,即通项式的值小于10-7时停止计算。公式中的x为弧度值(将角度值转换为弧度值时,π取值为3.1415926)。

2301_81485935的博客 868

C语言——cos(x)的近似值

C语言——cos(x)的近似值

一个正在学习C/C++的博主 2999

python sinx计算公式

【问题描述】 已知sinx的近似计算公式如下:  sin x = x - x3/3! + x5/5! - x7/7! + ... + (-1)n-1x2n-1/(2n-1)!  其中x为弧度,n为正整数。编写程序根据用户输入的x和n的值,利用上述近似计算公式计算sinx的近似值,要输出结果小数点...

qq_37752067的博客 2万+

python材料计算公式_python sinx计算公式

【问题描述】已知sinx的近似计算公式如下:sin x = x - x3/3! + x5/5! - x7/7! + ... + (-1)n-1x2n-1/(2n-1)!其中x为弧度,n为正整数。编写程序根据用户输入的x和n的值,利用上述近似计算公式计算sinx的近似值,要输出结果小数点后保留8位。【输入形式】从控制台输入小数x(0<=x<=20)和整数n(1<=n<=50...

weixin_31916045的博客 1654

c++ 计算正弦的近似值_C++第13周报告(二)定义自定义函数,计算sin和cos近似值...

第13周报告2另外一篇博文中提交):实验目的:学会使用自定义函数解决实际问题实验内容:定义自定义函数,计算sin和cos近似值* 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了)* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生* All rights reserved.* 文件名称:自定义函数,用泰勒公式实现计算sin和co...

weixin_42641385的博客 3037

计算cosx近似值

计算cosx近似值 题目: 利用泰勒公式计算cosx近似值,直到最后一项的绝对值小于10的-6次方 输入样例 0.3 输出样例 0.955336 问题:开始总是只有小数点后三位,后面都是0,后来发现取绝对值的abs是处理int的,改成处理double类型的fabs就好了。 int abs(int i); // 处理int类型的取绝对值 double fabs(double i); // 处理double类型的取绝对值 float fabsf(float i); //

hello_world_yaru的博客 8812

泰勒公式cos x(c++)

2.输入两个实数eps和x,用下列公式cosx近似值,精确到最后一项的绝对值小于eps。要定义并调用函数funcos( eps,x )来实现。

2301_79883223的博客 898

泰勒三角函数近似值

记录用泰勒三角函数近似值的问题 题目一 用泰勒展开式cosx近似值 1.题目描述 按上述公式近似值,要最后一项绝对值小于给定值e。最后结果与库函数进行比较误差。 2.代码实现 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double x, e; x = sc.nextDo

cx22757的博客 3823

C++程序设计实验报告(十二)----计算sin和cos近似值

第13周报告2: 实验目的:学会使用自定义函数解决实际问题 实验内容:定义自定义函数,计算sin和cos近似值 * 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:      sin&cos

qdliuzhen的专栏 6378

C++第13周报告(二)定义自定义函数,计算sin和cos近似值

第13周报告2另外一篇博文中提交): 实验目的:学会使用自定义函数解决实际问题 实验内容:定义自定义函数,计算sin和cos近似值 * 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:自定义函数

天道酬勤,人定胜天! 4903

c++余弦的泰勒展开式

c++余弦

basai123的博客 5057

C++ 第十三周报告2

实验目的:学会使用自定义函数解决实际问题 实验内容:定义自定义函数,计算sin和cos近似值 * 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:             自定义sin&cos函数

JiangBo_Liu 博客 762

编写自己的Math函数库

无论是用C语言、C++语言或Java语言编写程序时,在使用sin(x)、ln(x)之类的函数时,都会有数学函数库(Math类),但你是否知道这些类是如何写的吗?用别人的东西总是要付费的,尽管可能你目前不用付费。如果能够编写自己的函数库,那岂不是更好?     像sin(x)、ln(x)这类的函数都是采用高数中的泰勒公式展开式来得的,此处我才体会到高数的用处啊!     采用无限逼近的方法来

牟尼的专栏 2832

十三周实验报告2:学会使用自定义函数解决实际问题

* 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 杨建和 * 作 者: * 完

yangjianhe1210的专栏 611

2011年 下半年 C++程序设计(十八)

对任务及解方法的描述部分 * 输入描述:无 * 问题描述:自定义函数,用泰勒公式实现计算sin和cos近似值,要:(1)sin、cos时,不能用数学库函数(即不得用#include),而是自己编函数实现,为区别,可以分别起名为mysin和mycos;(2)自定义函数要写在main函数之后;(3)自定义函数的效率问题必须考虑;(4)关于精度:当最后一项的绝对值小于0.00001时,累加结

taipingshaoye2012的专栏 656

2011年 C++程序设计

实验目的:学会使用自定义函数解决实际问题 实验内容:定义自定义函数,计算sin和cos近似值 * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:    dSan                          * 作    者:    刘向一

liuxiangyi887的专栏 345

第十三周实验报告》报告2. (2011-11-20 16:43

实验目的:学会使用自定义函数解决实际问题 实验内容:定义自定义函数,计算sin和cos近似值 * 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:   * 作 者: 李君凯 * 完成日期:

a2425262756的专栏 341
上一篇: ​​​​C++:利用泰勒公式求e的x次方近似值
下一篇: C++:判断可逆素数
十七只小混
博客等级 码龄5年 245粉丝 22原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值