Sympy 向量计算
First Post:
Last Update:
Word Count:
Read Time:
Page View: loading...
Last Update:
Word Count:
336
Read Time:
1 min
Page View: loading...
三维坐标系
1 |
|
坐标系统下有三个正交基向量:N.i
,N.j
,N.k
。
零向量
零向量为 Vector.zero
,与坐标系统无关。
1 |
|
坐标原点
1 |
|
向量运算
四则运算
1 |
|
点乘、叉乘
1 |
|
&
和 ^
分别被重载为点乘和叉乘。
向量操作
查看元素:
1
2
3
4from sympy.vector import CoordSys3D
C = CoordSys3D('C')
v = 3*C.i + 4*C.j + 5*C.k
print(v.components) # {C.i: 3, C.j: 4, C.k: 5}获取向量模长:
1
v.magnitude() # 5*sqrt(2)
将向量标准化:
1
v.normalize() # (3*sqrt(2)/10)*C.i + (2*sqrt(2)/5)*C.j + (sqrt(2)/2)*C.k
其他操作:
1
2
3
4
5
6
7
8
9
10
11from sympy.abc import a, b, c
from sympy import sin, cos, trigsimp
from sympy.vector import CoordSys3D
N = CoordSys3D('N')
v = (sin(a)**2 + cos(a)**2)*N.i - (2*cos(b)**2 - 1)*N.k
print(trigsimp(v)) # N.i + (-cos(2*b))*N.k
print(v.simplify()) # N.i + (-cos(2*b))*N.k
v = (a*b + a*c + b**2 + b*c)*N.i + N.j
v.factor() # ((a + b)*(b + c))*N.i + N.j