> Когда учился в ВУЗе, для диплома делал кое-какие задачки в Octave, Scilab
> и MATLAB (в основном задачи заключались в решении прорвы систем линейных
> и почти линейных уравнений). Везде подбирался лучший алгоритм. Так вот, MATLAB
> справлялся с задачей за 6-10 минут, Scilab - за 20-30, а
> Octave за 3 часа, причем неправильно (какая-то несовместимость с MATLAB приводила Очевидно, что расчет не был векторизован, тогда так и есть. Векторизованное не только быстрее, но и лаконичнее, и возможностей ошибиться в куче индексов меньше.
> Про дополнителтные модули MATLAB я молчу - Octave не реализует
Да с модулями все хуже, но только из коробки вот (и конечно еще есть, + от матлаба многое годится)
GNU Octave, version 7.3.0
>> pkg list
Package Name | Version | Installa
tion directory
---------------------+---------+---------
--------------
audio | 2.0.5 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\audio-2.0.5
biosig | 2.4.3 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\biosig-2.4.3
communications | 1.2.4 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\communications-1.2.4
control | 3.4.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\control-3.4.0
data-smoothing | 1.3.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\data-smoothing-1.3.0
database | 2.4.4 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\database-2.4.4
dataframe | 1.2.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\dataframe-1.2.0
dicom | 0.5.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\dicom-0.5.0
financial | 0.5.3 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\financial-0.5.3
fits | 1.0.7 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\fits-1.0.7
fuzzy-logic-toolkit | 0.4.6 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\fuzzy-logic-toolkit-0.4.6
ga | 0.10.3 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\ga-0.10.3
general | 2.1.2 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\general-2.1.2
generate_html | 0.3.3 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\generate_html-0.3.3
geometry | 4.0.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\geometry-4.0.0
gsl | 2.1.1 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\gsl-2.1.1 image | 2.14.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\image-2.14.0
instrument-control | 0.8.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\instrument-control-0.8.0
interval | 3.2.1 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\interval-3.2.1
io | 2.6.4 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\io-2.6.4
linear-algebra | 2.2.3 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\linear-algebra-2.2.3
lssa | 0.1.4 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\lssa-0.1.4
ltfat | 2.3.1 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\ltfat-2.3.1
mapping | 1.4.2 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\mapping-1.4.2
matgeom | 1.2.3 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\matgeom-1.2.3 miscellaneous | 1.3.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\miscellaneous-1.3.0
nan | 3.7.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\nan-3.7.0
netcdf | 1.0.16 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\netcdf-1.0.16
nurbs | 1.4.3 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\nurbs-1.4.3
ocs | 0.1.5 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\ocs-0.1.5
octproj | 2.0.1 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\octproj-2.0.1
optim | 1.6.2 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\optim-1.6.2
optiminterp | 0.3.7 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\optiminterp-0.3.7
quaternion | 2.4.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\quaternion-2.4.0
queueing | 1.2.7 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\queueing-1.2.7
signal | 1.4.3 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\signal-1.4.3
sockets | 1.4.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\sockets-1.4.0
sparsersb | 1.0.9 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\sparsersb-1.0.9
splines | 1.3.4 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\splines-1.3.4 statistics | 1.5.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\statistics-1.5.0
stk | 2.7.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\stk-2.7.0
strings | 1.3.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\strings-1.3.0
struct | 1.0.18 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\struct-1.0.18
symbolic | 3.0.0 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\symbolic-3.0.0
tisean | 0.2.3 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\tisean-0.2.3
tsa | 4.6.3 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\tsa-4.6.3
video | 2.0.2 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\video-2.0.2
windows | 1.6.3 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\windows-1.6.3
zeromq | 1.5.5 | C:\octave-7.3.0-w64\mingw64\share\octave\packages\zeromq-1.5.5
> борятся за полную совместимость, но производительность у него нулевая, может стоило
> бы немного отойти от совместимости и поднять с колен (ну или из лежачего положения скорее) производительность?
Если не хочется векторизовать вычисления, то или матлаб или джулиа. Так то у питона без векторизующего numpy те же самые проблемы со скоростью вычислений, но все довольны же.