Monthly Archives: 2015年11月

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

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

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

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

论人情

四川重庆的本土笑星李伯清老师在二十年前的段子中就说过关于跟人打招呼时的一些小技巧。比如发现街坊迎面走来,自然是要招呼一下的,只说“你好”或者“早上好”之类不够热络,况且时间太短,不足以覆盖两人相向而行的时间段。

在这里大家可以算一下,你和街坊王大爷相互发现的距离至少是十米吧,人普通步行的速度是6公里每小时,也就是每秒1.67米,那么你们从彼此发现到错过的时间约三秒,这三秒钟就各自说一句“你好”确实显得太空旷。 继续阅读

发表在 随笔, 龙门阵 | 留下评论

互相关(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库中一搜,你会发现有许多可以计算特征值问题的函数,它们各自的功能、参数和返回值形式都各有异同。因此我做了一个表格,将这些函数整理起来,方便查询。 继续阅读

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

有限元编程中关于边界条件的处理

(原文写于2015-4-27 ,发布于振动论坛,算法及编程语言分区)
(重编辑于2015-11-13)

在有限编程的一般流程中,在获得原始总刚度矩阵之后,就是引入边界条件了。力边界条件直接表示在激振力向量中,而对于位移边界条件的处理较为复杂。位移边界条件的处理方法有万能钥匙型的“罚函数法”和“拉格朗日乘子法”,以及处理特定情形的“置大数法”和“划0置1”法。而且对于静力学分析,模态分析,瞬态响应分析和谐响应分析,在一些细节上的处理稍有不同。在编程中,可能遇到的技术难点是:1)从理论上,应该选择哪种技术来处理边界条件按更合适?2)在技术细节上,边界条件的处理应该在前处理器中实现,还是在求解器中实现?在这里我打算根据个人的一些经验谈一谈这些问题,抛砖引玉。 继续阅读

发表在 Dynamics, 有限元 | 留下评论

关于OOP中若干特性的思考

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

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

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