雪冬
发表于 2018-6-19 21:52:42
本帖最后由 雪冬 于 2018-6-19 22:02 编辑
ace919 发表于 2018-6-19 18:58
你这个收敛的太慢太慢了。有很多收敛速度快的公式,比如:
pi = 16 * arctan(1/5) - 4 * arctan(1 / 239 ...
谢谢指导。这个需要展开arctan() :)
雪冬
发表于 2018-6-19 22:35:08
Python命令行模式,做计算器很好用。也可以在学习Python时随时验证各种语句。比如计算2的1000次方。结果如下图。
blc220
发表于 2018-6-19 22:56:29
python用在单片机上,网上有很多的标准C源码;一般是将python的源码和你的源代码统一编译,使用C和python互相调用的方式运行。
雪冬
发表于 2018-6-19 23:22:43
blc220 发表于 2018-6-19 22:56
python用在单片机上,网上有很多的标准C源码;一般是将python的源码和你的源代码统一编译,使用C和python互 ...
原来是这样。多谢!:)
ace919
发表于 2018-6-20 06:46:48
雪冬 发表于 2018-6-19 21:51
是不是带个操作系统,情况会好些?实现起来会容易些?您说的两种系统带有操作系统么?
带操作系统当然好,文件啊,设备啊,内存分配等等基础都有了,不过对资源少的单片机,往往不现实。
Arduino本身不带操作系统,树莓派带Linux
ace919
发表于 2018-6-20 06:50:50
雪冬 发表于 2018-6-19 21:52
谢谢指导。这个需要展开arctan()
你那个算圆周率的程序就是
pi = 4 * arctan(1)
的展开式
ace919
发表于 2018-6-20 07:29:35
雪冬 发表于 2018-6-19 17:27
运行结果,
D:\0000\python>python 004.py
3.14159765361
下面是公式 pi = 16 * arctan(1/5) - 4 * arctan(1 / 239) 的Python计算程序:
# Calculate PI, 2018-6-20
# pi = 16 * arctan(1/5) - 4 * arctan(1 / 239)
P5_2 = 1.0 / (5.0 * 5.0)
P239_2 = 1.0 / (239.0 * 239.0)
t5_2 = 1.0 / 5.0
t239_2 = 1.0 / 239.0
s5 = t5_2
s239 = t239_2
for i in range(2, 20):
t5_2 = -t5_2 * P5_2
s5 = s5 + t5_2 / ( 2 * i - 1.0)
t239_2 = -t239_2 * P239_2
s239 = s239 + t239_2 / ( 2 * i - 1.0)
pi_ = 16.0 * s5 - 4.0 * s239
print(pi_)
运行结果:
3.141592653589794
只用20次循环,就精确到小数点后14位。对比你那个是20万次循环,精确到小数点后5位
zy_tu
发表于 2018-6-20 08:23:54
雪冬
发表于 2018-6-20 08:52:04
ace919 发表于 2018-6-20 07:29
下面是公式 pi = 16 * arctan(1/5) - 4 * arctan(1 / 239) 的Python计算程序:
高! :handshake
雪冬
发表于 2018-6-20 09:42:55
ace919 发表于 2018-6-20 06:46
带操作系统当然好,文件啊,设备啊,内存分配等等基础都有了,不过对资源少的单片机,往往不现实。
Ardu ...
看来对单片机,最实用的语言还是 C 。
雪冬
发表于 2018-6-20 09:54:54
ace919 发表于 2018-6-20 07:29
下面是公式 pi = 16 * arctan(1/5) - 4 * arctan(1 / 239) 的Python计算程序:
tanα=1/5
tanβ=1/239
tan2α=5/12
tan4α=120/119
tan(4α-β)=1
4α-β=π/4
确实如此。
ace919
发表于 2018-6-20 10:11:34
雪冬 发表于 2018-6-20 09:42
看来对单片机,最实用的语言还是 C 。
确实如此,特殊情况(因为优化速度等),再加点汇编。
若将来单片机资源丰富了,也有可能Python会成为单片机主流编程语言之一
ace919
发表于 2018-6-20 10:15:32
雪冬 发表于 2018-6-20 09:54
tanα=1/5
tanβ=1/239
应该是这样的:handshake
不过我自己没演算过
小徒弟下山
发表于 2018-7-12 10:37:56
语法VS算法;P
雪冬
发表于 2018-7-12 10:58:50
小徒弟下山 发表于 2018-7-12 10:37
语法VS算法
还是算法厉害。