雪冬 发表于 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算法

还是算法厉害。
页: 1 [2] 3
查看完整版本: 小实验:一个最小的Python