簡體   English   中英

LAPack dpbsv 為正定矩陣返回 3

[英]LAPack dpbsv returns 3 for positive definite matrix

我正在嘗試使用 LAPACK 帶狀對稱矩陣求解器 dpbsv。 我正在測試矩陣:

4,  2,  0,   0, 0
2   4,  3,   0, 0
0,  3, 11,  7,  0
0,  0,  7, 11,  5
0,  0,  0,  5, 13

Mathematica 告訴我這個矩陣是正定的,定數為 3684

我正在使用 swift 並構建了數組

var a: [Double] = [ 0, 2,  3,  7,  5,
                    4, 4, 11, 11, 13]
var b: [Double] = [1, 2, 3, 4, 5]

我稱 dpbsv 為

    var uplo = Int8("U".utf8.first!) // set to 'U'

    var n = __CLPK_integer(5)
    var kd = __CLPK_integer(1)
    var ldab = kd + 1
    var nrhs = __CLPK_integer(1)
    var ldb = __CLPK_integer(5)
    var info: __CLPK_integer = 0

    dpbsv_(&uplo,
           &n,
           &kd,
           &nrhs,
           &a,
           &ldab,
           &b,
           &ldb,
           &info)

    if info != 0 {
        // here info is 3, indicating non-positive definite.
        NSLog("error \(info)")
    }

知道這里有什么問題嗎? 我是否正確解釋了 dpbsv_ 的參數? 我已經嘗試過 Mathematica 聲稱是 pos-def 的其他矩陣,結果相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM