零基础学编程041:欧拉公式的几何意义
时间:2022-05-03
本文章向大家介绍零基础学编程041:欧拉公式的几何意义,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
欧拉公式号称是最美的出自上帝之手的数学公式,即
,这个公式里 e 和 π 都是无理数,i 是 -1 的平方根,是一个虚数,0和1是最简单的整数,欧拉公式把它们联系在一起。
下面我们来理解一下它的几何含义,并用Python中的小海龟把它画出来。
利用级数展开的公式可以有下面的推导过程:
因为这个数列中含有虚数 i,所以可以把上面的每一项看作是复平面上的一个向量。
第0项:1,表示从(0, 0)点出发沿x轴前进1个单位。
第1项:iπ ,把其中的 i 理解为逆时针旋转90度,这样就是在垂直方向上前进 π 个单位。
第2项,再旋转90度,前进 (π*π / 2) 个单位。
……
最后这个无数级数的和为(-1),表示最后逼近(-1, 0)这个点。神秘的欧拉公式的几何含义就是这么简单!
用小海龟画出欧拉公式的几何含义
先复习一下《零基础学编程014:小海龟做画》这一课中的画图基本命令:
import turtle
turtle.forward(100) # 前进100个单位
turtle.left(90) # 左转90度
第0项:
turtle.forward(1)
第1项,这里用到了数学包math中的pi,你不用写3.1415926了:
turtle.left(90)
turtle.forward(math.pi)
第2项,还记得运算符 ** 是什么意思吧?
turtle.left(90)
turtle.forward((math.pi ** 2) / 2)
第3项,分母是3的阶乘,需要用到数学函数math.factorial():
turtle.left(90)
turtle.forward((math.pi ** 3) / math.factorial(3))
现在我们已经找到规律了,假设我们循环16次,就是range(1,17),每一层的循环只需要执行这两步就可以了:
for i in range(1,17) :
turtle.left(90)
turtle.forward((math.pi ** i) / math.factorial(i))
这里小海龟的默认画布是以像素为单位的,前进1、2个像素看不出效果,需要把画布的坐标范围设置一下,在图形世界里称为世界坐标系。下面的语句表示画布的左下角坐标是(-5,-5),右上角坐标是(5,5):
setworldcoordinates(-5, -5, 5, 5)
最后的代码是这样的:
import turtle
import math
setworldcoordinates(-5, -5, 5, 5)
turtle.forward(1)
for i in range(1,17) :
turtle.left(90)
turtle.forward((math.pi ** i) / math.factorial(i))
我加上了坐标系和两个参考点,最后的图形是这样的:
小海龟从原点出发,每走一次,左转90度,很快就收敛到(-1, 0)这一点。
--- END ---
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python导入库的具体方法
- PHP+jQuery实现双击修改table表格功能示例
- 基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
- Laravel推荐使用的十个辅助函数
- PHP htmlentities()函数用法讲解
- thinkphp5框架API token身份验证功能示例
- PHP基于mcript扩展实现对称加密功能示例
- php和asp语法上的区别总结
- 解决python pandas读取excel中多个不同sheet表格存在的问题
- .img/.hdr格式转.nii格式的操作
- PHP实现的操作数组类库定义与用法示例
- python使用nibabel和sitk读取保存nii.gz文件实例
- PHP从尾到头打印链表实例讲解
- python如何写try语句
- python怎么判断素数