为什么Integrate算实数定积分会给出复数结果
mathematica吧
全部回复
仅看楼主
level 1
版本为12.0,Integrate函数给出错误的复数结果,但NIntegrate函数结果正确。
R[m_, n_] :=
Integrate[(1 - Cos[m x + n y])/(2 - Cos[x] - Cos[y]), {x, -Pi,
Pi}, {y, -Pi, Pi}]/(4 Pi^2)
(*R[1,0]*)
Integrate[(1 - Cos[x])/(2 - Cos[x] - Cos[y]), {x, -Pi, Pi}, {y, -Pi,
Pi}]/(4 Pi^2)
(*(2 I Log[2])/\[Pi]*)
NIntegrate[(1 - Cos[x])/(2 - Cos[x] - Cos[y]), {x, -Pi, Pi}, {y, -Pi,
Pi}]/(4 Pi^2)
(*0.5*)
2024年08月18日 14点08分 1
level 1
更新:已解决,需要把累次积分换成区域积分。但这个函数是恒正的,不知道为什么改变次序会有区别。
R[m_, n_] :=
Integrate[(1 - Cos[m x + n y])/(2 - Cos[x] - Cos[y]), {x,
y} \[Element] Rectangle[{-Pi, -Pi}, {Pi, Pi}]]/(4 Pi^2)
R[1, 0]
2024年08月19日 03点08分 2
吧务
level 15
(至少目前)Mathematica积分的区域语法和重积分语法调用的算法是不一样的,参看下面两帖:
tieba.baidu.com/p/8035377581
tieba.baidu.com/p/8436912832?pid=147759352322&cid=0#147759352322
2024年09月07日 02点09分 3
1