首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SymPy定积分中的ZeroDivisionError;可变积分界

SymPy定积分中的ZeroDivisionError;可变积分界
EN

Stack Overflow用户
提问于 2020-04-17 06:01:30
回答 1查看 82关注 0票数 1

我使用Julia并调用SymPy对其两个变量an进行二变量正态分布函数的积分。我希望在集成边界中包含第三个变量p,但当我尝试此变量时,SymPy会抛出ZeroDivisionError。

运行以下命令,

代码语言:javascript
运行
复制
using SymPy
σ = 0.2
ρ = -0.9
f(a,n) = (1/(2*π*(σ^2)*sqrt(1-ρ^2)))*exp(-(1/(2*(1-ρ^2)))*((a^2)/σ^2 + (n^2)/σ^2 -((2*ρ*a*n)/σ^2)))
@vars a n p
integrate(a*f(a,n), (n, -oo, p*a), (a, -oo, oo))

收益率

代码语言:javascript
运行
复制
ERROR: PyError ($(Expr(:escape, :(ccall(#= C:\Users\Anshu\.julia\packages\PyCall\zqDXB\src\pyfncall.jl:43 =# @pysym(:PyObject_Call), PyPtr, (PyPtr, PyPtr, PyPtr), o, pyargsptr, kw))))) <class 'ZeroDivisionError'>

奇怪的是,以下尝试运行没有任何问题:

只是对f进行积分,而不是a*f:

代码语言:javascript
运行
复制
integrate(f(a,n), (n, -oo, p*a), (a, -oo, oo))

将p替换为常量1:

代码语言:javascript
运行
复制
integrate(a*f(a,n), (n, -oo, a), (a, -oo, oo))
EN

回答 1

Stack Overflow用户

发布于 2020-04-17 08:00:50

在定义sigma和rho之后,我得到:

代码语言:javascript
运行
复制
julia> integrate(a*f(a,n), (n, -oo, p*a), (a, -oo, oo)) |> string
"0.159154943091895*Integral(a*exp(-a^2/(-2*ρ^2*σ^2 + 2*σ^2))*Integral(exp(-n^2/(-2*ρ^2*σ^2 + 2*σ^2))*exp(2*a*n*ρ/(-2*ρ^2*σ^2 + 2*σ^2)), (n, -oo, a*p)), (a, -oo, oo))/(σ^2*sqrt(-(ρ - 1)*(ρ + 1)))"

也许这是你的症状版本,我有

代码语言:javascript
运行
复制
julia> sympy.__version__
"1.5.1"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61260761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档