// Norm1 /* ------------------------------------------------------ 作者 : Black Ghost 日期 : 2018-11-21 版本 : 0.0.0 ------------------------------------------------------ 求矩阵1范数 理论: 参考 李信真, 车刚明, 欧阳洁, 等. 计算方法. 西北工业大学 出版社, 2000, pp 65. ||A||1 = Maxj(Sumi(|aij|)) ------------------------------------------------------ 输入 : A 矩阵 输出 : sol 范数值 err 解出标志:false-未解出或达到步数上限; true-全部解出 ------------------------------------------------------ */ package goNum import ( "math" ) // Norm1 求矩阵1范数 func Norm1(A Matrix) (float64, bool) { /* 求矩阵1范数 输入 : A 矩阵 输出 : sol 范数值 err 解出标志:false-未解出或达到步数上限; true-全部解出 */ var sol float64 var err bool = false //求取列绝对值的和 col := make([]float64, A.Columns) for j := 0; j < A.Columns; j++ { thisColumn := A.ColumnOfMatrix(j) for i := 0; i < len(thisColumn); i++ { col[j] += math.Abs(thisColumn[i]) } } //求取最大值 sol, _, _ = Max(col) err = true return sol, err }