JAVA矩阵包JAMA学习

JAMA是一个用于Java的简单线性代数包,提供了实数非稀疏矩阵类,支持矩阵运算如加、减、乘、Cholesky分解、LU分解等。它包含6个核心类,如Matrix、CholeskyDecomposition等,适用于解决线性方程组等矩阵问题。JAMA不支持复数矩阵和某些特定矩阵结构,但作为参考实现,适合教学和中小型规模的数据计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:JAMA:Java矩阵包

API文档链接:线性代数Java包 JAMA

jama是一个非常好用的java的线性代数软件包。适用于日常编程可能碰到的各种矩阵运算问题,提供了一个优雅的简便的解决方案。

jama:java 矩阵包

背景

jama是一个基本的线性代数java包,它提供了实数非稀疏矩阵类,程序员可构造操控这些类。对于经常使用到矩阵运算的码农来说,即使不精通线性代数也没有关系,因为jama包提供的功能已经够用,调用方便,使用自然,而且易于理解。Jama包意欲称为java的标准矩阵包,这一标准计划将提交给Java Grande论坛,转而交给sun公司。java矩阵类的潜在竞争对手包括Mathworks公司和国家标准化管理委员会(NIST)实现的矩阵类,我们发布这一版本,以广收评议。将来jama的新版本不一定和现在的版本兼容。

NIST和马里兰大学曾开发过一个类似的矩阵包:Jampack,这两个包的出现,出于用户对矩阵的不同实现需求。Jama基于单个矩阵类,是一个严格的面向对象的框架,而Jampack的方案更为开放,便于用户的扩展。对一般用户而言,这两个包只是在矩阵操作的语法层面上有所差别。我们希望你有时间同时了解一下这两个矩阵包,一定会受益匪浅。

功能:

jama由如下6个类组成: Matrix,CholeskyDecomposition, LUDecomposition, QRDecomposition, SingularValueDecomposition and EigenvalueDecomposition

Matrix类提供了基本的线性代数数值运算的功能,不同的构造函数可以构造双精度和浮点精度的二维数组,而不同的gets和
sets方法可以返回子矩阵和矩阵元素。基本的算术运算包括矩阵相加,矩阵相乘,矩阵范式以及基于矩阵元素的算术运算。打印矩阵的函数也包括在内。

矩阵的五大分解,涉及一对或三元组,排列向量矩阵等,对应于jama的5个矩阵分解类。这些分解类可由Matrix类访问,可以求解线性方程组,求解方阵行列式,求逆和其他矩阵运算。这些分解类如下:

  • 对称正定矩阵的Cholesky分解
  • 矩阵的LU分解(高斯消元)
  • 矩阵的QR分解
  • 对称和非对称方阵的特征向量值分解
  • 矩阵的奇异值分解

目前jama只支持实数矩阵。将来可能会加入复数矩阵的支持。现在暂不实现复数矩阵,主要是由于现在还没有太多这方面的需求,故先不冒重新设计而带来的复杂风险。

Jama的设计其实是一种纯面向对象的易用性和高性能计算需求之间的折中。

 

JAMA功能汇总

对象操作

构造函数  
set 方法  
get 方法 
拷贝方法
克隆方法
矩阵元素级别的操作 矩阵加法
矩阵减法
矩阵乘法
放大缩小
元素乘法  
元素除法
求反
倒置  
范式
矩阵分解

Cholesky  
LU  
QR  
SVD  
对称矩阵的特征值
非对称矩阵的特征值

线性方程求解

非奇异系统
最小二乘

矩阵相关的数学量

条件数  
行列式
矩阵秩  
求逆
伪逆

 

使用范例 下面的例子求解了一个线性方程Ax = b,矩阵规模为 3 * 3,最后算出了残差的范式。

          double[][] array = { {1.,2.,3},{4.,5.,6.},{7.,8.,10.}}; 
      Matrix A = new Matrix(array); 
      Matrix b =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值