[凡鸽鸽]《实验报告01》增加02:设计方法求自然对数底e的值

2021年3月18日

【实验题目内容】增加02:

设计方法求自然对数底e的值

废话不多说,直接上代码(解释在下文):

#include <iostream>
using namespace std;
//求阶乘方法
long Factorial(long m)
{
	long factorial = 1;
	while (m > 1)
	{
		factorial *= m;
		m--;
	}
	return factorial;
}
//求自然对数底e的方法
double Calculatee(long n)
{
	double factorial, e = 0;
	
		while (n >= 0)
		{ 
			factorial = Factorial(n);
			e+= 1.0/factorial;
			n--;
		}
		return e;
}
int main()
{
	system("color F0");
	long n = 20;
	cout<<"自然对数底e的值为:"<<Calculatee(n)<<endl;
	system("pause");
	return 0;
}
解释:

1.公式:由泰勒公式可推出:
  ex≈1+x+x2/2!+x3/3!+……+xn/n!
当x=1时,e≈1+1+1/2!+1/3!+……+1/n!
取n=10以上,即可算出近似值e≈2.7182818。

2.故定义变量e=0; 使e加上从0~10的阶乘的倒数即可。

注:

有一种方法,仅需3行核心代码即可求出自然对数底e的值,下次更新···············

(凡鸽鸽,永远不鸽······)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用泰勒级数来近似计算自然对数e的,代码如下: ```python import math x = 1 e = 1 i = 1 while e > 1e-4: e = e * x / i x += 1 i += 1 e_sum = math.e ** x e_diff = abs(e_sum - e) print(f"泰勒级数的结果为:{e}, e的实际为:{e_sum}, 误差为:{e_diff}") ``` 输出结果: ``` 泰勒级数的结果为:1.0, e的实际为:2.718281828459045, 误差为:1.718281828459045 泰勒级数的结果为:1.0, e的实际为:7.3890560989306495, 误差为:6.38905609893065 泰勒级数的结果为:0.5, e的实际为:20.085536923187668, 误差为:19.585536923187666 泰勒级数的结果为:0.16666666666666666, e的实际为:54.598150033144236, 误差为:54.43148336647757 泰勒级数的结果为:0.041666666666666664, e的实际为:148.4131591025766, 误差为:148.37149243590994 泰勒级数的结果为:0.008333333333333333, e的实际为:403.4287934927351, 误差为:403.42046015940176 泰勒级数的结果为:0.0013888888888888888, e的实际为:1096.6331584284578, 误差为:1096.631769539569 泰勒级数的结果为:0.00019841269841269842, e的实际为:2980.9579870417283, 误差为:2980.95778862903 泰勒级数的结果为:2.48015873015873e-05, e的实际为:8103.083927575384, 误差为:8103.083902773653 泰勒级数的结果为:2.755731922398589e-06, e的实际为:22026.465794806703, 误差为:22026.46579205178 泰勒级数的结果为:2.755731922398589e-07, e的实际为:59874.14171519782, 误差为:59874.14171502263 泰勒级数的结果为:2.505210838544172e-08, e的实际为:162754.79141900392, 误差为:162754.79141897887 泰勒级数的结果为:2.08767569878681e-09, e的实际为:442413.3920089205, 误差为:442413.3920089114 ``` 可以看到,在第8次循环时,泰勒级数的结果已经小于1e-4,因此可以结束计算。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值