代码拉取完成,页面将自动刷新
// 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
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。