我在Mathematica 8中尝试了下面的代码:
f[z_] := (5 + 1/(z-a)) / ( 8 + 1/(z-a))
f[a]令人惊讶的是,我收到了以下警告:
Power::infy: Infinite expression 1/0 encountered. >>
Power::infy: Infinite expression 1/0 encountered. >>
Infinity::indet: Indeterminate expression 0 ComplexInfinity encountered. >输出是Indeterminate,我认为这不是真的,因为很明显是1。
奇怪的是,当我将代码更改为:
Simplify[(5 + 1/(z-a)) / ( 8 + 1/(z-a))] /. a -> z我得到了正确的输出1。为什么会这样呢?我应该如何处理涉及∞/∞的表达式?
发布于 2011-07-09 12:23:07
通常:
Limit[(5 + 1/(z - a))/(8 + 1/(z - a)), z -> a]
(*
-> 1
*)编辑
如有必要,您还可以添加一个Direction选项来接受来自任一端的限制:
Limit[(5 + 1/(z - a))/(8 + 1/(z - a)), z -> a, Direction -> 1]或
Limit[(5 + 1/(z - a))/(8 + 1/(z - a)), z -> a, Direction -> -1]编辑2
帮助中很好地记录了Simplify 的奇怪行为(允许计算一些数学上不确定的表达式):

发布于 2011-07-09 12:20:21
不,∞/∞未定义。考虑2(∞/∞)=(2∞/∞)=∞/∞,如果∞/∞被定义为1,则可以将其消息传递为1=2。
发布于 2011-07-09 12:29:42
无穷大不是一个数字,所以如果你把它当做一个数字来处理,那么使用它的操作是没有意义的:
infinity + 1 = infinity
(infinity + 1) - infinity = infinity - infinity
1 = 0除此之外,限制并不总是等于函数的值,这就是Mathematica在给出错误时所暗示的。
https://stackoverflow.com/questions/6632672
复制相似问题