forked from chfenger/goNum
-
Notifications
You must be signed in to change notification settings - Fork 0
/
MinAbs.go
54 lines (49 loc) · 1.23 KB
/
MinAbs.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Min
/*
------------------------------------------------------
作者 : Black Ghost
日期 : 2018-11-19
版本 : 0.0.0
------------------------------------------------------
向量第一个绝对值最小值及其位置
------------------------------------------------------
输入 :
a a 被处理向量
输出 :
sol 解值
ii 第一个绝对值最小值位置
err 解出标志:false-未解出或达到步数上限;
true-全部解出
------------------------------------------------------
*/
package goNum
import (
"math"
)
// MinAbs 向量第一个绝对值最小值及其位置
func MinAbs(a []float64) (float64, int, bool) {
/*
向量第一个绝对值最小值及其位置
输入 :
a a 被处理向量
输出 :
sol 解值
ii 第一个最大值位置
err 解出标志:false-未解出或达到步数上限;
true-全部解出
*/
var sol float64
var ii int
var err bool = false
n := len(a)
ii = 0
sol = a[ii]
for i := 1; i < n; i++ {
if math.Abs(sol) > math.Abs(a[i]) {
ii = i
sol = a[i]
}
}
err = true
return sol, ii, err
}