what is the best method to fit a curve to strain-stress data?

조회 수: 40 (최근 30일)
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

채택된 답변

John D'Errico
John D'Errico 2019년 7월 21일
편집: John D'Errico 2019년 7월 21일
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.
  댓글 수: 3
John D'Errico
John D'Errico 2019년 7월 22일
편집: John D'Errico 2019년 7월 22일
As I was thinking about it, I was wondering if there were some model forms established for stress-strain behavior. I assume this is elastic-plastic behavior of a material. Even though one of my graduate degrees is in mechanical engineering, that was many years ago, and I never concentrated on that side of things even then. But some reading might turn up some ideas.
Lacking that, if all you want is a plot and a smooth fit, you can use my SLM toolbox (on the file exchange). The fit that I showed was achieved with the one line:
slm = slmengine(y,x,'knots',8,'increasing','on');
Abdulaziz Abutunis
Abdulaziz Abutunis 2019년 7월 22일
Thank you John I will try it, though I have tried several methods incluing using statistcal smothing such as moving avrage and moving median windows. All works however, there is always so nosy segment which is the one in the elastic region where I need to fit a linear segment. So since I have alot of curves, what i did was to scan for the best R^2 in that region then extrapolated it then shif it then use a subroutin form the file extchane that catch the intersection between the shifted line and the smoothed curve data. I wich I would find a some magical tool that will reliably smooth the data then every thing will be easy to work out.
Thank you again and apreciate your suggestion

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Get Started with Curve Fitting Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by