2011-07-09 112 views
1

我在數學8嘗試下面的代碼:如何在Mathematica中正確計算∞/∞?

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。這是爲什麼?我應該如何處理涉及∞/∞的表達式?

+1

在第一塊,在執行'F [一個]',不是嗎評價'1 /(ZA)''其中Z = A',其評估對'1 /(zz)'='undefined'? – Blender

+0

你看過'Simplify'的輸出嗎?嘗試'FullSimplify';結果是有啓發性的。 – rcollyer

回答

5

一般:

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

簡化[](允許一些數學上不確定的表達來評價)是有據可查的幫助的怪異行爲:

enter image description here

+0

我認爲這是因爲Mathematica並沒有將表達式計算爲一個整體單元,而是計算它的每一個位,並且如果任何位不是由它自己決定的,它會將Indetermine值上傳到它的所有祖先。如果你想讓Mathematica對錶達式做更多的思考,你必須告訴它你需要什麼。 – trVoldemort

+0

@trVoldemort,只在有限的範圍內。如果你的分子和分母是分開評估的,即用不同的函數,那麼它就是事實。但是,它經常可以預見到這種錯誤,特別是在處理數值時。試試'f [10^-10 + a]'看看我的意思。但是,它不能在符號計算中執行相同的一組優化,這是'f [a]'的。 – rcollyer

3

不,∞/∞未定義。考慮到圖2(∞/∞)=(2∞/∞)=∞/∞,這可能被按摩,使1 = 2,如果∞/∞被定義爲1。

+0

http://en.wikipedia.org/wiki/L%27H%C3%B4pital%27s_rule –

+0

注意,洛必達法則只適用於極限。當你從不同的方向接近奇點時,函數完全有可能有兩個不同的極限。(簡單情況:1/x從0的正側接近+∞,從負側到-∞) – duskwuff

+0

我知道有時∞/∞不確定,但在這種特殊情況下,可以看到f [a]最初是'1'。 – trVoldemort

1

無限不一定等於無窮大。因此,你不能斷言「無窮大/無窮大= 1」。

+0

對於任何n,Inf/n = Inf,但對於任何n,n/Inf = 0。 – NoBugs

+0

您無法執行無限操作。它沒有意義,因爲無窮無法存在。它是無形的。你不能將可數和不可數的對象混合在一起,並期待理智的結果。你暗示着* limits *,因爲'x - > inf'的'x/n'的* limit *是'inf'。你不能把無窮大看作一個數字,因爲它不是一個。 – Blender

2

無限是不是一個數字,所以它的操作是沒有意義的,如果你把它當作一個:

infinity + 1 = infinity 
(infinity + 1) - infinity = infinity - infinity 
1 = 0 

除此之外,界限並不總是等於函數的值,這就是數學的暗示當它給你的錯誤。

1

將無窮大除以無窮大確實是不確定的。採取f(x)/g(x)的限制,其中fg傾向於無窮大可能會產生實際限制(或者可能不會)。在你的情況極限恰好是1.