xj<-100 buy<-110 r<-0.05 time<-0.25 up<-1.15 down<-0.88 q<-(1+r-down)/(up-down) n<-3 jg<-time/n u <- seq(0, n+1) u <- choose(n, u)*q^u*(1-q)^(n-u) d <- rev(u) s<-50*up^u*d^rev(u) c <- pmax(s-buy,0) for(i in n:1){ c <- exp(-r*jg)*(q*c[-1]+(1-q)*c[-length(c)]) c <- pmax(c,s-buy) } cat("风险中性概率q为:", q, "\n") cat("期权的价值为:", C, "元\n")中为什么Warning messages: 1: In pmax(c, s - buy) : an argument will be fractionally recycled 2: In pmax(c, s - buy) : an argument will be fractionally recycled 3: In pmax(c, s - buy) : an argument will be fractionally recycled
时间: 2024-02-25 11:57:08 浏览: 102
这个警告信息还是由于向量`c`和向量`s-buy`的长度不一致导致的。
在你的代码中,虽然将向量`u`和向量`d`的长度改为$n+2$,但向量`s`的长度仍然是$n+1$。这是因为在计算向量`s`时,使用了`rev(u)`,它的长度是$n+1$,因此向量`s`的长度也是$n+1$。
要解决这个问题,可以将向量`u`和向量`d`的长度改为$n+3$,向量`s`的长度改为$n+2$,即:
```
u <- seq(0, n+2)
u <- choose(n, u)*q^u*(1-q)^(n-u)
d <- rev(u)
s <- 50*up^u*d^rev(u)[-1]
```
这样就可以保证向量`s`和向量`c`的长度一致,不再出现警告信息。
相关问题
xj<-100 buy<-110 r<-0.05 time<-0.25 up<-1.15 down<-0.88 q<-(1+r-down)/(up-down) n<-3 jg<-time/n u<-seq(0,n) u<-choose(n,u)*q^u*(1-q)^(n-u) d<-rev(u) s<-50*up^u*d^rev(u) c<-pmax(s-buy,0) for(i in n:1){ c<-exp(-r*jg)*(q*c[-1]+(1-q)*c[-length(c)]) c<-pmax(c,s-buy) } C<-c[1]在代码中为什么显示In pmax(c, s - buy) : an argument will be fractionally recycled
这个错误是因为在使用pmax函数时,向量c和向量s-bu长度不一致导致的。pmax函数会对向量中的每个元素进行比较,找到最大值,但是当两个向量长度不一致时,较短的向量会被“循环使用”,即向量中的元素会被重复使用,直到和较长的向量一样长。
在这段代码中,向量s-bu的长度为n+1,而向量c的长度为n,所以当使用pmax函数时,向量c中的元素会被循环使用两次,导致了这个错误。解决这个问题的方法是将向量c的长度加1,即:
c <- rep(0, n+1)
c <- pmax(s-bu, 0)
这样向量c的长度就和向量s-bu一样了,就不会出现这个错误了。
xj=1 while xj <=100: mj=0 while mj <=100: gj=100-mj-xj if gj*5+mj*3+xj/3==100: print('小鸡',xj,'母鸡',mj,'公鸡',gj) mj+=1 xj+=1运行不了
这段代码有一些问题,运行时会出现无限循环的情况。我来给你分析一下:
1. 在内层循环中,mj 的值一直没有变化,导致程序一直在同一个值上循环,无法继续执行后面的代码。
2. 在内层循环中,xj 的值也在不断增加,这会导致外层循环无法结束。
3. 这段代码中没有对 xj 和 mj 的初始值进行定义。
根据你的需求,这段代码的目的是求解鸡的数量问题。我来给你提供一份可以正确运行的代码:
```python
for xj in range(1, 101):
for mj in range(1, 101):
gj = 100 - xj - mj
if gj * 5 + mj * 3 + xj / 3 == 100:
print('小鸡', xj, '母鸡', mj, '公鸡', gj)
```
这段代码使用了两个 for 循环来分别循环小鸡和母鸡的数量,可以正确地输出符合条件的结果。希望能对你有帮助!
阅读全文