gpt4 book ai didi

python - 计算算术运算

转载 作者:太空宇宙 更新时间:2023-11-04 03:24:42 24 4
gpt4 key购买 nike

有没有办法计算函数/表达式中数字运算(+、-、/、*)的数量?

例如,我们来看一个简单的线性代数问题 (Ax = b):

A_data = np.array([[1, -4, 1],
[1, 6, -1],
[2, -1, 2]], dtype=float)

b_data = np.array([[7],
[13],
[5]], dtype=float)

接下来,让我们应用高斯消去法:

def gauss_elim(A, b):
Ab = np.column_stack((A, b))
for k, pivot_row in enumerate(Ab[:-1]):
for row in Ab[k+1:]:
if pivot_row[k] != 0:
row[k:] = row[k:] - pivot_row[k:] * row[k]/pivot_row[k]
return Ab

结果是:

array([[  1. ,  -4. ,   1. ,   7. ],
[ 0. , 10. , -2. , 6. ],
[ 0. , 0. , 1.4, -13.2]])

如何计算操作数?

注意:我知道操作的数量可以事先通过数学计算(即对于 Gaussian elimination 是 O(n^3))。

最佳答案

如果你能花一点时间,应该有一个方法:创建一个数字类并覆盖基本的算术方法:__add__, __mul__, __sub__, __div__ 通过在其中嵌入一个计数器系统(例如与某些全局变量相关)。然后,您应该能够通过使用 dtype=object 参数(在创建数组时)强制 Numpy 使用您的类型,以确保 Numpy 不会将您的数字转换为任何其他类型。我有时这样做是为了完成更简单的任务;我从来没有用 Numpy 做过,但它应该可以工作。希望对您有所帮助。

关于python - 计算算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33483704/

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