불연속성에서 지정 제한을 평가할 때 제한 기능의 일관되지 않은 동작

Aug 19 2020

다음 표현식을 고려하십시오.

(* In *) expr1 = Hold[Limit[Sign[x], x -> y, Direction -> "FromAbove"] == Sign[y]]

이제 특정 값을 y다음으로 대체하겠습니다 .

(* In *) expr2 = expr1 /. y -> 0

지금 평가하면 일관성없는 결과가 나타납니다.

(* In *) ReleaseHold[expr1]
(* Out *) True
(* In *) ReleaseHold[expr2]
(* Out *) False

제 생각 expr1에는 잘못 평가되었습니다. 나는 Limit함수 y == 0가이 문제로 이어지는 특별한 경우가 가능하다는 것을 어떻게 든 "잊었다" 고 생각한다 . 이것을 어떻게 피할 수 있습니까? Limit[Sign[x], x -> y, Direction -> "FromAbove"]올바른 결과로 다음과 같은 결과 를 얻을 것으로 예상합니다 .

(* Out *) Piecewise[{{Sign[y], y != 0}, {1, y == 0}}]

답변

2 Pillsy Aug 19 2020 at 21:25

다음 과 같이에 대한 GenerateConditions옵션 을 사용하려고합니다 Limit.

limit = Limit[Sign[x], x -> y, GenerateConditions -> True]
(* ConditionalExpression[Sign[y], y != 0] *)

limit /. y -> 0
(* Undefined *)

이것은 많은 상징적 기능과 함께 작동합니다. 제 생각에는 기본적으로 전체적으로 설정되어야 True하지만 현재 기본값은 Automatic이며 다른 기능으로 다른 작업을 수행합니다.