为什么除法的结果是“ inf”?

问题描述 投票:0回答:1

我有以下代码来计算所需的数量:

import numpy as np

N = 2
lamda = 2
mu = 1
a = 0.5
St_Sp = np.arange(- N, N + 1)
Card = St_Sp.shape[0]

#%% Define infintesimal generator
def In_Ge(x, y):
    if x == N or x == - N:
        re = 0
    elif x - y == - 1:
        re = lamda
    elif x - y == 1:
        re = mu
    elif x - y == 0:
        re = - (mu + lamda)
    else: re = 0
    return re

x = St_Sp[0]
y = In_Ge(x, x) / (In_Ge(x, x) + np.log(a))
b = - 1 / y

print(b)

结果为inf。我检查发现y的值不为零,所以我不明白为什么会发生这种现象。您能详细说明这个问题吗?

python-3.x divide-by-zero
1个回答
0
投票

@ pinegulf的评论解决了我的问题:

您的'In_Ge(x,x)'重新运行0,因此y = 0且1/0定义很差。编辑:您说不是,但是如果调用x ==-2和函数,则它首先起作用。

© www.soinside.com 2019 - 2024. All rights reserved.