Как подогнать параболу к данным в MATLAB, указав центральную точку?

У меня есть набор данных, которые при построении графика x vs y дадут график, как на этом рисунке . Я хочу подобрать параболу к этим данным, и я попытался использовать инструмент подбора кривой в MATLAB. Единственная проблема заключается в том, что я получаю ответ, как показано здесь. Я знаю координаты, в которых должен находиться центр или вершина параболы. Но когда я использую параметр пользовательского уравнения, я получаю сообщение об ошибке «это выражение не имеет коэффициентов или нескалярных коэффициентов». Я новичок в этом. Есть ли способ указать центр и правильно подобрать подгонку? Центральные точки (352 595). Спасибо.

введите здесь описание изображения


person Surya Rajan    schedule 19.05.2015    source источник
comment
Но это не парабола! Ну это в x=a*y^2+b моде, а не в стандартном! Попробуйте поменять местами координаты X/Y   -  person Ander Biguri    schedule 19.05.2015
comment
Это действительно работает, спасибо! Но я никак не могу установить здесь параболу? Указав центр, как в вопросе?   -  person Surya Rajan    schedule 19.05.2015


Ответы (1)


То, что вы нарисовали черным цветом от руки, не является параболой. Это не соответствует уравнению y=a*x^2+b, поэтому вы не можете его подогнать. На самом деле это следует за y=±sqrt(a*x)+b . Я не уверен, сможете ли вы подобрать функцию к этому уравнению (на самом деле это 2 уравнения).

Что вы можете сделать, как предлагается в комментариях, это поменять местами координаты X/Y и подогнать данные таким образом. Затем вы можете численно интерполировать результирующую параболу и снова поменять местами координаты, чтобы она была в исходном виде.

Однако имейте в виду, что если вы сделаете это, у вас будет 2 решения для каждого X и ни одного для многих из них.

person Ander Biguri    schedule 19.05.2015
comment
В статье, за которой я следую, дается формулируемое здесь уравнение параболы. Он имеет вид x-xcenter=a(y-ycenter)^2 . То, что я ожидал, было C-образной параболой, соответствующей графику моих данных. Но этого не произойдет без указания значений xcenter и ycenter. Перестановка осей работает, но было бы лучше, если бы мне не приходилось этого делать. - person Surya Rajan; 19.05.2015
comment
@SuryaRajan Если вы поменяете оси местами, вы можете подогнать параболу, потому что уравнение x-xcenter=a(y-ycenter)^2 ‹- это сейчас. Вот что вы делаете, когда меняете местами X/Y, конвертируете из y-ycenter=±sqrt(a*x-xcenter) в x-xcenter=a(y-ycenter)^2 - person Ander Biguri; 19.05.2015