1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/chfenger-goNum

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
ErrorEvaluation.go 2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Black Ghost Отправлено 01.03.2019 05:10 96fccdb
// ErrorEvaluation
/*
------------------------------------------------------
作者 : Black Ghost
日期 : 2018-12-23
版本 : 0.0.0
------------------------------------------------------
误差估计方法
理论:
0 最大误差:
E = max(Abs(f(xk)-y(xk)))
1 平均误差:
1 N
E = --- Sum (Abs(f(xk)-y(xk)))
N k=1
2 均方根误差:
1
E = Sqrt(--- Sum (f(xk)-y(xk))^2)
N
参考:John H. Mathews and Kurtis D. Fink. Numerical
methods using MATLAB, 4th ed. Pearson
Education, 2004. pp. 196
------------------------------------------------------
输入 :
FY 数据对,nx2,f(xk)---y(xk)
输出 :
sol 误差结果
------------------------------------------------------
*/
package goNum
import (
"math"
)
// MaxError 最大误差
func MaxError(FY Matrix) float64 {
//最大误差
//判断FY的维数
if FY.Columns < 2 {
panic("Error in goNum.MaxError: FY is at least 2 columns")
}
errs := ZeroMatrix(FY.Rows, 1)
var maxE float64
for i := 0; i < FY.Rows; i++ {
errs.Data[i] = math.Abs(FY.GetFromMatrix(i, 1) - FY.GetFromMatrix(i, 0))
}
maxE, _, _ = Max(errs.Data)
return maxE
}
// MeanError 平均误差
func MeanError(FY Matrix) float64 {
//平均误差
//判断FY的维数
if FY.Columns < 2 {
panic("Error in goNum.MaxError: FY is at least 2 columns")
}
var meanE float64
for i := 0; i < FY.Rows; i++ {
meanE += math.Abs(FY.GetFromMatrix(i, 1) - FY.GetFromMatrix(i, 0))
}
meanE = meanE / float64(FY.Rows)
return meanE
}
// RMSError 均方根误差
func RMSError(FY Matrix) float64 {
//均方根误差
//判断FY的维数
if FY.Columns < 2 {
panic("Error in goNum.MaxError: FY is at least 2 columns")
}
var rmsE float64
for i := 0; i < FY.Rows; i++ {
temp0 := FY.GetFromMatrix(i, 1) - FY.GetFromMatrix(i, 0)
rmsE += temp0 * temp0
}
rmsE = math.Sqrt(rmsE / float64(FY.Rows))
return rmsE
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/chfenger-goNum.git
git@api.gitlife.ru:oschina-mirror/chfenger-goNum.git
oschina-mirror
chfenger-goNum
chfenger-goNum
master