34 lines
680 B
Go
34 lines
680 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"gonum.org/v1/gonum/mat"
|
|
)
|
|
|
|
func main() {
|
|
showLU(mat.NewDense(3, 3, []float64{
|
|
1, 3, 5,
|
|
2, 4, 7,
|
|
1, 1, 0,
|
|
}))
|
|
fmt.Println()
|
|
showLU(mat.NewDense(4, 4, []float64{
|
|
11, 9, 24, 2,
|
|
1, 5, 2, 6,
|
|
3, 17, 18, 1,
|
|
2, 5, 7, 1,
|
|
}))
|
|
}
|
|
|
|
func showLU(a *mat.Dense) {
|
|
fmt.Printf("a: %v\n\n", mat.Formatted(a, mat.Prefix(" ")))
|
|
var lu mat.LU
|
|
lu.Factorize(a)
|
|
l := lu.LTo(nil)
|
|
u := lu.UTo(nil)
|
|
fmt.Printf("l: %.5f\n\n", mat.Formatted(l, mat.Prefix(" ")))
|
|
fmt.Printf("u: %.5f\n\n", mat.Formatted(u, mat.Prefix(" ")))
|
|
fmt.Println("p:", lu.Pivot(nil))
|
|
}
|