MATLAB: What is the best method to fit a curve to strain-stress data

fitting functionfitting strain-stress data

Dear Matlab experits,
Is there any preference towards any method (Matlab function) to fit a curve into strain-stress data? Is polyfit is reliable enough?
Thank you..
Aziz

Best Answer

NO polynomial will ever fit that curve (at least, not fit it well.) NONE. PERIOD.
x = data_mathwork(:,1);
>> y = data_mathwork(:,2);
>> plot(x,y,'.')
Think about it. The function is clearly asymptotically linear above a certain point, but highly nonlinear below that point. Below that point, it appears to have a singularity.
How many polynomials can you think of that have those properties? (None.)
If you want to fit a model to that data, then you will need to choose one that has reasonable properties. It ain't gonna be a polynomial.
Were I to try to find a model, I would first exchange x and y, fitting the first variable as a function of the second. That eliminates the singularity. All curve fitting tools have problems with that.
If I do so, and then fit the result with a spline, I get this:
untitled.jpg
Which suggests the upper part is not truly asymptotically linear, but close. If I look at the first derivative, it is indeed trailing off.
untitled.jpg
I'd just use an intelligently fit least squares spline as the simplest thing you could do.