几个相似的数学软件

本文对比了MATLAB、GNU Octave、SciLab和FreeMat四种数值计算工具的特点与优劣。MATLAB作为行业标准,在数值计算方面表现出色,而GNU Octave、SciLab和FreeMat作为开源替代品,提供了与MATLAB高度兼容的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. MATLAB

    官方网站http://www.mathworks.com/, 社区http://www.mathworks.com/matlabcentral/里有很多好东东。它是数值计算的大哥大,无论从速度上还是从易用性上来说都没得说。在教学和科研院所应用非常广泛,只要是做数值计算的都会想到它。用的人越多和相关的软件就越丰富相辅相成,使得这个软件变得越发强大。比如现在流行的GPU在Matlab上就有两个好用的软件:一个商业http://www.accelereyes.com/,一个免费http://gp-you.org/。只要你的电脑上配备了Nvidia的支持CUDA计算的卡,就可以跑了。当然MATLAB2010B也支持GPU计算,不过要求计算能力是1.3(支持双精度)的,当前相当部分主流的卡不支持。不过上面的两个软件都是可以的。MATLAB给人的感觉更像一个工具箱,虽然它也支持编程,编程范式有过程式和面向对象,还有一些函数式编程的元素。集成众家之长,方便快捷。因为它与C/C++,Fortran,Java,C#等的接口齐全,集成起来很方便,这也大大丰富了第三方软件的开发。说了那么多优点,它也是有缺点的。用它提供的M语言编写计算密集型的数值计算类任务是没得说,但要是分支判断,数组等元素不同目的的调用特别多的非数值类算法的实现效率就不怎么高。因为它是一个带即时编译的动态解释型语言,所以有这些缺点也许是正常的。遇到这种情形的时候我们一般就要借助于其它语言了,比如C/C++。再有一个缺点是其它语言编译后得到mex文件的调用速度特别慢,函数即使什么都不做,一般需要几十微秒(调用mex文件本身的耗时),对于频繁调用的情形就不能忍受,比如调用10万次,调用时间就费好几秒,反观计算的时间还用不上1秒钟。再对比一下Matlab的m函数文件,调用速度比mex快上百倍,吐血!这个缺点迫使我们整个功能全部用C/C++等其它编译语言来实现。如果调用速度快的话,我们只需要关键部分用C/C++等实现,整个调度还是在Matlab中来完成。这样就会减少对外部语言的依赖,尽可能多的任务在Matlab中实现,从而提高工作的效率。

2. GNU Octave

    GNU Octave 是一个高级的解释语言,起初的目的通Matlab一样也是数值计算。它提供了针对线性和非线性系统数值解,当然还有其它一些数值计算问题。它也提供了数据可视化的功能。它与Matlab非常相像,两者之间易于移植。支持Linux,Mac OS X,Sun Solaris 和Windows等众多的操作系统。它是开源的。官网http://www.gnu.org/software/octave/

3. SciLab

    SCILAB是以法国国立信息与自动化研究院(INRIA)的科学家为主开发的“开放源码”式科学计算自由软件。官网:http://www.scilab.org/

 

4. FreeMat

    FreeMat是一个快速的工程、科学计算原型开发和数据处理的环境,与Matlab和IDL等商业软件比较像,95%兼容Matlab。FreeMat遵循GPL license。值得一提的是FreeMat支持线程编程,这为多核CPU上的编程提供了方便。官网:http://freemat.sourceforge.net/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值