Octave是一种编程语言,旨在解决线性和非线性的数值计算问题。Octave为GNU项目下的开源软件,早期版本为命令行交互方式,4.0.0版本发布基于QT编写的GUI交互界面。Octave语法与
Matlab语法非常接近,可以很容易的将matlab程序移植到Octave。同时与C++,QT等接口较Matlab更加方便。
系统性开发则是由John W. Eaton在1992年接手才开始的。 第一个
alpha测试版是在1993年1月4日发布,1.0稳定版则是在1994年2月17日发布。
其名称与音乐上的八度没有直接关系。该软件乃是以一位早期
开发群的成员,同时也以敏于处理数值逼近问题著称的前化工系教授奥克塔夫·列文斯比尔(Octave Levenspiel)之名命名的。
Octave的核心由一组内置的(built-in)矩阵运算语言(如四则运算)和可加载函数(Loadable Function)组成(例如求矩阵逆inv),其余能在核心语言之上实现而且性能开销不会显著增加的函数调用则一般以Octave
脚本的形式存在(例如求解方程组的fsolve函数)。Octave
解释器会自动处理各种不同类型的调用。
它的语法基本上与Matlab一致,严谨编写的代码应同时可在Matlab及Octave运行。但若调用了Matlab工具包,则一般不能直接在Octave上运行,因为Octave附带的工具包与Matlab并不兼容。
由于Octave是以
GNU通用公共许可证许可,所以可以自由地复制、流通与使用。Octave可在大部分的
类Unix操作系统中运行,亦可在
Microsoft Windows中运行。在
Mac OS X中运行也是可能的,但设置较为复杂。
Octave最初便是模彷
Matlab而设计,自然与
Matlab有许多相同的功能。这也使得一部分Matlab程序可以直接或经过少量修改在Octave上运行,一些软件开发小组也使用两者兼容的语法,直接开发可以同时在Matlab和Octave使用的程序。