我是一名生物学研究生,并尝试将某种行为编码到R中的模型中,并且有一些“在翻译中丢失”的问题。我的代码跟在帖子后面。我试图模拟这个系统:
想象一下带有振动大理石的浴缸。浴缸的表面由“浴缸”功能给出。我想找到一种方法:在给定“温度”参数的情况下模拟浴缸上大理石的振动。在低温/零温度下,它应该位于底部,并且作为温度。增加,它应该探索更高的双方。我想将它们存储在一个向量中,并能够看到这个随机过程的给定实现的路径。
我的问题是找出不是描述大理石移动表面的功能,而是确定它在该表面上任何点的概率给定起始值,时间和其他参数(曲率参数a和b,温度参数,也许还有其他)。
我基本上在寻找正常分布的代码模拟:
bm <- function(x, x0, t, sigma) {
return(dnorm(x, mean=x0, sd=sigma*sqrt(t)))
}
非常感谢任何想法,代码或有用资源的链接。
BATHTUB#
##Loads packages
library(ggplot2) #for graphing purposes
##Defines the composite distribution bathtub, which is composed of two Beta distributions
bathtub <- function(b, a){
dbeta(x, 1, b) + dbeta(x, a, 1)
}
##Initiates the parameters.
b = 5 #How sharp the higher bound is
a = 20 #How sharp the lower bound is
x <- seq(0, 1, length=101) #high density sample of (0,1)
##Plots
bathtub <- bathtub(a,b) #R likes certain kinds of variables.
qplot(x, bathtub, geom="line") #Plots smooth function pdf(bathtub)
qplot(x, 1-bathtub, geom="line")#this is the "likelihood" function
答案 0 :(得分:1)
我猜你实际上并没有学习浴缸 - 如果你说出实际话题是什么,也许会帮助别人了解会发生什么。
根据现有描述,我至少可以看到两个方向。
(1)使用微分方程模拟大理石的运动。你可能会得到各种有趣的效果 - 对于一些参数组合,大理石获得动能并最终射出浴缸;对于其他人来说,议案是定期的;对于其他人来说,动议是混乱的。这可能很有吸引力,但我猜测它比你真正需要的更详细。
(2)忽略实际的机制,假装大理石是浴缸表面布朗运动的原子。温度升高会使原子的抖动变大。这种情况可能更容易分析;它可能是统计力学中一个已解决的问题。它也让人想起马尔可夫链蒙特卡罗算法。
祝你好运,玩得开心;听起来像一个有趣的问题。