2014-12-01 2 views
-1

Скажем, например, у меня есть данные, которые формируют параболическую кривую y = x^2, и я хочу прочитать значение x для заданного значения y. Как мне это сделать в MATLAB?Matlab: точка пересечения кривых

Если бы это была прямая линия, я мог бы просто использовать уравнение линии наилучшего соответствия, чтобы легко вычислить, однако я не могу сделать это с изогнутой линией. Если я не смогу найти решение, я решит для корней

Заранее спасибо.

+0

Так почему же вы не можете сделать то же самое для параболической кривой, как для линии? Ваши данные формируют параболическую кривую в любом случае, так что это хорошо подходит ...? – kkuilla

ответ

2

Если все данные являются массивами (не аналитические выражения), я обычно делаю, что нахождение минимальной абсолютной погрешности

x=some_array; 
[~,ind]=min(abs(x.^2-y0)) 

Здесь y0 является данное значение у

Если данные представлены в виде функции, вы можете использовать fsolve:

function y = myfun(x) 
    y=x^2-y0 

[x,fval] = fsolve(@myfun,x0,options) 

Для символьных вычислений, можно использовать solve

syms x 
solve(x^2 - y0) 
Смежные вопросы