RosettaCodeData/Task/LU-decomposition/Go/lu-decomposition-3.go

34 lines
680 B
Go
Raw Permalink Normal View History

2013-04-10 21:29:02 -07:00
package main
import (
"fmt"
2018-06-22 20:57:24 +00:00
"gonum.org/v1/gonum/mat"
2013-04-10 21:29:02 -07:00
)
func main() {
2018-06-22 20:57:24 +00:00
showLU(mat.NewDense(3, 3, []float64{
2015-11-18 06:14:39 +00:00
1, 3, 5,
2, 4, 7,
1, 1, 0,
}))
fmt.Println()
2018-06-22 20:57:24 +00:00
showLU(mat.NewDense(4, 4, []float64{
2015-11-18 06:14:39 +00:00
11, 9, 24, 2,
1, 5, 2, 6,
3, 17, 18, 1,
2, 5, 7, 1,
}))
2013-04-10 21:29:02 -07:00
}
2018-06-22 20:57:24 +00:00
func showLU(a *mat.Dense) {
fmt.Printf("a: %v\n\n", mat.Formatted(a, mat.Prefix(" ")))
var lu mat.LU
2015-11-18 06:14:39 +00:00
lu.Factorize(a)
2018-06-22 20:57:24 +00:00
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(" ")))
2015-11-18 06:14:39 +00:00
fmt.Println("p:", lu.Pivot(nil))
2013-04-10 21:29:02 -07:00
}