楼主: xinying11
657 1

[有偿编程] 用R生成对数凹函数随机数 [推广有奖]

  • 0关注
  • 0粉丝

小学生

14%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.1500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
53 点
帖子
2
精华
0
在线时间
7 小时
注册时间
2022-11-5
最后登录
2023-6-7

楼主
xinying11 学生认证  发表于 2022-11-15 10:13:50 |AI写论文
10论坛币
如何用R语言生成对数凹函数随机数,救救孩子吧  ,看了好久了
R1=rep(0,15)
R1[15]=5

X=c(0.5794672, 0.7091715, 0.8354615 ,0.9360012 ,0.9377477, 0.9993006 ,1.0504122 ,1.0855902,
    1.3160316, 1.4271615, 1.5559699, 1.5595734, 1.6737055)
JX=13
RXJ=7
TimX=X[13]

a=1
b=2
#要生成的随机数服从的密度函数,密度函数只在0~0.5794672 有定义   而且在这个范围是对数凹的
Paimiu <- function(miu){
  Gmiu <- sum((R1[1:JX]+1)*(X-miu)^2)+RXJ*(TimX-miu)^2
  value = prod(X-miu)/((b+Gmiu)^(JX+a))
  # cat(value,'\n')
  return(value)
}

#对数凹函数算法(帮忙看看有什么问题,拜托了)
M <- 0.01  
C <- Paimiu(M)
r <- log(C)
a=TRUE
while (a==TRUE) {
  U <- runif(1,0,2)
  E <- rexp(1)
  if(U<=1){
    miuvalue=U
    t=-E
  }else{
    Ex=rexp(1)
    miuvalue=1+Ex
    t=-E-Ex
  }
  miuvalue <- M +miuvalue/C
  cat(miuvalue,'\n')
  if(t<= log(Paimiu(miuvalue))-r){
    a=FALSE
  }
}

这是算法论文截图

屏幕截图 2022-11-15 100832.png

关键词:随机数 密度函数 Tim 如何用 IMI

沙发
kaifengedu 发表于 2022-11-15 18:43:36
此帖仅作者可见

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-16 17:27