apache-commons-math3简介
来源:互联网 发布:淘宝分销平台免费代理 编辑:程序博客网 时间:2024/06/06 13:13
一、基本功能简介
apache-commons-math3是java的一种科学计算类库,实现科学计算功能的类库其他语言如python、scala都有很多而且很容易找到资料,java可能是由于这方面的需求不多,所以相关的资料较少,在此我就简要介绍一下apache-commons-math3,帮大家大致了解一下这个东西,详细的使用还是需要自己去研究官方文档了。如果想使用其他科学计算包可以参考下面这个网址,其中很详细地介绍了如今市面上常见的科学计算包及其支持的功能。
https://java-matrix.org/
math3支持的的功能如下所示:
- 支持java5到java8
- 支持以二维数组的形式存储密集数据
- 支持大量密集数据的块存储
- 支持DOK形式的稀疏数据存储(键值对字典)
- 支持double、BigDecimal、String、Object、Complex Numbers等数据类型
- 支持二维矩阵
- 支持常用的矩阵操作、如矩阵转置、矩阵求逆、加减乘除
- 支持LU和QR分解等
二、向量与矩阵
接下来介绍一下有关向量和矩阵的一些常用的方法
上图描述了math3中向量的几个实数常用接口和类库,最顶端是基础接口类,OpenMapRealVector和ArrayRealVector分别是稀疏向量和稠密向量的实现类,OpenMapRealVector以键值对的形式存储稀疏向量,ArrayRealVector则是以一维数组的形式存储数据,简单示例如下所示:
//构造稀疏向量,维数为7OpenMapRealVector openMapRealVector=new OpenMapRealVector(7);//填充稀疏向量openMapRealVector.setEntry(2,1.0);openMapRealVector.setEntry(4,1.0);//输出稀疏向量当前的值System.out.println("sparse:"+Arrays.toString(openMapRealVector.toArray()));double[] a=new double[]{0,0.2,0.3,0.4,0,0,0};//直接以一维数组构造稠密向量ArrayRealVector arrayRealVector=new ArrayRealVector(a);System.out.println("dense:"+Arrays.toString(arrayRealVector.toArray()));OpenMapRealVector realVector=openMapRealVector.append(arrayRealVector);System.out.println("result:"+Arrays.toString(realVector.toArray()));String str="0.11,0.222,0.33";//用RealVector解析字符串,参数分别是字符串的前缀、后缀和分隔符RealVectorFormat realVectorFormat=new RealVectorFormat("","",",");ArrayRealVector arrayRealVector1=realVectorFormat.parse(str);System.out.println(Arrays.toString(arrayRealVector1.toArray()));
输出如下
sparse:[0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0]dense:[0.0, 0.2, 0.3, 0.4, 0.0, 0.0, 0.0]result:[0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.2, 0.3, 0.4, 0.0, 0.0, 0.0][0.11, 0.222, 0.33]
下面介绍一下math3的矩阵
其中BlockRealMatrix更适合大维度的矩阵,官方文档是这样介绍的
being more suited to dimensions above 50 or 100
关于矩阵math3有一个工具类MatrixUtils,包含了一些常用的矩阵操作,有需要的可以自行查阅math3官方API。
http://commons.apache.org/proper/commons-math/javadocs/api-3.6.1/index.html?overview-summary.html
本篇博客的主要目的是对math3做一个简单地介绍,至于具体的应用还需要自行研究,有什么疑问可以在下方评论区留言,积极交流才能更快地成长~
- apache-commons-math3简介
- Apache Commons Math3学习笔记(1)- 快速傅立叶变换
- Apache Commons Math3学习笔记(2) - 多项式曲线拟合
- Apache Commons Math3学习笔记(3) - 数值积分
- CloudSim初学笔记——org.apache.commons.math3
- apache-comnons系列之commons-math3.6 学习笔记
- Apache commons简介
- Apache commons简介
- Apache commons简介
- apache commons简介
- Apache commons简介
- Apache commons简介
- Apache Commons 简介
- apache commons 包简介
- Apache commons简介
- Apache commons简介
- Apache Commons简介
- Apache commons包简介
- Sliding Window algorithm template to solve all the Leetcode substring search problem.
- 约瑟夫环(N个人围桌,C语言,数据结构) 链表解法
- No.19 Counting Bloom Filter 的原理和实现
- KVM-Qemu-Libvirt三者之间的关系
- 【VB】学生信息管理系统总结
- apache-commons-math3简介
- 预处理/预编译
- javawed MVC开发模式练习
- 【Spring】Spring MVC原理及配置
- python,UPD,socket(二) 使用udp 接收消息
- 适配器模式&装饰者模式&外观模式
- Uva12412 (implement)
- 项目名称多了一个空格的错误
- No.20 不深入而浅出 Roaring Bitmaps 的基本原理