我是一名生物学研究生,正在尝试将某种行为编码到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 发布于 2014-08-11 04:25:36
我猜你实际上并不是在研究浴缸--如果你说出真正的主题,也许这会帮助其他人理解正在发生的事情。
根据现有的描述,我至少可以看到两个方向。
(1)使用微分方程模拟大理石的运动。你可能会得到各种有趣的效果--对于某些参数组合,大理石获得动能并最终从浴缸中射出;对于另一些组合,运动是周期性的;对于另一些组合,运动是混沌的。这可能很吸引人,但我猜它比你真正需要的要详细得多。
(2)忽略实际力学,假设大理石是一个在浴缸表面做布朗运动的原子。温度升高会使原子的抖动更大。这个场景可能更容易分析;它可能是统计力学中已解决的问题。这也让人想起马尔可夫链蒙特卡罗算法。
祝你好运,玩得开心;听起来像是一个有趣的问题。
https://stackoverflow.com/questions/25230375
复制相似问题