スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

多項式近似

sin(x)からランダムにズレた点群への多項式fitting(6次多項式)

num50_01-mini.png

過学習の例:

num7_01-mini.png



num <- 50
dim <- 7 # 6次多項式で近似する

x <- runif(num, min = 0, max = 5)
y <- sin(x)+runif(num, min = -0.2, max = 0.2)
plot(x,y,xlim=c(0,5),ylim=c(-1,1))

A <- matrix(nrow=dim, ncol=dim)
B <- matrix(nrow=dim, ncol=1)

for(i in c(1:dim)){
for(j in c(1:dim)){
A[i,j] <- sum(x**(i+j-2))
}
}

for(i in c(1:dim)){
B[i,1] <- sum(y*(x**(i-1)))
}

iA <- solve(A)

ans <- iA %*% B

polyapp <- function(x,ans){
y <- 0
for(i in c(1:length(ans))){
y <- y+ans[i]*x^(i-1)
}
return(y)
}

col <- c("#1B9E77", "#D95F02", "#7570B3")
main <- ""
xlab <- "x"
ylab <- "y"

pdf("test2.pdf", height=5.5, width=7, pointsize=14)
curve(sin(x),xlim=c(0,5),ylim=c(-1.4,1.4),xlab=xlab,ylab=ylab,
col="red",lty=2,lwd=1.5)
par(new=T)
curve(polyapp(x,ans),xlim=c(0,5),ylim=c(-1.4,1.4),xlab=xlab,ylab=ylab,
col=col[1],lwd=1.5)
par(new=T)
plot(x,y,xlim=c(0,5),ylim=c(-1.4,1.4),col=col[3])
dev.off()
スポンサーサイト

コメントの投稿


非公開コメント

コメント

Profile

zoa

Author:zoa
Metropolis (1927)

Calendar
05 | 2017/06 | 07
- - - - 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 -
Labels
Admin
Previous Posts
Recent Comments
Recent Trackback
Archive
このページのトップへ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。