gpt4 book ai didi

python - python中使用Maclaurin系列e ^ x的实现

转载 作者:行者123 更新时间:2023-12-03 16:10:59 25 4
gpt4 key购买 nike

我有numpy数组,我想使用幂级数,如tayt series的e^x,我想知道如何在python中实现这一点。为了简单起见,我认为我可以在x0=0上使用maclaurin系列,其中x是numpy数组。基本上,我有1个暗像素向量,并且我想通过使用e ^ x的泰勒级数展开来非线性地展开每个像素值。换句话说,在输出矢量中,每个像素将被泰勒级数展开项的第一项和第二项替换。有什么想法可以在python中实现吗?
数学概念:
这是我要完成的简单数学概念,其中可以通过使用幂级数(例如e^x的maclaurin系列)来对nunmpy数组进行非线性扩展。
enter image description here
我的尝试:

import numpy as np

arr= np.array([[120.0,24.0,12.0],[14.0,28.0,43.0]])
arr= arr/255.0

def maclurin_exp(x, power):
res = x*0
for i in range(power):
res += x**i/math.factorial(i)
return res

## test my code:
maclurin_exp(x=arr, power=3)
新更新2 :
准确地说, Fe^x的泰勒级数, x是每个像素值, x0是0处的逼近点。例如,如果我们在1个暗矢量中有8个像素,那么在对每个像素值使用taylor级数e ^ x之后,首先泰勒扩展的第二个任期将被视为输出。
enter image description here
如何在python中做到这一点?以更紧凑的方式完成Maclaurin系列 e^x的实现的任何解决方法?任何想法?
预期输出
例如,我们有1个暗像素矢量 [1,2,3,4,5,6,7,8],然后我们通过使用e ^ x的maclurin系列,应用上述数学方程式近似每个像素值:
pixel = [1,2,3,4,5,6,7,8]
那么对于每个像素值,泰勒级数的e ^ x的第一项和第二项将是我的最终输出。

最佳答案

根据更新的定义,可能是这样的:

def exp_taylor(x, x0=0, n_terms=2):
f_a = np.exp(x0)
terms = [f_a * ((x-x0)**i)/np.math.factorial(i) for i in range(n_terms)]
return np.dstack(terms).ravel()
围绕 e^(x)扩展 a就是 e^(a) + e^(a)(x-a) + e^(a)(x-a)^2/2!等等。然后 dstackravel的组合将这些术语交织到单个向量中。因此,如果您有 [np.array([a0,b0,c0]), np.array([a1,b1,c1])],它将把它们组合到 np.array([a0,a1,b0,b1,c0,c1])
x = np.array([1, 1, 2, 3, 5, 8, 13, 21])
x_ = exp_taylor(x, x0=1, n_terms=3)
print(x_)
>>>
[ 2.71828183 0. 0. 2.71828183 0.
0. 2.71828183 2.71828183 1.35914091 2.71828183
5.43656366 5.43656366 2.71828183 10.87312731 21.74625463
2.71828183 19.0279728 66.5979048 2.71828183 32.61938194
195.71629165 2.71828183 54.36563657 543.65636569]

关于python - python中使用Maclaurin系列e ^ x的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62816563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com