我写了一个函数,给定一个方程的项,可以求导数。但是,当其中一个项为零时,函数将崩溃。我如何使用过滤器来确保乘以零的项不会返回?你知道吗
下面是我的基线代码,它可以工作,但还不包括过滤器:
def find_derivative(function_terms):
return [(function_terms[0][0]*function_terms[0][1], function_terms[0][1]-1),(function_terms[1][0]*function_terms[1][1], function_terms[1][1]-1)]
函数项[1][1]-1将导数项的幂减1。你知道吗
它是这样工作的。你知道吗
输入:
# Represent each polynomial term with a tuple of (coefficient, power)
# f(x) = 4 x^3 - 3 x
four_x_cubed_minus_three_x = [(4, 3), (-3, 1)]
find_derivative(four_x_cubed_minus_three_x)
输出:
[(12, 2), (-3, 0)]
这是12 x^2 - 3
的正确答案
但在这里它崩溃了:
输入:
# f(x) = 3 x^2 - 11
three_x_squared_minus_eleven = [(3, 2), (-11, 0)]
find_derivative(three_x_squared_minus_eleven)
它应该根据方程求导数。你知道吗
输出:
((6, 1), (0, -1))
这有一个0 * x^(-1)
的“幽灵”术语;我不想打印这个术语。你知道吗
预期产量: [(6,1)]
可以使用
filter()
函数过滤元组列表,然后在过滤列表上应用逻辑。这样的办法应该行得通。你知道吗现在有了没有常量的元组。因此,与其硬编码导数,不如尝试在列表中循环得到导数。你知道吗
两个变化:
我扩展了它,也消除了系数为零,指数为零的任何东西。我添加了一个测试用例,其中和都是负指数,因为符号微分定理同样适用。你知道吗
输出:
python中有一个符号数学解算器,名为sympy。也许对你有用。你知道吗
相关问题 更多 >
编程相关推荐