公告:本站正式转型为非交互式静态网站!
转型:本站将通过笔记和博客的形式继续为大家服务,关于 Mathematica 问答服务请移步至QQ群:365716997
联系:如有问题请联系QQ群管理员,或发送邮件至:lixuan.xyz@qq.com。
感谢:最后非常感谢大家多年来的支持与帮助!
参考《互联网跟帖评论服务管理规定》《中华人民共和国网络安全法》《网络信息内容生态治理规定》《互联网用户账号信息管理规定》

—— 2022-11-27

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

+2 投票
2.8k 浏览
Clear["Global`*"]
W[x_] := x^(-4) + 2 x^2 - 3
h1[\[Lambda]_, z_] := 
 Integrate[
  D[W[\[Xi]], \[Xi]]/(1 - \[Xi]^3), {\[Xi], ((z + 1)^3*(\[Lambda]^3 - 
         1) + 1)^(1/3), \[Lambda]}, 
  Assumptions -> z > 0 && \[Lambda] > 1]

使用命令

h1[x, z]

能够得到结果

但是使用命令

h1[x, 0.1]

却得到

请问是怎么回事?

在后面必须代入数值时怎么才能避免出现这种不收敛的问题?

分类:函数 | 用户: keanhy (361 分)

2 个回答

0 投票
\[Xi]的积分上下限换个顺序。
用户: 苹果 (2.2k 分)
同问,这是怎么回事?为何交换上下限就行了?
能解释一下原因吗?
出于未知原因,积分上限应大于积分下限,虽然数学中并无此规定。
没有必要吧,交换顺序只差了一个负号
所以我说的是“出于未知原因,积分上限应大于积分下限”,关键词出于未知原因。
0 投票

这确实是个问题,我也没找到根本原因所在。不过,加上下面这个参数,就能得到想要的结果了。

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]

 

用户: 野鹤 (5.1k 分)
...