R直方图打破错误
R histogram breaks Error
我必须为我的论文准备一个算法来交叉检查一个理论结果,即 N 个周期的二项式模型收敛到 N\to \infty 的对数正态分布。对于那些不熟悉这个概念的人,我必须创建一个算法,该算法采用初始值并将其与向上乘数和向下乘数相乘,并继续为 N 步的每个值这样做。该算法应该 return 一个向量,其元素的形式为 StarterValueu^id^{N-i} i=0,\dots,N
我提出的简单算法是
rata<-function(N,r,u,d,S){
length(x)<-N
for(i in 0:N){
x[i]<-S*u^{i}*d^{N-i}
}
return(x)
}
N 是周期数,其余只是不重要的值(u 代表向上 d 代表向下等)
为了提取我的结果,我需要制作生成的向量对数的直方图以证明它们是正态分布的。但是对于 N=100000(我需要大量的步骤来证明收敛)当我输入 hist(x)
我得到 error :(invalid number of breaks)
谁能帮忙??提前致谢。
一个例子
taf<-rata(100000,1,1.1,0.9,1)
taf1<-log(taf)
hist(taf1,xlim=c(-400,400))
首先我修复你的功能:
rata<-function(N,r,u,d,S){
x <- numeric(N+1)
for(i in 0:N){
x[i]<-S*u^{i}*d^{N-i}
}
return(x)
}
或依赖向量化:
rata<-function(N,r,u,d,S){
x<-S*u^{0:N}*d^{N-(0:N)}
return(x)
}
taf<-rata(100000,1,1.1,0.9,1)
查看结果,我们注意到它包含 NaN
个值:
taf[7440 + 7:8]
#[1] 0 NaN
发生了什么事?显然乘法变成了 NaN
:
1.1^7448*0.9^(1e5-7448)
#[1] NaN
1.1^7448
#[1] Inf
0.9^(1e5-7448)
#[1] 0
Inf * 0
#[1] NaN
为什么会出现 Inf
值?好吧,因为双重溢出(读help("double")
):
1.1^(7440 + 7:8)
#[1] 1.783719e+308 Inf
当乘数接近 0 时,浮点精度也有类似的问题(阅读 help(".Machine")
)。
您可能需要使用任意精度数字。
我必须为我的论文准备一个算法来交叉检查一个理论结果,即 N 个周期的二项式模型收敛到 N\to \infty 的对数正态分布。对于那些不熟悉这个概念的人,我必须创建一个算法,该算法采用初始值并将其与向上乘数和向下乘数相乘,并继续为 N 步的每个值这样做。该算法应该 return 一个向量,其元素的形式为 StarterValueu^id^{N-i} i=0,\dots,N 我提出的简单算法是
rata<-function(N,r,u,d,S){
length(x)<-N
for(i in 0:N){
x[i]<-S*u^{i}*d^{N-i}
}
return(x)
}
N 是周期数,其余只是不重要的值(u 代表向上 d 代表向下等)
为了提取我的结果,我需要制作生成的向量对数的直方图以证明它们是正态分布的。但是对于 N=100000(我需要大量的步骤来证明收敛)当我输入 hist(x)
我得到 error :(invalid number of breaks)
谁能帮忙??提前致谢。
一个例子
taf<-rata(100000,1,1.1,0.9,1)
taf1<-log(taf)
hist(taf1,xlim=c(-400,400))
首先我修复你的功能:
rata<-function(N,r,u,d,S){
x <- numeric(N+1)
for(i in 0:N){
x[i]<-S*u^{i}*d^{N-i}
}
return(x)
}
或依赖向量化:
rata<-function(N,r,u,d,S){
x<-S*u^{0:N}*d^{N-(0:N)}
return(x)
}
taf<-rata(100000,1,1.1,0.9,1)
查看结果,我们注意到它包含 NaN
个值:
taf[7440 + 7:8]
#[1] 0 NaN
发生了什么事?显然乘法变成了 NaN
:
1.1^7448*0.9^(1e5-7448)
#[1] NaN
1.1^7448
#[1] Inf
0.9^(1e5-7448)
#[1] 0
Inf * 0
#[1] NaN
为什么会出现 Inf
值?好吧,因为双重溢出(读help("double")
):
1.1^(7440 + 7:8)
#[1] 1.783719e+308 Inf
当乘数接近 0 时,浮点精度也有类似的问题(阅读 help(".Machine")
)。
您可能需要使用任意精度数字。