请编制一个通用程序计算向量的范数
时间: 2024-12-22 20:27:34 浏览: 3
当然可以。向量范数是一个向量到原点的距离,通常有几种常见的向量范数,如欧几里得范数(L2范数)、曼哈顿范数(L1范数)和无穷大范数(L-inf范数)。这里是一个简单的通用函数,用于计算二维或三维向量的欧几里得范数:
```python
import math
def vector_norm(vector):
"""
计算给定向量的欧几里得范数。
参数:
- vector (list/tuple): 一个包含数值元素的一维列表或元组,表示向量
返回值:
- float: 向量的欧几里得范数
"""
if len(vector) == 2: # 二维向量
return math.sqrt(vector[0]**2 + vector[1]**2)
elif len(vector) == 3: # 三维向量
return math.sqrt(vector[0]**2 + vector[1]**2 + vector[2]**2)
else:
raise ValueError("只支持二维和三维向量")
# 示例
print(vector_norm([1, 2])) # 欧氏范数计算
print(vector_norm((3, 4, 5))) # 三维欧氏范数计算
```
如果你想计算其他类型的范数,比如曼哈顿或无穷大范数,需要稍微修改一下这个函数。对于曼哈顿范数,只需将平方根替换为绝对值之和;对于无穷大范数,则取向量中每个分量的最大值。
阅读全文