我想定义有限范围内的索引,以消除分段表达式中的歧义
例如:
from sympy import *
x = IndexedBase('x')
n = Symbol('n', nonnegative = True, integer = True)
k = Idx('k', (1, n))
f = 1/sqrt(Sum(x[k]**2, (k, 1, n)))
j = Idx('j', (1,n))
diff = diff(f,x[j])
print(diff.simplify())
返回:
-Piecewise((x[j], n >= j), (0, True))/Sum(x[k]**2, (k, 1, n))**(3/2)
然而,我在定义j
时已经声明,n>=j、 我希望分子中有x[j]
,而不是分段表达式。有没有办法解决这个问题
为什么使用索引j?这似乎混淆了简化算法
相反,使用索引k进行微分,它返回预期的 结果,没有虚假的分段分割:
输出:
相关问题 更多 >
编程相关推荐