上机实验(模块)

  1. 请编写一个名称为 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 模块的功能

    注:关于向量运算的相关知识,可以参考高等数学教材, 或参考此演示文稿

  2. 请参考各个软件包的官方文档,分别尝试在自己的计算机中安装 NumPySciPyMatplotlibpandasSymPy 科学计算包。