为什么要-100与+100呢
时间: 2023-09-30 16:03:29 浏览: 34
在上面的代码中,我们在图像上绘制直线时,使用了以下代码来计算直线的起点和终点:
```c++
startPoint.x = lineParams[2] - 100 * lineParams[0];
startPoint.y = lineParams[3] - 100 * lineParams[1];
endPoint.x = lineParams[2] + 100 * lineParams[0];
endPoint.y = lineParams[3] + 100 * lineParams[1];
```
这里的计算方式是为了让直线的长度更加明显,从而更容易观察到拟合效果。具体来说,我们将直线向两端延长了 100 个像素,这样直线就不会只在图像的中央一段区域内出现,而是会贯穿整个图像,更容易被观察到。
当然,这里的 100 可以根据实际情况进行调整,比如增加或减少直线的长度。
相关问题
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 <- rep(0, n+1) c<-pmax(c,s-buy) } C<-c[1] cat("风险中性概率q为:", q, "\n") cat("期权的价值为:", C, "元\n")为什么c为0
在这段代码中,c被初始化为0向量,然后在循环中进行递推计算。在每次循环中,都会重新赋值c为:
```
c <- exp(-r*jg)*(q*c[-1]+(1-q)*c[-length(c)])
c <- rep(0, n+1)
c <- pmax(c,s-buy)
```
这里第二行的`c <- rep(0, n+1)`会将向量c的值全部设为0,因此之前的计算结果都会被覆盖掉,导致最后c的值仍为0,而不是正确的期权价值。
如果要在循环中不断更新c的值,可以将初始化c的语句移动到循环之外,即:
```
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)
}
```
这样就可以正确地计算出期权的价值了。
为什么要将浮点数乘以100?
将浮点数乘以 100 是为了将其转换为小数点后两位为有效数字的整数。这样,我们就可以使用格式化字符串 `{:.2f}` 将其格式化为保留两位小数的字符串,并在字符串的末尾添加 `e-12` 表示指数为 -12。
例如,如果我们有一个浮点数 `1.23e-11`,我们可以将其乘以 100 得到 `1.23e-09`,然后使用格式化字符串 `{:.2f}` 将其格式化为字符串 `'0.01'`,最后添加 `e-12` 得到 `'0.01e-12'`。这样,我们就将科学计数法表示的浮点数转换为了 `0.01e-12` 的形式,其中小数点后两位为有效数字。