У меня есть набор данных, которые при построении графика x vs y дадут график, как на этом рисунке . Я хочу подобрать параболу к этим данным, и я попытался использовать инструмент подбора кривой в MATLAB. Единственная проблема заключается в том, что я получаю ответ, как показано здесь. Я знаю координаты, в которых должен находиться центр или вершина параболы. Но когда я использую параметр пользовательского уравнения, я получаю сообщение об ошибке «это выражение не имеет коэффициентов или нескалярных коэффициентов». Я новичок в этом. Есть ли способ указать центр и правильно подобрать подгонку? Центральные точки (352 595). Спасибо.
Как подогнать параболу к данным в MATLAB, указав центральную точку?
Ответы (1)
То, что вы нарисовали черным цветом от руки, не является параболой. Это не соответствует уравнению y=a*x^2+b
, поэтому вы не можете его подогнать. На самом деле это следует за y=±sqrt(a*x)+b
. Я не уверен, сможете ли вы подобрать функцию к этому уравнению (на самом деле это 2 уравнения).
Что вы можете сделать, как предлагается в комментариях, это поменять местами координаты X/Y и подогнать данные таким образом. Затем вы можете численно интерполировать результирующую параболу и снова поменять местами координаты, чтобы она была в исходном виде.
Однако имейте в виду, что если вы сделаете это, у вас будет 2 решения для каждого X и ни одного для многих из них.
person
Ander Biguri
schedule
19.05.2015
В статье, за которой я следую, дается формулируемое здесь уравнение параболы. Он имеет вид x-xcenter=a(y-ycenter)^2 . То, что я ожидал, было C-образной параболой, соответствующей графику моих данных. Но этого не произойдет без указания значений xcenter и ycenter. Перестановка осей работает, но было бы лучше, если бы мне не приходилось этого делать.
- person Surya Rajan; 19.05.2015
@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
x=a*y^2+b
моде, а не в стандартном! Попробуйте поменять местами координаты X/Y - person Ander Biguri   schedule 19.05.2015