请编写一个名称为 vec
的模块,用于进行三维直角坐标系中的向量运算。要求将模块代码存储在 vec.py
的源文件中,模块中至少实现向量的加法、减法、长度(模)、标量积(点积)、向量积(叉积)、标量三重积(混合积)运算的函数或方法,也可以自由地为该模块添加其他一些基本功能。另外要求为模块、类、函数和方法添加说明文档,并在 main.py
文件中调用此模块以验证其功能。
以下给定了 vec.py
文件的初始代码:
class Vector:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __str__(self):
"""返回向量的字符串表示形式"""
return f'({self.x:.1f}, {self.y:.1f}, {self.z:.1f})'
def length(self):
...
def addition(vec1, vec2):
...
def subtraction(vec1, vec2):
...
def dot_product(vec1, vec2):
...
def cross_product(vec1, vec2):
...
def scalar_triple_product(vec1, vec2, vec3):
...
要求在 main.py
文件中,统一使用以下向量验证模块中各函数和方法的计算结果:
import vec
v1 = vec.Vector(15.2, 22.3, -13.6)
v2 = vec.Vector(-2.3, 45.0, -23.3)
v3 = vec.Vector(34.7, 0.0, 57.5)
# TODO: 在这里验证 vec 模块的功能
注:关于向量运算的相关知识,可以参考高等数学教材, 或参考此演示文稿。
请参考各个软件包的官方文档,分别尝试在自己的计算机中安装 NumPy、SciPy、Matplotlib、pandas 和 SymPy 科学计算包。