【问题标题】:Why is the result of this division "inf"?为什么这个除法的结果是“inf”?
【发布时间】:2020-06-02 08:53:16
【问题描述】:

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

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 的值不是零,所以我不明白为什么会发生这种现象。能否详细说明一下这个问题?

【问题讨论】:

  • 您的 'In_Ge(x,x)' 返回 0,因此 y= 0 和 1/0 的定义非常糟糕。编辑:你说它不是,但你的 x==--2 和功能首先 if 被调用。

标签: python-3.x divide-by-zero


【解决方案1】:

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

您的“In_Ge(x,x)”返回 0,因此 y= 0 和 1/0 的定义非常糟糕。编辑:你说它不是,但你的 x==--2 和函数首先 if 被调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多