Python 因指数不稳定性

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

设置: 我在 python 中有以下函数,其中 x 可以变得非常大:

import numpy as np

def function(x, pi):
  d = len(pi)
  output = 0
  for r in range(d):
    output += pi[r] * np.exp(-x)
  return output

输入描述: x 可能非常大,导致 np.exp(-x) 的计算结果为零,从而导致整个函数为零,而 pi 只是一个概率向量(例如 [0.5, 0.5])。

问题: 有没有更稳定的方法来实现这个功能,这样它就不会导致输出为零?谢谢。

编辑: 我决定提供更多细节,因为它在评论中被问到。整个功能是

def entire_function(x_array, pi, r):
  d = len(pi)
  numerator = np.exp(-x_array[r])
  denominator = 0
  for r_prime in range(d):
    denominator += pi[r_prime] * np.exp(-x_array[r_prime])
  return numerator / denominator 
python math numeric exponent
© www.soinside.com 2019 - 2024. All rights reserved.