SVD算法的实现 [英] SVD algorithm implementation

查看:386
本文介绍了SVD算法的实现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有谁知道C#的良好可扩展性的实现SVD的非常大的矩阵?

解决方案

ILNumerics.net 似乎已经在其他SVD的东西。

功能列表:

  

框架

     

.NET 1.1,.NET 2.0,   即将推出:单1.2.3

     

语言

     

所有CLI遵循:C#(推荐),   托管C ++,Visual Basic中...

     

Array对象

  *全OO一流的设计
*泛型类型化的容器类
*任意阵列尺寸单个对象:标量,矢量,矩阵,正朦胧阵列
*灵活的阵列修改全力支持:subarray- /创作,串联,尺寸去除,系列化
*自动引用管理:复制内存只有当真正需要
*对于细胞和逻辑阵列支持
 

     

Numerics的

  *支持所有数值类型为数组元素:双,浮法,复杂的,浮点型复数,INT16,INT32,
 

     

Int64的,UINT16,UINT32,UINT64,焦炭,字节,布尔       *运算符重载(A + B,...)       *静态操作功能(F.E.添加(A,B))       *特殊数字的状态支持(南安+/-天道酬勤)

     

处理器特定的优化

  * BLAS,LAPACK
* AMD:ACML,英特尔:MKL,一般:NETLIB
*自动检测
 

     

代数函数

  * ABS
* ACOS
* 加
* 所有
* 任何
* ASIN
* (更多...)
 

     

线性代数

  *矩阵乘法, - 逆,逆 - 伪
*线性方程组求解
*分解:LU,QR,SVD,乔里斯基
*特征值,特征向量
 

     

傅立叶变换

  * 1,2,3,...,N维
*变换前向和;向后
*支持库:英特尔MKL,AMD的ACML,FFTW3
* 100%倍频程/基于Matlab / Scilab的兼容接口
 

     

排序

  *串排序(辞书,桶排序)
*数字数据的排序(快速排序)
*任意用户定义类型的一般分类
  通过定义keymapper(桶排序)
 

     

错误处理

  *类型的异常
 

     

算法的基础类

  *同步/异步
*易于扩展的用户自定义派生算法
*全Windows.Forms.Control兼容多线程三项赛
 

     

支持

     

可视化

  *绘图板,从Windows.Forms.Control派生
*图对话框形式
* 1D,2D,3D数据图
*基于OpenGL。 (DirectX的:去precated)
*高度可配置的图形/图特性
*自动用户交互:旋转,缩放,自动坐标轴的比例
 

     

其他

  *的Visual Studio 2005(R)的AddIn:扩展监视工具窗口
*从导入/导出到Matlab的(R)* .MAT文件
*语法大大兼容Matlab的(R)(函数命名,参数)
*测定延长了整机性能,数值常数
*内存池:自动回收​​大对象
 

Does anyone know good scalable implementation of SVD on C# for very big matrix?

解决方案

ILNumerics.net seems to have SVD among other things.

Feature list:

Frameworks

.NET 1.1, .NET 2.0, available soon: mono 1.2.3

Languages

all CLI conform: C# (recommended), managed C++, Visual Basic ...

Array objects

* Full OO class design
* Generic typed container classes
* single object for arbitrary array dimensions: scalar, vector, matrices, n-dim arrays
* full support for flexible array modification: subarray-/ creation, concatenation, dimension removal, serialization
* automated reference management: copy memory only if really needed
* support for cells and logical arrays

Numerics

* Supports all numeric types as array elements: double, float, complex, fcomplex, int16, int32,

int64, uint16, uint32, uint64, char, byte, bool * operator overloads (A + B,...) * static operator functions (f.e. Add(a,b)) * support for special numeric states (NaN, +/-Inf)

Processor specific optimizations

* BLAS, LAPACK
* AMD: ACML, Intel: MKL, general: netlib
* Automated detection

Algebraic functions

* abs
* acos
* add
* all
* any
* asin
* (more...)

Linear algebra

* matrix multiply, -inverse, -pseudo inverse
* linear equation solver
* decompositions: LU,QR,SVD,Cholesky
* eigenvalues, eigenvectors

Fourier transforms

* 1,2,3...n dimensional
* transforms forward & backwards
* supported libraries: Intel MKL, AMD ACML, FFTW3
* 100% octave/Matlab/Scilab compatible interface

Sorting

* Sorting of strings (lexicographical, bucket sort)
* Sorting of numeric data (quick sort)
* generic sorting of arbitrary user defined types
  by definable keymapper (bucket sort)

Error handling

* typed exceptions

Algorithm base classes

* synchronous / asynchronous
* easily extendable for user defined derived algorithms
* full Windows.Forms.Control compatible multiple thread eventing

support

Visualizations

* Plot panels, derived from Windows.Forms.Control
* Plot dialog forms
* 1D, 2D, 3D data plots
* Based on OpenGL. (DirectX: deprecated)
* Highly configurable graphs/figure properties
* Automatic user interaction: rotation, zoom, auto axis scaling

Miscellaneous

* Visual Studio 2005(R) AddIn: extends watch tool window
* import from / export to Matlab(R) *.mat files
* syntax vastly compatible to Matlab(R) (function naming, parameter)
* determination of extended machine properties, numerical constants
* Memory pool: automated recycling of large objects

这篇关于SVD算法的实现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆