Swift Jama Matrix线性代数矩阵运算库

由于之前写一个软件同时开发安卓和iOS平台需要用到线性代数运算,安卓Java找到了一个比较合适的库Jama,但是在iOS平台上没有找到很合适的Swift库,尽管iOS自带有Accelerate计算库,但是只能实现最基本的矩阵运算,因此在看过Jama的源代码后发现其都是运用原生Java编写,可以轻松实现翻译成Swift语言版本,因此我花了两天时间翻译并调试,最终完成了Swift版Jama,具体代码可以到我的Github上下载:https://github.com/CalvinXu17/JamaSwift.git

所有类和方法均与Jama一致,可以直接搜索Jama查看使用方法

感谢Jama团队的源代码,Swift版如有错误,请大家指正

贴一个Demo:

let aa:[[Double]] = [[10.0,20.0,30.0],[12.0,24.0,46.0],[34.0,58.0,12.0]]
do {
    let mat = try Matrix(paramArrayOfDouble: aa)
    print("cond:  \(mat.cond())") 
    print("rank:  \(mat.rank())") // 秩
    print("chol:  \(mat.chol().getL().getArray())")
    print("trace: \(mat.trace())") // 迹
    print("transpose:\(mat.transpose().getArray())") // 转置
    let r = try mat.det() // 行列式的值
    print("det:   \(r)")
    let c = try mat.lu().det()
    let d = try mat.inverse().getArray() // 逆矩阵
    print("inverse: \(d)")
    print("特征值: \(mat.eig().getD().getArray())") // 特征值
    print("特征向量: \(mat.eig().getV().getArray())") // 特征向量
    // mat.times(Matrix) 矩阵乘法
    } catch {
    print(error)
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值