在go语言中实现线性代数和矩阵计算示例
Go  /  管理员 发布于 6个月前   228
我们将在本教程中探讨如何执行矩阵和线性代数计算。
延续上一篇关于在go语言中使用Gonum Matrix软件包创建矩阵示例:
https://www.zongscan.com/demo333/96742.html
示例代码:
package main
import (
"fmt"
"github.com/gonum/matrix/mat64"
)
func main() {
// 首先是一个空洞,然后
// 创建了这个矩阵
// ⎡1 2 3⎤
// ⎢4 5 6⎥
// ⎣7 8 9⎦
row1 := []float64{1, 2, 3}
row2 := []float64{4, 5, 6}
row3 := []float64{7, 8, 9}
m := mat64.NewDense(3, 3, nil)
m.SetRow(0, row1)
m.SetRow(1, row2)
m.SetRow(2, row3)
// 打印所有 m 元素
fmt.Printf("m :\n%v\n\n", mat64.Formatted(m, mat64.Prefix(""), mat64.Excerpt(0)))
// 然后进行矩阵转置
mT := m.T()
// 打印所有 mT 元素
fmt.Printf("mT :\n%v\n\n", mat64.Formatted(mT, mat64.Prefix(""), mat64.Excerpt(0)))
// 矩阵决定继续前进和繁殖......
//mX := m * mT
mX := mat64.NewDense(3, 3, nil) // a new nil matrix of 3 x 3
mX.MulElem(m, mT)
// 打印所有 mX 元素
fmt.Printf("mX :\n%v\n\n", mat64.Formatted(mX, mat64.Prefix(""), mat64.Excerpt(0)))
// 并添加另一个矩阵,使另一个家庭成员...
mA := mat64.NewDense(3, 3, nil)
mA.Add(mX, mT)
// 打印所有 mA 元素
fmt.Printf("mA :\n%v\n", mat64.Formatted(mA, mat64.Prefix(""), mat64.Excerpt(0)))
fmt.Println(" = ")
fmt.Printf("mX :\n%v\n", mat64.Formatted(mX, mat64.Prefix(""), mat64.Excerpt(0)))
fmt.Println(" + ")
fmt.Printf("mT :\n%v\n\n", mat64.Formatted(mT, mat64.Prefix(""), mat64.Excerpt(0)))
// 为了取得更多成果,首先......必须找到决心(决定因素)
determinant := mat64.Det(mX)
fmt.Println("Determinant of mX : ", determinant)
// 具有强确定性(行列式),则线性代数运算可求解 ....
err := mX.Solve(mX, m)
fmt.Println("有错误吗? : ", err)
fmt.Printf("已解决 mX :\n%v\n", mat64.Formatted(mX, mat64.Prefix(""), mat64.Excerpt(0)))
}
输出:
m :
⎡1 2 3⎤
⎢4 5 6⎥
⎣7 8 9⎦
mT :
⎡1 4 7⎤
⎢2 5 8⎥
⎣3 6 9⎦
mX :
⎡ 1 8 21⎤
⎢ 8 25 48⎥
⎣21 48 81⎦
mA :
⎡ 2 12 28⎤
⎢10 30 56⎥
⎣24 54 90⎦
=
mX :
⎡ 1 8 21⎤
⎢ 8 25 48⎥
⎣21 48 81⎦
+
mT :
⎡1 4 7⎤
⎢2 5 8⎥
⎣3 6 9⎦
mX 的行列式 : -360.00000000000006
有错误吗?
已解决 mX :
⎡ -0.48333333333333306 -0.31666666666666626 -0.1499999999999994⎤
⎢ 0.6666666666666663 0.33333333333333287 -6.614094614788165e-16⎥
⎣ -0.18333333333333318 -0.01666666666666651 0.15000000000000024⎦
相关链接:
https://www.zongscan.com/demo333/96742.html
https://godoc.org/github.com/gonum/matrix/mat64#Dense.MulElem
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号