Curve fitting of data points

I have a series of repeated data points that i am trying to fit with a skewed curve. In the graph I am showing one set of the data points which are in blue. The black hand drawn line is the kind of fit i want for my data. I want my fit to be a curve like the one drawn, not a combination of two linear functions or a sawtooth. I have included the data points in text files. Thank you.

4 Comments

Your fit has multiple y values for the same x. Is that desired, or should it instead be unique y values for each x (just possibly steep) ?
Although in the plot it looks like there are multiple values for the same x, in reality they are unique. For example for X=4172,Y=55.31 the next point is X=4173,Y=56.71. The plot is just very steep on the left side. Thank you.
Walter Roberson
Walter Roberson on 19 Jul 2018
Edited: Walter Roberson on 19 Jul 2018
That may be true for the input data, but the black line you show us as the desired fit distinctly wobbles back and forth on the x axis, and since that is presented as your desired outcome, the implication could be that you want the output function to have multiple y values for some of the x.
Anyhow... so if a sharp corner is not desired, then what turn radius should be used?
Do you have a model for what you want the function to be like?
The wobble is because i am not very good at drawing a straight line but the intent was for that line to be straight. You are right, the model that i want should be almost a straight line on the left side, unfortunately i do not have a model function, i am trying to built a model based on this data so i do not have the form, I am just trying to fit the data. Thank you.

Sign in to comment.

 Accepted Answer

Matt J
Matt J on 19 Jul 2018
My suggestion would be a hyperbola, but rotated.

3 Comments

The problem with the rotated hyperbola is that it has a form of f(x,y), the y is because of the rotation. I am familiar with fitting a f(x) but i am not sure how to fit a f(x,y) function.
Matt J
Matt J on 20 Jul 2018
Edited: Matt J on 20 Jul 2018
You are only interested in the positive portion of the hyperbola, so you can write that portion as,
y=a*sqrt(1+(x/b)^2);
which will be like the green curve in the image below. You can also rotate your input x,y data about 135 degrees counter-clockwise so that it will also have a corresponding profile like the red lines in the image below.
Now everything is oriented in a familiar way.
Thank you, it worked well!

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 19 Jul 2018

1 Comment

Thank you for the suggestion. I did try that but unfortunately it does not give me the curved shape i want, it looks more like a combination of 2 linear fits (one for the sloped line on the right and another one that is almost straight for the left side).

Sign in to comment.

Categories

Asked:

on 19 Jul 2018

Commented:

on 23 Jul 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!