在同一平面上分别绘制曲线x,x的1范数等于1,x的2范数等于1,x的无穷范数等于1,python
时间: 2024-09-09 08:15:50 浏览: 140
在同一平面内绘制曲线代表三维空间中的向量,其中 x 的 1 范数、2 范数和无穷范数都等于 1,这意味着它们构成单位球面的不同侧面。在 Python 中,可以使用 Matplotlib 和 NumPy 库来完成这个任务。首先,你需要理解这些范数:
- 1 范数(Manhattan norm 或 Taxicab norm)是指向量各分量绝对值之和。
- 2 范数(Euclidean norm 或 L2 norm)是指向量的长度,由各分量平方和再开方得到。
- 极限范数(Infinity norm 或 L-infinity norm)是指向量中最大分量的绝对值。
以下是简单的代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
# 创建等间隔的数据点网格
x = np.linspace(-5, 5, 400)
y = np.linspace(-5, 5, 400)
X, Y = np.meshgrid(x, y)
# 计算每个点的1范数、2范数和无穷范数
Z_1_norm = np.abs(X) + np.abs(Y)
Z_2_norm = np.sqrt(np.power(X, 2) + np.power(Y, 2))
Z_inf_norm = np.maximum(np.abs(X), np.abs(Y))
# 绘制三个曲面
fig, ax = plt.subplots(subplot_kw={'projection': '3d'})
ax.plot_surface(X, Y, Z_1_norm, rstride=10, cstride=10, alpha=0.2, color='blue', label='L1 Norm')
ax.plot_surface(X, Y, Z_2_norm, rstride=10, cstride=10, alpha=0.2, color='green', label='L2 Norm')
ax.plot_surface(X, Y, Z_inf_norm, rstride=10, cstride=10, alpha=0.2, color='red', label='L-Infinity Norm')
# 添加单位圆表示1范数等于1的点
circle = Circle((0, 0), radius=1, fill=False)
ax.add_patch(circle)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Norm')
ax.legend()
plt.show()
```
这将生成三个不同的曲面,分别代表三种不同范数下的单位球面。
阅读全文