# Thread Subject: finding slope of linear region from a load-displacement curve

 Subject: finding slope of linear region from a load-displacement curve From: Karan Date: 1 Aug, 2012 17:26:13 Message: 1 of 3 I have a slope displacement curve for a biological tissue, it is not as noisy as you would expect it to be. It does have distinct regions (exponential region in the beginning and linear region right after that up till failure). I have my data input from a txt file with 2 columns (Load & Displacement). I need to find the slope of the linear region of the Load-displacement curve (region before failure/highest peak Load). Currently, I'm doing this by defining that most of the linear region is observed from 50% - 80% of the curve before failure. Once I define the points within this region, I do a polyfit for a linear line and get the slope that way. But the problem is that 50%-80% is a gross approximation and does not stand true for all samples. The current method is kind of getting the gross approximation of the slope. Is there a better way to get a more accurate slope? Thanks for the help in advance.
 Subject: finding slope of linear region from a load-displacement curve From: dpb Date: 1 Aug, 2012 18:46:50 Message: 2 of 3 On 8/1/2012 12:26 PM, Karan wrote: > I have a slope displacement curve for a biological tissue, it is not as > noisy as you would expect it to be. It does have distinct regions > (exponential region in the beginning and linear region right after that > up till failure). I have my data input from a txt file with 2 columns > (Load & Displacement). > I need to find the slope of the linear region of the Load-displacement > curve (region before failure/highest peak Load). Currently, I'm doing > this by defining that most of the linear region is observed from 50% - > 80% of the curve before failure. Once I define the points within this > region, I do a polyfit for a linear line and get the slope that way. > But the problem is that 50%-80% is a gross approximation and does not > stand true for all samples. The current method is kind of getting the > gross approximation of the slope. > Is there a better way to get a more accurate slope? Perhaps add points until residual error doesn't continue to drop or pick up a shape of increasing error trend at either end. --
 Subject: finding slope of linear region from a load-displacement curve From: John D'Errico Date: 1 Aug, 2012 19:36:17 Message: 3 of 3 "Karan" wrote in message ... > I have a slope displacement curve for a biological tissue, it is not as noisy as you would expect it to be. It does have distinct regions (exponential region in the beginning and linear region right after that up till failure). I have my data input from a txt file with 2 columns (Load & Displacement). > > I need to find the slope of the linear region of the Load-displacement curve (region before failure/highest peak Load). Currently, I'm doing this by defining that most of the linear region is observed from 50% - 80% of the curve before failure. Once I define the points within this region, I do a polyfit for a linear line and get the slope that way. > > But the problem is that 50%-80% is a gross approximation and does not stand true for all samples. The current method is kind of getting the gross approximation of the slope. > > Is there a better way to get a more accurate slope? > > Thanks for the help in advance. I would use my SLM tools to fit the curve. From what you have said, the curve would be: 1. Monotone, though you have not said if it is increasing or decreasing. I assume that strain-displacement tells me the curve is monotone increasing. 2. The second derivative also will be everywhere positive if I've read your comments properly. You know those pieces of information. Finally, specify that the curve has a linear region in the first half or so. Pick a point below which the curve is clearly linear. The result won't be damaged if you miss that point too low. Then do the fit, and extract the slope of the linear portion. Since the slope is constant in that linear region, this just requires you to use slmeval at the endpoint. The calls might look vaguely like this, assuming that x and y are vectors containing the data for the curve. I made no assumption that the points are sorted so that x is increasing so I had to use min(x) and max(x). slm = slmengine(x,y, 'knots',10, 'increasing','on', ...    'concaveup','on', 'linearregion',min(x) + [0,(max(x) - min(x))*0.2]); This will compute the slope of the curve at the minimum value for x: S = slmeval(slm,min(x),1); http://www.mathworks.com/matlabcentral/fileexchange/24443-slm-shape-language-modeling The only requirement is the optimization toolbox. HTH, John

Separated by commas
Ex.: root locus, bode

### What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.