R 语言 模拟处理信令数据

#采用模型:y5 = (a + bX + cX2)/k = A + BX + CX2   (模型5变形)
#用前5个数据文件拟合系数,用后6个的数据取平均计算绝对误差与相对误差

filenames<-c("西湖道")
filenames<-paste(filenames,".csv",sep="")
for(filename in filenames)
{
#1.读入数据文件拟合:

#读取0411-0415的来拟合系数
files<-c(11:15)
files<-paste("G:/实验/201104",files,"/",filename,sep="")
data<-read.csv(files[1], row.names=1, head=TRUE)
files<-files[2:5]
for(file in files)
{
temdata<-read.csv(file, row.names=1, head=TRUE)
data<-rbind(data, temdata)
}
nrow(data) #//查看行数

data<-data[order(data$qiehuan),] #//排序

sw<-data$qiehuan
GPSvector<-data$gps

z<-lm(GPSvector~sw+I(sw^2)) #//二次拟合

plot(sw, GPSvector)
lines(sw, fitted(z), col="red", lwd=4) #//拟合图

# 暂停
warning(filename,immediate.=TRUE)
flush.console() 
Sys.sleep(10)

 

#2. 验证模型

#读入0419-0424来计算误差
verfiles<-c(19:24)
verfiles<-paste("G:/实验/201104",verfiles,"/",filename, sep="")

verdata<-read.csv(verfiles[1])
verfiles<-verfiles[2:6]

for(verfile in verfiles)
{
 vertemdata<-read.csv(verfile)
 verdata$qiehuan<-verdata$qiehuan + vertemdata$qiehuan
 verdata$gps<-verdata$gps + vertemdata$gps
}

verdata$qiehuan<-verdata$qiehuan/6
verdata$gps<-verdata$gps/6

fun<-function(X) {33.04 - 0.03632*X + 0.00001662*X^2}

calres<-fun(verdata$qiehuan) #//计算结果

trures<-verdata$gps  #//真实结果

barplot(calres-trures, main="绝对误差", names.arg=c(0:95), xlab="时间", ylab="km/h") #//计算main绝误差

# 暂停
warning(filename,immediate.=TRUE)
flush.console() 
Sys.sleep(7)

barplot((calres-trures)/trures, main="相对误差", names.arg=c(0:95), xlab="时间") #//计算相对误差
# 暂停
warning(filename,immediate.=TRUE)
flush.console() 
Sys.sleep(7)

}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值