一次失败的积分 A failed Integration

Recently, there is a funny photo circulates in the WeChat.

Integration for Wi-Fi password

As one can see, the integration is complicated, and it really got me. I have contacted two other friends for advice. However, we both lost the ability to compute this integration manually.

I tried with Sympy in IPython. Still, we got no answer.

Finally, one of my colleges told me that it obviously is zero. Because the function to be integrated is an odd function and the limits are symmetric.

I drew all functions from basics with SymPy and IPython. They all make sense. Only the integration can not be done.

The calculation in the github: http://nbviewer.jupyter.org/github/quxiaofeng/quxiaofeng.github.io/blob/master/ipynb/WiFi-pass.ipynb

Youtube 上放出的 JuliaCon 2016 (MIT)视频与简介

公开的讲座视频(来自于 Youtube 上的 JuliaLanguage: https://www.youtube.com/user/JuliaLanguage

  1. Juno, a Julia IDE | Mike Innes
  2. Quantitative Macroeconomics | Tom Sargent
  3. Julia and R | Douglas Bates
  4. Finding Julia Bugs Automatically | Robert Feldt
  5. Music Information Retrieval in Julia | Jong Wook
  6. NetworkViz.jl | Abhijith Anilkumar
  7. Parallel Computing Workshop
  8. Using Julia as a Quick and Dirty Code Generator | Arch D. Robison
  9. Plots with Plots.jl | Tom Breloff
  10. Patterns for building web apps with Escher.jl | Shashi Gowda
  11. State of the GR Framework | Josef Heinen
  12. ThreeJS.jl | Rohit Varkey Thankachan
  13. TypedTables.jl: Type-safe Data Containers | Andy Ferris
  14. Minecraft and LEDs : Julia on the Raspberry Pi | Avik Sengupta
  15. VinDsl.jl: Fast and Furious Statistical Modeling | John Pearson
  16. Least Squares with High-Dimensional Variables | Matthieu Gomez
  17. Overview of the new JuliaBox | Nishanth Kottary
  18. Towards a Nonparametric Belief Solution for Factor Graphs | Dehann Fourie
  19. HPAT.jl - Easy and Fast Big Data Analytics | Ehsan Totoni
  20. DataStreams.jl: Workflows for Data Processing Tasks | Jacob Quinn
  21. Autonomous Driving for RC Cars with ROS and Julia | Jon Gonzales
  22. OnlineStats.jl: Statistics for Streaming and Big Data | Josh Day
  23. Introduction to Writing High Performance Julia | Arch D. Robison
  24. A Word From Sponsors
  25. Unums 2.0 | Jason Merrill

PS. 百度云上目录分享总是失败,只能单独文件分享。

简介

2016 年 Julia 大会的视频已经上传到 Youtube 上了。这里给出列表,简介与我自己的一点评论。

1. Juno, a Julia IDE | Mike Innes

Youtube: https://www.youtube.com/watch?v=yDwUL3aRSRc
百度盘: http://pan.baidu.com/s/1mhDqXAC 密码:zx73

2. Quantitative Macroeconomics | Tom Sargent

Youtube: https://www.youtube.com/watch?v=KkKBwJkYgVk
百度盘: http://pan.baidu.com/s/1slOmzPb 密码:zo7q

3. Julia and R | Douglas Bates

Youtube: https://www.youtube.com/watch?v=oOd3JnEm3c8
百度盘: http://pan.baidu.com/s/1o8ersue 密码:tym8

4. Finding Julia Bugs Automatically | Robert Feldt

Youtube: https://www.youtube.com/watch?v=vW59MtN33pM
百度盘: http://pan.baidu.com/s/1miNGEPq 密码:sa4b

5. Music Information Retrieval in Julia | Jong Wook

Youtube: https://www.youtube.com/watch?v=IOVrVOacLP8
百度盘: http://pan.baidu.com/s/1jHCFmB0 密码:kvc0

6. NetworkViz.jl | Abhijith Anilkumar

Youtube: https://www.youtube.com/watch?v=kY5te9NwXo8
百度盘: http://pan.baidu.com/s/1jIKwXAQ 密码:uqdz

7. Parallel Computing Workshop

Youtube: https://www.youtube.com/watch?v=euZkvgx0fG8
百度盘: http://pan.baidu.com/s/1hrF1glm 密码:7q25

五个主讲,五个部分

  • Andreas Noack - DArray DistributedArrays.jl
  • Amit Murthy - Asimple @parallel example and low level @sync and @async
  • LLiyan Zarov - Evoqos and Juliabox
  • Ranjan Anantharaman - ArrayFire
  • Shashi Gowda - ComputeFramework

Andreas Noack - DArray DistributedArrays.jl

8. Using Julia as a Quick and Dirty Code Generator | Arch D. Robison

Youtube: https://www.youtube.com/watch?v=02NkiDoRDCU
百度盘: http://pan.baidu.com/s/1o8lINuM 密码:yvhp

主讲是 Intel 的,用 Julia 做了个超级简洁的汇编代码生成器。

这个工作,充分体现了 Julia 的灵活性。直接利用 Julia 的逻辑和代码,来写汇编程序,非常有趣。

讲座中的例子,Julia 代码反而比汇编代码行数多,也清楚地展示了为了清晰的逻辑付出的代价。

9. Plots with Plots.jl | Tom Breloff

Youtube: https://www.youtube.com/watch?v=LGB8GvAL4HA
百度盘: http://pan.baidu.com/s/1qXUJIsW 密码:q0sw

10. Patterns for building web apps with Escher.jl | Shashi Gowda

Youtube: https://www.youtube.com/watch?v=UBz2Ixvlydo
百度盘: http://pan.baidu.com/s/1o8b97lw 密码:zts5

11. State of the GR Framework | Josef Heinen

Youtube: https://www.youtube.com/watch?v=HvhjogGF6aQ
百度盘: http://pan.baidu.com/s/1dE8LCbR 密码:a4px

12. ThreeJS.jl | Rohit Varkey Thankachan

Youtube: https://www.youtube.com/watch?v=_zW3CQQG7E8
百度盘: http://pan.baidu.com/s/1eSG1vxg 密码:69ul

13. TypedTables.jl: Type-safe Data Containers | Andy Ferris

Youtube: https://www.youtube.com/watch?v=yAwaxzggTNI
百度盘: http://pan.baidu.com/s/1jIhNkhw 密码:fufm

14. Minecraft and LEDs : Julia on the Raspberry Pi | Avik Sengupta

百度盘: http://pan.baidu.com/s/1miHBbHu 密码:n1bw

15. VinDsl.jl: Fast and Furious Statistical Modeling | John Pearson

百度盘:

16. Least Squares with High-Dimensional Variables | Matthieu Gomez

百度盘:

17. Overview of the new JuliaBox | Nishanth Kottary

百度盘:

18. Towards a Nonparametric Belief Solution for Factor Graphs | Dehann Fourie

百度盘:

19. HPAT.jl - Easy and Fast Big Data Analytics | Ehsan Totoni

百度盘:

20. DataStreams.jl: Workflows for Data Processing Tasks | Jacob Quinn

百度盘:

21. Autonomous Driving for RC Cars with ROS and Julia | Jon Gonzales

百度盘:

22. OnlineStats.jl: Statistics for Streaming and Big Data | Josh Day

百度盘:

23. Introduction to Writing High Performance Julia | Arch D. Robison

百度盘:

24. A Word From Sponsors

百度盘:

25. Unums 2.0 | Jason Merrill

Youtube: https://www.youtube.com/watch?v=t-LIXuhUes8
百度盘: http://pan.baidu.com/s/1mixsjhA 密码:sj6q

这个讲座主要介绍一个基础的数论和浮点计算工具。在遇到 0 点的时候,计算机总是会有问题,例如“+0”、“-0”的问题(就是很小很小的正数和负数),在整数附近的浮点数也会遇到同样的问题。

这个讲座的作者 Jason Merrill 的主业是开发维护一个中小学数学可视化项目。就是给定一个函数,画出函数图像。说起来简单,但经常会遇到各种数值计算的问题。就是跨零点和函数连续性的问题。

解决的方法,主要是 Unums 2.0 这个计算机数字表示工具。Unums 1.0 来自一本《The End of Error: Unum Computing》(作者 John I. Gustafson)。有关 Unums 2.0 的书还没发表。而本讲座的主讲开发了一个弱化的 Pnums.jl 包( https://github.com/jwmerrill/Pnums.jl )来做这件事。

Unums 的作者 Dr. Gustafson(古斯塔夫逊博士?)在 2015 年有个介绍的讲座,简洁扼要地介绍了有关 Unums 的工作( http://arith22.gforge.inria.fr/slides/06-gustafson.pdf )。简单讲,Unums 1.0 表达出精确值之间的开集。这样有理集(实数集?没看到无理数的例子)可以精确描述。Unums 2.0 在表达有理数集时,把正负无穷合并为一个点。这样实数集就不是一个两端无穷远的直线数轴,而是一个在正负无穷远点相接的有理数环。为此,引入一个倒数表达法。即无穷大表达为零的倒数 /0。所有数的倒数都可以精确表达 /3、/4=0.25、/5=0.2 等。这种方法表达数值的精确度,直接依赖于使用的二进制字长,最短三位(3bit)就可以(pb3)。

这个工具还是非常有用的。对于主讲的主业,函数可视化来说,一个函数可视化工具必然要把计算细节隐藏起来。对于传统的计算机教育,面向大学生或以上,在对于数值计算有了一定理解之后,对于计算误差还是可以理解的。但现在不论是数学教育还是计算机教育都低龄化、普及化、义务教育化,非常需要能够完美隐藏这些丑陋细节的可视化工具。

对于数值计算的基础,说起来也确实惭愧,这么多年的计算机发展,基本的浮点数的精度还是一个经常遇到很尴尬,还是一个影响严重的问题。这点真的需要从基础上做出改进。一个直接的问题,就是矩阵运算中解的数值误差,对于工程应用影响广泛。从这一点说,Unums 真的是一个革命性的发明。我非常好奇 Unums 对优化、对数值计算、对矩阵分解的影响。也许会为工程计算、机器学习带来革命性的性能效率提升。

主讲最后总结 Julia 简单的泛型编程、方便的运算符重载,直接的上层与低层的沟通使得 Pnums.jl 这种针对低层的浮点数表达的包的开发变得很容易。

孙子兵法

我的父亲在新华书店工作,家里最不缺的就是书。从很小的时候我就开始看书,喜欢看书,以看书为玩乐。家里的书多,我也不挑食,所以什么书都看,圣经、论语、故事会,来者不拒。孙子兵法自然也是早早的就读过了。但全文读下来也只记得一句话,“以正合,以奇胜。”也许也是跟个人性格相关,喜欢正面挑战,却又每每用一些奇技淫巧解决问题。正应了那句话,人总是以自己的背景去学习新的知识。

Read More

快樂唱歌學法語

刚报了个班,”快樂唱歌學法語—日常用語篇”(Lets Sing a Happy French Song - for Daily Living)。感觉挺有效的。原本已经”很熟”的基础语法和简单单词,说不出来,但唱的就容易点。两个老师,协同上课,一个是专注语言,一个专注歌唱。一方面纠正语音,另一方面学习唱歌技巧,挺有意思的。

Read More