欧拉数 e=2.71828...(Eulers_Number)

本文介绍了欧拉数e的基本概念及其重要性。e不仅在数学中扮演着核心角色,而且在微积分学中作为唯一其导数等于自身的指数函数而独具特色。文章通过具体的数列极限和指数计算例子展示了e的近似值如何逐步逼近其真实值,并通过一个财主放债的故事形象地解释了复利计算与e的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

From: http://blog.sina.com.cn/s/blog_5d03fffb0100xa6t.html

欧拉数 e=2.71828...(Eulers_Number)

1.      提起欧拉数,差不多都知道。但是在中学里通常不太喜欢它,因为使用的对数以10位底计算对数仿佛要亲切些,因为以10位底的对数叫做常用对数。另外一个叫 做自然对数的东西中学你少用,原因是自然对数的底到底是多少不知道。实际上,现在人类都不知道,只知道这个数e——欧拉数的计算方法,但是它的准确数字也 许我们永远也不知道。e是一个无理数,这一点应该是被林德曼证明了的,用现在的办法不难证明。

2.    微积分学中e首先是作为数列{(1+1/n)n}的极限来定义的,因为这个数列是一个单调上升有界数列。不过要注意的是,如果真的使用这个数列来计算e的近似值那时相当不理想的。我们知道
e ≈ 2.71828182845904523536028747135266249775724709369995957496696762772407\
6630353547594571382178525166427 (100位准确数字)。
      例如
(1+1/10)10=2.5937424601.
(1+1/50)50=2.6915880290736053938940873551532....
(1+1/100)100=2.70481382942152609326719471080....
(1+1/365)365=2.7145674820218743031938863066...
      不难看出n=365这种办法才有2位有效数字。后面将要学会一些新的算法,比如用
1+1/(1!)+1/(2!)+......+1/(n!). 其中 ! 表示阶乘。
      可以简单算出:
n=1,      e ≈2;
n=10,     e ≈2.7182818011463844797178130...;
n=50,     e ≈2.71828182845904523536028747135266249775724709369995957496696762772341\
9298053548538722835117660645043...;
n=365, e= ... 如上的100位数字,实际上可以得出701位有效数字。
 
3.    有一个关于财主的故事。说的是一个财主特别贪财,他喜欢放债。放出去的债年利率为100%,也就是说借1块钱,一年后要还给他2块钱。他想,干脆按照半年50%的利率算,结果
(1+50%)2=2.25, 也就是说借出1块钱,一年后要还2.25元。
      于是他进一步想,不如每天都来算利息,那利率就是1/365,这样
(1+1/365)365= 2.7145674820218743032…
      他还有一天算两次或更多的想法,不过他的管家劝他还是算了吧。尽管财主不死心,只好作罢。
 
4.  更为一般的,指数函数ex有一个所有函数都不具备的性质,那就是它的导数还是它自己。具备这样性质的函数唯此一个。
       另外,大家都经常用Google。有人说这个词实际上起源于Googol,它等于10100,就是1后面有100个0。有趣的是据Wiki介绍, Google在2004年首次公开募股,集资额不是通常的整头数,而是$2,718,281,828,这当然是取最接近整数的e*十亿美元。

转载于:https://www.cnblogs.com/ykmzy/articles/5331298.html

#!/usr/bin/env python import rospy import numpy as np from uuv_control_interfaces import DPControllerBase class TutorialDPController(DPControllerBase): def __init__(self): super(TutorialDPController, self).__init__(self) self._Kp = np.zeros(shape=(6, 6)) self._Kd = np.zeros(shape=(6, 6)) self._Ki = np.zeros(shape=(6, 6)) self._int = np.zeros(shape=(6,)) self._error_pose = np.zeros(shape=(6,)) # Do the same for the other two matrices if rospy.get_param('~Kp'): diag = rospy.get_param('~Kp') if len(diag) == 6: self._Kp = np.diag(diag) print 'Kp=\n', self._Kp else: # If the vector provided has the wrong dimension, raise an exception raise rospy.ROSException('For the Kp diagonal matrix, 6 coefficients are needed') if rospy.get_param('~Kd'): diag = rospy.get_param('~Kd') if len(diag) == 6: self._Kd = np.diag(diag) print 'Kd=\n', self._Kd else: # If the vector provided has the wrong dimension, raise an exception raise rospy.ROSException('For the Kd diagonal matrix, 6 coefficients are needed') if rospy.get_param('~Ki'): diag = rospy.get_param('~Ki') if len(diag) == 6: self._Ki = np.diag(diag) print 'Ki=\n', self._Ki else: # If the vector provided has the wrong dimension, raise an exception raise rospy.ROSException('For the Ki diagonal matrix, 6 coefficients are needed') self._is_init = True def _reset_controller(self): super(TutorialDPController, self)._reset_controller() self._error_pose = np.zeros(shape=(6,)) self._int = np.zeros(shape=(6,)) def update_controller(self): if not self._is_init: return False if not self.odom_is_init: return self._int = self._int + 0.5 * (self.error_pose_euler + self._error_pose) * self._dt self._error_pose = self.error_pose_euler tau = np.dot(self._Kp, self.error_pose_euler) + np.dot(self._Kd, self._errors['vel']) + np.dot(self._Ki, self._int) self.publish_control_wrench(tau) if __name__ == '__main__': print('Tutorial - DP Controller') rospy.init_node('tutorial_dp_controller') try: node = TutorialDPController() rospy.spin() except rospy.ROSInterruptException: print('caught exception') print('exiting')学者个代码设计思路和设计方法,设计一个nmpc控制器,输出是六维的
最新发布
05-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值