您可以尝试对以任意角度旋转的椭圆使用参数化方程:
x = h + a*cos(t)*cos(phi) - b*sin(t)*sin(phi) [1]
y = k + b*sin(t)*cos(phi) + a*cos(t)*sin(phi) [2]
...其中椭圆的中心为 (h,k) 长半轴 a 和短半轴 b,并旋转角度 phi。
然后您可以区分并求解梯度 = 0:
0 = dx/dt = -a*sin(t)*cos(phi) - b*cos(t)*sin(phi)
=>
tan(t) = -b*tan(phi)/a [3]
这应该为您提供许多 t 解决方案(您对其中两个感兴趣),将其插入 [1] 以获得您的最大值和最小值 x。
重复 [2]:
0 = dy/dt = b*cos(t)*cos(phi) - a*sin(t)*sin(phi)
=>
tan(t) = b*cot(phi)/a [4]
让我们尝试一个例子:
考虑在 (0,0) 处的椭圆,a=2,b=1,旋转 PI/4:
[1] =>
x = 2*cos(t)*cos(PI/4) - sin(t)*sin(PI/4)
[3] =>
tan(t) = -tan(PI/4)/2 = -1/2
=>
t = -0.4636 + n*PI
我们对 t = -0.4636 和 t = -3.6052 感兴趣
所以我们得到:
x = 2*cos(-0.4636)*cos(PI/4) - sin(-0.4636)*sin(PI/4) = 1.5811
和
x = 2*cos(-3.6052)*cos(PI/4) - sin(-3.6052)*sin(PI/4) = -1.5811