Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R直方图中断错误_R_Algorithm_Histogram - Fatal编程技术网

R直方图中断错误

R直方图中断错误,r,algorithm,histogram,R,Algorithm,Histogram,我必须为我的论文准备一个算法来交叉检查一个理论结果,即N个周期的二项式模型收敛到N到N个周期的对数正态分布。对于那些不熟悉这个概念的人,我必须创建一个算法,它接受一个起始值,并将其与一个向上乘数和一个向下乘数相乘,然后对N步中的每个值继续这样做。该算法应返回一个向量,其元素的形式为StarterValueu^id^{N-i}i=0、\dots,N 我提出的简单算法是 rata<-function(N,r,u,d,S){ length(x)<-N for(i in 0:N){

我必须为我的论文准备一个算法来交叉检查一个理论结果,即N个周期的二项式模型收敛到N到N个周期的对数正态分布。对于那些不熟悉这个概念的人,我必须创建一个算法,它接受一个起始值,并将其与一个向上乘数和一个向下乘数相乘,然后对N步中的每个值继续这样做。该算法应返回一个向量,其元素的形式为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)
}

首先,我修复您的函数:

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)
}
发生了什么事?显然,乘法变成了
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
值?嗯,由于双重溢出(请阅读
帮助(“双重”)
):

当乘法器接近0时,浮点精度也会出现类似问题(请阅读
帮助(“.Machine”)


您可能需要使用任意精度的数字。

首先,我修复您的函数:

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)
}
发生了什么事?显然,乘法变成了
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
值?嗯,由于双重溢出(请阅读
帮助(“双重”)
):

当乘法器接近0时,浮点精度也会出现类似问题(请阅读
帮助(“.Machine”)


您可能需要使用任意精度的数字。

首先,我修复您的函数:

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)
}
发生了什么事?显然,乘法变成了
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
值?嗯,由于双重溢出(请阅读
帮助(“双重”)
):

当乘法器接近0时,浮点精度也会出现类似问题(请阅读
帮助(“.Machine”)


您可能需要使用任意精度的数字。

首先,我修复您的函数:

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)
}
发生了什么事?显然,乘法变成了
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
值?嗯,由于双重溢出(请阅读
帮助(“双重”)
):

当乘法器接近0时,浮点精度也会出现类似问题(请阅读
帮助(“.Machine”)



您可能需要使用任意精度的数字。

请提供一个可复制的示例,即调用此函数并生成直方图(导致此错误)的代码。此外,模拟不能“证明收敛性”。是的,你是正确的,该算法是作为收敛性的另一个展示而存在的,实际的证明发生在这之前。至于示例,我更新了问题,但是我不知道为什么我不能将其设置为代码格式您的示例错误,因为结果向量
taf1
仅包含-Inf、Inf和NaN。所以没有实际的数字来做柱状图。我现在看到了,但为什么会发生这种情况?我能理解inf,-inf,但我不能理解NAN,不能理解对数运算,不能理解算法。taf只包含0和Inf。在干净的环境中,函数会出错,因为没有定义x。更好的方法是只使用矢量化方法(我请提供一个可复制的示例,即调用此函数并生成直方图的代码(导致此错误)。此外,模拟无法“证明收敛”是的,你是对的,这个算法是作为收敛的另一个展示,实际的证明发生在那之前。至于这个例子,我更新了这个问题,但是我不知道为什么我不能把它变成代码格式你的例子错误,因为结果向量
taf1
只包含-Inf,Inf和NaN。所以没有实际的数字我现在明白了,但为什么会这样?我能理解inf,-inf,但我不能理解NAN。不是对数,算法。taf只包含0和inf。在干净的环境中,函数会出错,因为没有定义x。更好的方法是使用向量化方法(请提供一个可复制的示例,即调用此函数并生成直方图(导致此错误)的代码。此外,模拟无法“证明收敛”是的,你是对的,这个算法是作为收敛的另一个展示,实际的证明发生在那之前。至于这个例子,我更新了这个问题,但是我不知道为什么我不能把它变成代码格式你的例子错误,因为结果向量
taf1
只包含-Inf,Inf和NaN。所以没有实际的数字我现在明白了,但为什么会这样?我能理解inf,-inf,但我不能理解NAN。不是对数,算法。taf只包含0和inf。在干净的环境中,函数会出错,因为没有定义x。更好的方法是使用向量化方法(请提供一个可复制的示例,即调用此函数并生成直方图(导致此错误)的代码。此外,模拟无法“证明收敛”是的,你是对的,这个算法是作为收敛的另一个展示,实际的证明发生在那之前。至于这个例子,我更新了这个问题,但是我不知道为什么我不能把它变成代码格式你的例子错误,因为结果向量
taf1
只包含-Inf,Inf和NaN。所以没有实际的数字我现在明白了,但为什么会这样?我能理解inf,-inf,但我不能理解NAN。不是对数,算法。taf只包含0和inf。在干净的环境中,函数会出错,因为x没有定义。更好的方法是使用向量化方法(i