这确实是个问题,我也没找到根本原因所在。不过,加上下面这个参数,就能得到想要的结果了。
GenerateConditions -> False
Integrate 函数默认会计算对所有参数都正确的一个结果(条件表达式,很多时候,可以通过使用参数 Assumptions 告诉 Mma 参数的限制条件就可以避免条件表达式结果的出现;也可以使用 Refine 函数化简条件表达式)
如果你对积分结果有一个预判,或事后会进行检验,那么使用参数 GenerateConditions 是个不错的选择,使用它可以得到一个对部分参数值正确的结果(具体是哪部分就不得而知了,如果从帮助里挖不出来,就去SE问一下吧。如果有了答案,最好可以反馈回来,谢谢)
例如:
Clear["Global`*"]
W[x_] := x^(-4) + 2 x^2 - 3
dw = D[W[\[Xi]], \[Xi]];
h1[\[Lambda]_, z_] :=
Integrate[
dw/(1 - \[Xi]^3), {\[Xi],
Evaluate[((z + 1)^3*(\[Lambda]^3 - 1) + 1)^(1/3)], \[Lambda]},
GenerateConditions -> False]
h1[x, z]
h1[x, 0.1]