2015-11-20 4 views
-1

У меня есть задача решить с помощью Matlab. У меня есть две кривые, сгенерированные с помощью функций 'fit' в matlab. их уравнения заключаются в следующем:Проверка того, что заданная точка (x, y) находится ниже или выше кривой

FO =

Linear model Poly2: 
    fo(x) = p1*x^2 + p2*x + p3 
Coefficients (with 95% confidence bounds): 
    p1 = -0.005234 (-0.007191, -0.003278) 
    p2 =  0.8276 (0.537, 1.118) 
    p3 =  39.62 (30.59, 48.65) 

фу =

Linear model Poly2: 
    fu(x) = p1*x^2 + p2*x + p3 
Coefficients (with 95% confidence bounds): 
    p1 = -0.004092 (-0.01098, 0.002796) 
    p2 =  0.856 (-0.1671, 1.879) 
    p3 =  14.73 (-17.06, 46.53) 

Моя задача состоит в том, чтобы проверить, если любой данной точке (х, у) либо ниже кривой фу или выше кривая fo. (в идеале точка (x, y) должна быть между этими кривыми для начала следующего процесса.)

Как подойти?

+0

Предлагаю посмотреть на 'y',' fo (x) 'и' fu (x) '. Используйте порядок, определенный для действительных чисел, чтобы определить их относительные позиции. –

ответ

0

что-то вроде

% your data 
xm=1; 
ym=5; 

if ym<fu(xm) & ym>fo(xm) 
    % good! 
else 
    % bad :(
end 

?

0

Для любого данного уравнения, любого порядка, Say

Y = a1x2 + B1x + с1, Вы можете написать, Y- (a1x2 + B1x + с1) = 0 Пусть это будет у - ф (x) = 0

И пусть ваша точка будет (x ', y') Если y '- f (x')> 0, ваша точка лежит вне кривой, и если это < 0, она находится внутри.

Надеюсь, это поможет.