难以用圣人解决递归积分

car*_*ten 5 python symbolic-math sage

我最近问了一个关于math.stackexchange的问题,关于如何计算交叉超立方体和超球面的体积,我得到了一个非常有用的答案.

现在,我正在尝试利用sage最低维度生成一些分析解决方案.由于我对sage的非常天真的理解,谷歌的帮助和一些试验和错误,我提出了以下解决方案:

from sage.symbolic.integration.integral import definite_integral

R = var("R")
assume(R>0)
x = var("x")

V0(R) = 1
V = [V0]

for i in range(1,4):
    vlast = V[i-1]
    vnew(R) = definite_integral( vlast(R=sqrt(R**2 - x**2)),x,-min(R,1),min(R,1))
    V.append(vnew)        

print(V)
Run Code Online (Sandbox Code Playgroud)

但是,输出并不是我预期的结果:

[R |--> 1, R |--> 2*R, R |--> pi*R^2, R |--> 4/3*pi*R^3]
Run Code Online (Sandbox Code Playgroud)

Sage非常好地计算了n维球体的体积,但它在某种程度上没有发现结果函数将在R中分段定义的事实.

我如何使用这个min功能有什么问题吗?我如何定义(或命名)我的变量有什么问题吗?我搞砸了哪里?