Category Archives: Python

两张照片相互卷积可以得到与它们都相似的图片,是吗?

在这里我想继续探讨“卷积”这一数学工具。主要是为了验证网络上部分“科普”文章所讲的“……卷积甚至可以用在考试作弊中,为了让照片同时像两个人,只要把两人的图像卷积处理即可……”这一说法。不同于证明一件事情的难度,证伪一件事情总是相对简单的,尤其当所需要的所有数据和工具都可以在编程实现时。所谓实践出真知,这里我们就找两张照片,来做卷积试一试吧! 继续阅读

发表在 绘图, Data processing, Python, 卷积, 数值计算 | 一条评论

几个特征值求解函数的性能比较

正如在”scipy和numpy中与特征值问题相关的函数”谈到的,Python的常用数值计算库numpy和scipy中一共有好几个功能和限制稍有不同的特征值问题求解函数,今天我们用一个8×8的“特殊”矩阵(Rosser矩阵)来看看这些函数的计算速度和结果精度如何。 继续阅读

发表在 特征值问题, Dynamics, Python, 数值计算 | 留下评论

guidata库使用手记:快速定制科学计算程序的图形界面

(原文写于2011-9-3 ,发布于振动论坛,算法及编程语言分区)
(重编辑于2015-11-15)

今天说说用于快速开发简单图形界面的guidata库。和大多数的Python库一样,guidata有自己的技术支持页面和实例完善的帮助文档,然而文档毕竟是死的,只有使用起来更能体会其中的奇技淫巧。本文将通过一个数据处理的例子展示如何使用guidata。然后通过另一个例子说明guidata的一些特性是如何通过Python强大的面对对象机制达到的。 继续阅读

发表在 设计模式, Python, 图形界面 | 留下评论

互相关(cross-correlation)及其在Python中的实现

(原文写于2013-1-31,发布于振动论坛,信号处理方法分区)
(重编辑于2015-11-16,修正了一些概念错误,增加了一些讨论)

在这里我想探讨一下“互相关”中的一些概念。正如卷积有线性卷积(linear convolution)和循环卷积(circular convolution)之分;互相关也有线性互相关(linear cross-correlation)和循环互相关(circular cross-correlation)。线性互相关和循环互相关的基本公式是一致的,不同之处在于如何处理边界数据。其本质的不同在于它们对原始数据的看法不同。通过这篇文章,我想整理一下相关概念,并给出示例。 继续阅读

发表在 相关, 傅利叶变换, 卷积, 数值计算 | 2条评论

scipy和numpy中与特征值问题相关的函数

(原文写于2013-1-4 ,发布于振动论坛,算法及编程语言分区)
(重编辑于2015-11-15,修正了一些错误,增补了一些讨论)

结构力学、固体力学和声学中的很多方面都对应于特征值问题的计算。比如自由振动、频散曲线、模型压缩、阻尼识别等。有些方面对应于标准特征值问题(复模态分析、频散曲线计算的传递矩阵形式等),有些对应于广义特征值问题(无阻尼模态,频散曲线计算的改进形式等)。在一些场合,还需要计算左特征值问题,例如不对称非比例阻尼在复模态分析中的处理。同时,有些问题中只涉及实数矩阵,另一些问题涉及复数矩阵。同时还涉及矩阵是否对称、是否正定,其求解结果是否需要所有特征值等等特定考虑。在Python的scipy以及numpy库中一搜,你会发现有许多可以计算特征值问题的函数,它们各自的功能、参数和返回值形式都各有异同。因此我做了一个表格,将这些函数整理起来,方便查询。 继续阅读

发表在 特征值问题, 数值计算 | 一条评论

关于OOP中若干特性的思考

(原文写于2010-11-6,发表在振动论坛,算法及编程语言分区)
(重编辑于2015-11-13,在vs2010平台上重新运行了这些C++代码,依然有效)

由于最近在学习Python,了解了很多所谓Python的新特性,无非是更加方便和精确地实现了面对对象(OOP)编程的精髓。有些网友甚至急匆匆地就拿Python与各种语言作比较了,我想说的是,并非C++不能这样做,是因为它不必这样做(关于C++的四种编程层面,请参考《Effective C++》,面对对象编程,只是其中的一种)。 继续阅读

发表在 C++, 设计模式, Python | 留下评论