# 一、正定矩阵与椭圆的关系
二维空间中椭圆最基本的形式为
a2x2+b2y2=1
上面的这个方程写成矩阵的形式为
[xy]T[a2100b21][xy]=xTAx=1
A 的特征值为
λ1=a21, λ2=b21
A 的归一化特征向量为
μ1=[210], μ2=[021]
椭圆的长短轴分别沿着矩阵A 的两个特征向量的方向,而两个与之对应的特征值分别是半长轴和半短轴的长度的平方的倒数,即满足
a=λ11, b=λ21
更一般的,对于如下方程所示椭圆
ax2+2bxy+cy2=1
化为矩阵形式是
[xy]T[abbc][xy]=xTAx=1
# 二、椭圆的一般方程
椭圆的一般方程为
a2[(x−x0)cosθ+(y−y0)sinθ]2+b2[(x−x0)sinθ−(y−y0)cosθ]2=1
其中 (x0,y0) 为椭圆中心点,θ 为椭圆倾角,椭圆倾角如下图紫色线与黄色线所成锐角
将该椭圆变为矩阵形式为
[x−x0y−y0]T[a2cos2θ+b2sin2θa2cosθsinθ+b2cosθsinθa2cosθsinθ+b2cosθsinθa2sin2θ+b2cos2θ][x−x0y−y0]=1
# 三、绘制一般椭圆的 matlab 程序
| ellipse_l = 5; % 椭圆半长轴 |
| ellipse_s = 2; % 椭圆半短轴 |
| ellipse_theta = (10) / 180 * pi; % 椭圆倾角 |
| ellipse_center = [5, 4.5]; % 椭圆中心点坐标 |
| |
| cut_off_value = 3; % 奇异值截断值 |
| |
| % 椭圆展开后方程的各个参数 |
| a = ellipse_l^2*sin (ellipse_theta)^2+ellipse_s^2*cos (ellipse_theta)^2; |
| b = 2*(ellipse_s^2-ellipse_l^2)*sin (ellipse_theta)*cos (ellipse_theta); |
| c = ellipse_l^2*cos (ellipse_theta)^2+ellipse_s^2*sin (ellipse_theta)^2; |
| d = -ellipse_l^2*ellipse_s^2; |
| |
| % 绘制椭圆图像 |
| figure (1) |
| fimplicit (@(x,y) a.*(x-ellipse_center (1)).^2+b.*(x-ellipse_center (1)).*(y-ellipse_center (2))+c.*(y-ellipse_center (2)).^2+d,[0 10 0 10]); |
| hold on |
| scatter (ellipse_center (1),ellipse_center (2)) |
| hold on |