.
你想要的无非就是支持类似于 C=A+B,C=FFT(A) 这样把矩阵作为变量的语句的计算工具啦?
常见的能满足这种矩阵运算功能的,除了3M(Matlab、Mathematica、Maple)之外,
最主要也就是两类编程语言: C++ 和 Fortran90/95/2003
Fortran90/95 最大的特色就是支持矩阵运算,再加上相应的函数库,比如IMSL for F90,
就能轻松满足你的所有要求;当然,其实你也可以用C++ 加上 IMSL for C++,
利用C++的矩阵运算模板。不过F90/95做数值计算比C++更专业、更快,最重要的是——
+++++++++++++++++++++++++++++
| 语句和C++重载运算符一样简洁! |
+++++++++++++++++++++++++++++
而C的速度和Fortran90/95有得一拼,但是C做矩阵运算的语句太繁琐。
举例来说(A、B、C、W、Z均为矩阵或者叫二维数组):
F90/95的矩阵运算直接写 C=A+B,
数乘矩阵:C=5*A
带IMSL的Fortran95做FFT的语句:W=FFT(Z)
逆FFT的语句:Z=IFFT(W)
其他还比如 C=A .x. B ,矩阵乘法
C= .i. A ,矩阵求逆
C= A .xt. B 或写成 A .x. (.t. B) ,矩阵A乘以B的转置
总之,不要以为Fortran就是古老的Fortran77,
现代化的Fortran90/95早就是一个很简明高效的语言了,
Fortran2003甚至支持完全的面向对象程序设计(有点太赶时髦了)。
.
要不有maple
我觉得Mathematica很好,界面简单,里面函数可以做的很复杂,求起来很简单。你可以上网搜下。
如果matlab你还不满意的话,那我就真的没的推荐了