百科问答小站 logo
百科问答小站 font logo



如何评价国产软件 TRUFFER(可替代 MATLAB)? 第1页

  

user avatar   harryzhou-12 网友的相关建议: 
      

首先,我间接搞到了 @Truffer 慷慨分享的部分源码:

很明显这只是项目很少的一部分,某高赞回答上 @jeffswt 的命令行图并非来自于这些代码,所以我对关于Octave部分的真实性不加评论。

出于学习目的,我打开了CMatrix.cs,看上去是这样的:

Matrix和CMatrix大同小异(实矩阵运算和复矩阵完全分开),源码放到最后供大家观赏,这里只写了我浅浅拜读一下看到的一些亮点...

我没有学过软件工程,但数值方法还是略知一点的(本来这几个文件也没啥工程可言),所以关注点放到了数值方法上。

首先,矩阵数值运算就涉及到解数值方程组(MATLAB里面的 A),我一直以来就好奇MATLAB的具体是如何实现的,看到上面只有一个System,我更是不由自主地兴奋了起来...(似乎忘记了C#这个奇怪的点)... 然而,我前前后后翻了个遍,也没有看到任何能求线性方程组(或其最优最小二乘)解的方法,甚至没有一个能求逆/广义逆的方法...看到开头“初级版本”的说明,我不禁释然...

我并不甘心,希望找到一个(300年来应用数学发明的)数值方法,翻到最后,眼前一亮:FFT!(先忽略为什么对矩阵对象的FFT没有维数输入方式),然后被惊呆了:

       using System; using System.Text; using System.Data; namespace Legal.Math {  public class CMatrix         {          //省略属性和其他方法   public int Length   {    get    {     if (_length <= 0) _length = Rows * Columns;     return _length;    }    private set    {     _length = 0;    }   }   #endregion                 public static CMatrix FFT(CMatrix Ma)   {    CMatrix p = new CMatrix(Ma.Rows, Ma.Columns);    for (int k = 0; k < Ma.Length; k++)    {     double x = 0.0;     double y = 0.0;     double s = 0.0;     double t = 2 * System.Math.PI * k / Ma.Length;     for (int i = 0; i < Ma.Length; i++)     {      x += Ma[i].Real * System.Math.Cos(s) + Ma[i].Imaginary * System.Math.Sin(s);      y += Ma[i].Imaginary * System.Math.Cos(s) - System.Math.Sin(s) * Ma[i].Real;      s += t;     }     p[k] = new Complex(x, y);    }    return p;   }         } }      

多么简洁的代码!根本不用什么补零,不用什么玄学二进制排序,不用什么递归变循环...别问,要问就是算!俩循环套起来算!...唯一的缺点就是这应该叫DFT,而不是使用FFT算法的DFT...

分割--------------------------------

题主问如何评价,问题是我感觉这三个源代码和演示效果没啥关系,就矩阵运算而言,这几个代码文件离MATLAB大概还差那么几百万行代码吧(参考openblas)。所以这些源代码大概是人家作者放出来骗人的吧...至于真的TRUFFER,没有公开的应用程序,所以不评价。


源码(作者在里面说“比开源还开源”,所以就都放上来了)

链接:pan.baidu.com/s/1q0-SDV

提取码:yj94

(大家都在喷百度网盘,但这个文件不怕限速...)


user avatar   li-mu-gen-19 网友的相关建议: 
      

大部分欧洲国家和美国,不但给你孩子冠姓,还给你冠姓,还有首歌形容结婚:以我之姓 冠你之名。


user avatar    网友的相关建议: 
      

大部分欧洲国家和美国,不但给你孩子冠姓,还给你冠姓,还有首歌形容结婚:以我之姓 冠你之名。




  

相关话题

  C#在开源框架的数量和质量上有希望追上JAVA么? 
  为什么欧美国家很多十几岁的少年已经可以独立开发软件或创建实业了? 
  数学对于编程有多重要? 
  有没有什么好用的pdf编辑软件? 
  为什么软件要自动安装在系统盘呢? 
  请问目前做windows桌面应用程序,MFC、QT、C#哪个更好? 
  有哪些不错的电子书管理软件? 
  想买Surface,就是写笔记和画图,机械设计啦,和一些软件,哪款比较适合呢? 
  腾讯是否已经放弃TIM了? 
  中国为什么不做编译器和编程语言? 

前一个讨论
正切函数tanx这个部分分式无穷级数展开式怎么证明?
下一个讨论
数学分析中,关于某个变量一致是什么意思?





© 2024-11-22 - tinynew.org. All Rights Reserved.
© 2024-11-22 - tinynew.org. 保留所有权利