我需要计算一个向量的范数使用symy和符号从symy。摘录的代码如下:
from sympy import *
x = Symbol('x')
sb = [2,1]
func = sympy.exp(-(sympy.sqrt((x.norm() + (x-sb).norm())**2 - sb**2)/(2)))
func_prime = func.diff(x)
ff = lambdify(x, func_prime, 'numpy')
f = -1*ff(np.array(r))
上面的实现给了我错误:AttributeError: 'Symbol' object has no attribute 'norm'
.
如果我使用func = V0 * sympy.exp(-(sympy.sqrt((sympy.sqrt(sum(x**2)) + sympy.sqrt(sum((x-sb*e)**2)))**2 - sb**2)/(2*sig)))
,我会得到以下错误:TypeError: 'Pow' object is not iterable
.
sympy不接受numpy. linalg. norm()。
在这种情况下,我怎样才能求出向量的范数呢?
谢谢
4条答案
按热度按时间tez616oj1#
Sympy有一个
vector
模块可以使用。您还可以将其用于符号:
tvmytwxo2#
你好:)我建议你如下:
其中M.x,M.y,M.z是物理学中的酉向量i,j,k,我们知道范数是向量与自身的点积的平方根,所以
如果要以LaTeX格式打印结果
如果你想简化表达式,
2g32fytz3#
muk1a3rh4#
这个怎么样?