差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
r:maintenance:hardtime [2018/12/10 08:46] – watalu | r:maintenance:hardtime [2018/12/10 09:18] (現在) – [時間計画保全] watalu | ||
---|---|---|---|
行 5: | 行 5: | ||
< | < | ||
- | select.distribution | + | select.distribution |
if(dist %in% c(" | if(dist %in% c(" | ||
distrname <- dist | distrname <- dist | ||
行 29: | 行 29: | ||
< | < | ||
- | model <- select.distribution(" | + | model = select.distribution(" |
- | model <- select.distribution(" | + | model = select.distribution(" |
- | model <- select.distribution(" | + | model = select.distribution(" |
</ | </ | ||
行 87: | 行 87: | ||
< | < | ||
# 確率密度関数 | # 確率密度関数 | ||
- | f <- function(x) { | + | f = function(x) { |
return(model$d(x, | return(model$d(x, | ||
} | } | ||
行 95: | 行 95: | ||
< | < | ||
# 生存関数 | # 生存関数 | ||
- | F.bar <- function(x) { | + | F.bar = function(x) { |
return(1-model$p(x, | return(1-model$p(x, | ||
} | } | ||
行 106: | 行 106: | ||
< | < | ||
# コストレートの式 (integrateは1変数関数の数値積分をしてくれるRの関数) | # コストレートの式 (integrateは1変数関数の数値積分をしてくれるRの関数) | ||
- | g <- function(x) { | + | g = function(x) { |
return((Cc*integrate(f, | return((Cc*integrate(f, | ||
} | } | ||
行 134: | 行 134: | ||
< | < | ||
# コストレートのグラフを描く | # コストレートのグラフを描く | ||
- | g.list | + | g.list |
for( i in c(1:500) ) { | for( i in c(1:500) ) { | ||
- | g.list | + | g.list |
} | } | ||
plot(c(1: | plot(c(1: | ||
行 153: | 行 153: | ||
< | < | ||
# 準備のための乱数データ発生 | # 準備のための乱数データ発生 | ||
- | M.t.prep | + | M.t.prep |
rdist <- function(n) { | rdist <- function(n) { | ||
- | return(rdensfun(n,rdensfun.params[1],rdensfun.params[2])) | + | return(model$r(n,model.parameters[1],model.parameters[2])) |
} | } | ||
n <- 100000 | n <- 100000 | ||
行 173: | 行 173: | ||
< | < | ||
# 再生関数をモンテカルロ計算で求める | # 再生関数をモンテカルロ計算で求める | ||
- | M.t <- function(block.cycles) { | + | M.t = function(block.cycles) { |
n <- 100000 | n <- 100000 | ||
X <- rep(0,n) | X <- rep(0,n) | ||
行 192: | 行 192: | ||
# 使う前に一度だけ準備を行う(分布を変更する都度、実行しなおす必要あり) | # 使う前に一度だけ準備を行う(分布を変更する都度、実行しなおす必要あり) | ||
M.t.data = M.t.prep() | M.t.data = M.t.prep() | ||
+ | |||
+ | # 生成した乱数のヒストグラムを10回目ぐらいまで描いてみる | ||
+ | hist(M.t.data[1, | ||
+ | hist(M.t.data[2, | ||
+ | hist(M.t.data[3, | ||
+ | hist(M.t.data[4, | ||
+ | hist(M.t.data[5, | ||
+ | hist(M.t.data[6, | ||
+ | hist(M.t.data[7, | ||
+ | hist(M.t.data[8, | ||
+ | hist(M.t.data[9, | ||
+ | hist(M.t.data[10, | ||
# 再生関数のグラフ | # 再生関数のグラフ | ||
- | plot(1:100,M.t(1:100)) | + | plot((1:300)/10,M.t((1:300)/10), |
+ | | ||
+ | | ||
# ブロック取り替えのコストレートのグラフ | # ブロック取り替えのコストレートのグラフ | ||
- | plot(1:100,(M.t(1:100)*Cc+Cp)/ | + | plot((1:300)/10,(M.t((1:300)/10)*Cc+Cp)/ |
| | ||
| | ||
# ブロック取り替えの子ストレート | # ブロック取り替えの子ストレート | ||
- | Cost.rate.BR <- function(cycle.length) { | + | g = function(cycle.length) { |
return((M.t(cycle.length)*Cc+Cp)/ | return((M.t(cycle.length)*Cc+Cp)/ | ||
} | } | ||
# ブロック取り替えの最適化をRの関数optimizeで実行する | # ブロック取り替えの最適化をRの関数optimizeで実行する | ||
- | optimize(Cost.rate.BR,c(0,10)) | + | optimize(g,c(0,10)) |
</ | </ |