Wolfram mathematica Mathematica Plot3D在绘制用户定义函数时不生成绘图?

Wolfram mathematica Mathematica Plot3D在绘制用户定义函数时不生成绘图?,wolfram-mathematica,finance,Wolfram Mathematica,Finance,我正在编写black-scholes模型的简单Mathematica实现,并使用Plot3D绘制定价面。但是,当我运行此代码时,不会生成任何绘图。Mycall和put函数在单独运行时生成正确的值,但不生成绘图。代码: Clear[d1, d2, call, put, stockPrice, strikePrice, riskFreeRate, timeToExp, volatility] d1[stockPrice_, strikePrice_, riskFreeRate_, timeToEx

我正在编写black-scholes模型的简单Mathematica实现,并使用Plot3D绘制定价面。但是,当我运行此代码时,不会生成任何绘图。My
call
put
函数在单独运行时生成正确的值,但不生成绘图。代码:

Clear[d1, d2, call, put, stockPrice, strikePrice, riskFreeRate, timeToExp, volatility]

d1[stockPrice_, strikePrice_, riskFreeRate_, timeToExp_, volatility_] := (Log[stockPrice / strikePrice] + (riskFreeRate + 0.5*volatility^2)*timeToExp) / (volatility * Sqrt[timeToExp])

d2[stockPrice_, strikePrice_, riskFreeRate_, timeToExp_, volatility_] := d1[stockPrice, strikePrice, riskFreeRate, timeToExp, volatility] - volatility*Sqrt[timeToExp]

call[stockPrice_, strikePrice_, riskFreeRate_, timeToExp_, 
  volatility_] := stockPrice * CDF[NormalDistribution[0, 1], d1[stockPrice, strikePrice, riskFreeRate, timeToExp, volatility]] - strikePrice * Exp[-riskFreeRate*timeToExp] *CDF[NormalDistribution[0, 1], d2[stockPrice, strikePrice, riskFreeRate, timeToExp, volatility]]

Plot3D[call[stockPrice, 500, 0.0030, timeToExp, 0.39], {stockPrice, 
  10, 1000}, {timeToExp, 0.0833333, 5}]
其他绘图,如参考中的此示例,也可以使用

Plot3D[{x^2 + y^2, -x^2 - y^2}, {x, -2, 2}, {y, -2, 2}, 
 RegionFunction -> Function[{x, y, z}, x^2 + y^2 <= 4], 
 BoxRatios -> Automatic]
Plot3D[{x^2+y^2,-x^2-y^2},{x,-2,2},{y,-2,2},
区域函数->函数[{x,y,z},x^2+y^2自动]

您只需调用[]和
timeToExp
(小写字母t)在绘图范围的规范中。

我被告知堆栈交换有一个。这个问题在那里会得到更多的帮助,还是应该保留在这里?您犯了一个打印错误:
timeToExp
vs
timeToExp
。在最后一个输入行中用一个替换另一个,您将得到所需的绘图。请注意,语法突出显示是您自己的问题在这种情况下的朋友,这里的问题仍然被回答,但是请考虑使用Mathematica站点来回答将来的问题。谢谢你让我知道。我将在未来发布我的相关问题。难以置信。骆驼案件再次诅咒我。谢谢你抓住了这个问题。