好吧我知道之前有一个有限的例子已经被要求缩放[-1, 1]
间隔[a, b]
高斯 - 勒让德正交在numpy中的不同间隔但是没有人发布如何概括它[-a, Infinity]
(如下所述,但不是(还)快).这也显示了如何使用多个实现调用复杂函数(无论如何在定量选项定价中).有基准quad
代码,后面跟着leggauss
代码示例链接到如何实现自适应算法.我已经解决了大多数链接的adaptive algorithm
困难 - 它目前打印分割积分的总和以显示它正常工作.在这里,你会发现功能的范围从转换[-1, 1]
到[0, 1]
以[a, Infinity]
(感谢@AlexisClarembeau).要使用自适应算法,我不得不创建另一个函数来转换[-1, 1]
到[a, b]
被反馈到[a, Infinity]
功能.
import numpy as np
from scipy.stats import norm, lognorm
from scipy.integrate import quad
a = 0
degrees = 50
flag=-1.0000
F = 1.2075
K = 0.1251
vol = 0.43
T2 = 0.0411
T1 = 0.0047
def integrand(x, flag, F, K, …
Run Code Online (Sandbox Code Playgroud) python wolfram-mathematica numpy scipy numerical-integration
Plotly.js包含配置ModeBar所需的所有参数,允许用户从显示栏中取走选项(例如在线编辑图形的链接).但是,这似乎没有在Plotly.py API中实现.在js版本中:
Plotly.newPlot('myDiv', data, layout, {displayModeBar: false});
完全删除模式栏.
Plotly.newPlot('myDiv', data, layout, {displaylogo: false}, {modeBarButtonsToRemove: ['sendDataToCloud','hoverCompareCartesian']})
允许我们指定每个按钮来删除我想要实现的按钮.
我编辑了这个,因为我找到了一个解决方法...请参阅我在下面发布的答案.对于那些有其他参数的人来说,它们可以派上用场.
由于某种原因,我无法让接收函数看到 Python 中 **kwargs 中传递的变量。(已解决 - 请参阅编辑)。这说明了问题 - **kwargs 参数通过多个函数传递并进入该integrand
函数。我在其中放置了一个 print(kwargs) ,它显示了我在下面的前几行中创建的整个字典。但函数看不到这些变量,integrand
并且会出错。使最终函数可以访问这些变量的正确方法是什么?非常感谢,在 SO 上搜索了很多帖子,但找不到与我的案例直接相关的内容。
def integrand(x, F, K, T1, T2, vol, flag):
print(kwargs)
d1 = (np.log(x / (x+K)) + 0.5 * (vol**2) * (T2-T1)) / (vol * np.sqrt(T2 - T1))
d2 = d1 - vol*np.sqrt(T2 - T1)
mu = np.log(F) - 0.5 *vol**2 * T1
sigma = vol * np.sqrt(T1)
value = lognorm.pdf(x, scale=np.exp(mu), s=sigma) * (flag * x*norm.cdf(flag * d1) - flag * (x+K)*norm.cdf(flag * …
Run Code Online (Sandbox Code Playgroud)