有没有一种方法来评估函数/表达式中的数字操作数(+, - ,/,*)?计数算术运算
在示例,让我们简单的线性代数问题(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)
接着,让应用Gauss消去过程:
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))。
“数字”是什么意思? – Divakar
*“是否有一种方法可以用数字方式评估数字操作的数量(+, - ,/,*)。”* - 其中有四个? – jonrsharpe
你可以使用['unittest.mock.Mock.call_count'](https://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.call_count)和使用'对象'数组 –