Skip navigation.

Posts tagged with "numerical"

矩阵存储

,

一个 real(8) 或者 double precision 变量占用8字节

一个 real(8) 类型,大小10000x10000的矩阵,占用的存储空间就是

10000**2*8/1024/1024 ~= 762.94Mbyte


工程分析中用到的矩阵往往是具有特殊性质的,比如对称、稀疏、N对角等等。如果将矩阵中所有元素一一记下,包括有意义的和无意义的(零元素),就会浪费太多空间,当然目前的计算机内存价格已经很低了,对于小规模的矩阵来说根本不需要考虑这个问题。但是以上面那个矩阵为例,对于个人计算来说,它的规模也不算小了,如果利用其可能的特殊性质进行存储和处理,往往会事半功倍。

如果是对称矩阵可以取上三角阵或者下三角阵存储,可以节省大于一半的空间。
如果是稀疏矩阵,只需要记录各非零元素的值及其所在的行列位置。
如果是N对角矩阵,只需按照分别记录各个对角线的位置以及其中的元素值即可。

由于矩阵数值运算方法和存储格式相关,所以具体使用的存储格式应该根据问题不同、求解器不同而灵活变通。

数值蟒

, , ,

因作课题的需要,使用python作为粘合剂连接多个程序,包括商业的、开源的和自己写的。其中需要对中间数据进行处理作一些数值计算,这个工作可以在fortran中完成的,但是需要将数据从python程序流中导出导入,显得麻烦。所以还是选择SciPy, NumPy来做,它们已经把矩阵这种数值计算常用的对象包装完整,并在此基础上封装了多个开源的数值计算包比如blas, linalg, fitpack 等等,对付一般的计算足够用了。

之前对于 NumPy, Numeric, Numarray, Scipy 之间的关系非常困惑,在看了History of Scipy 之后,有了一些大致的了解,看来 NumPy+SciPy 将是数值蟒的首选了。

Elasticity Simulator

,

http://www.cs.berkeley.edu/~flab/elas/elasticity.html

a Java applet demonstrating large deformation non-linear isotropic elasticity with inertial effects
by François Labelle

keyword: nonlinear; newmark; newton-raphson

There's another intresting page about Unfolding Polyhedra. very nice animations :smile: check here