小智..
5
当有人说“它很复杂”时,答案也总是很复杂,因为我不知道您到底拥有什么。因此,我将介绍一些基本思想。
如果曲线是已知的非线性函数,则使用符号工具箱开始。例如,考虑函数y = x ^ 3-3 * x + 5,并且在x,y平面上的点(x0,y0)=(4,3)。
写下距离的平方。欧几里得距离很容易写。
(x - x0)^2 + (y - y0)^2 = (x - 4)^2 + (x^3 - 3*x + 5 - 3)^2
因此,在MATLAB中,我将使用符号工具箱部分完成此操作。最小距离必须位于一阶导数的根。
sym x
distpoly = (x - 4)^2 + (x^3 - 3*x + 5 - 3)^2;
r = roots(diff(distpoly))
r =
-1.9126
-1.2035
1.4629
0.82664 + 0.55369i
0.82664 - 0.55369i
我对复杂的根源不感兴趣。
r(imag(r) ~= 0) = []
r =
-1.9126
-1.2035
1.4629
距离平方的最小值是哪一个?
subs(P,r(1))
ans =
35.5086
subs(P,r(2))
ans =
42.0327
subs(P,r(3))
a