How to create a best fit line here?

4 views (last 30 days)
I was trying to make a best-fit line with the data that I have, but for some reason the polyfit command doesn't seem to give me the right answer for it. Does anyone know how to fix it? Thank you.
thickness = 0.8; % the units are in mm
width = 12.7;
area = thickness*width;
load = xlsread('homework1.xlsx','A9:A42');
strain = xlsread('homework1.xlsx','B9:B42');
trueStress1 = (load.*(1+strain))./area; % true stress calculation
trueStrain1 = log(strain + 1); % true strain calculation
x = log(trueStrain1);
y = log(trueStress1);
p = polyfit(x,y,1); % bestfit the line between points
f = polyval(p,x);
figure;
plot(x,y,'o');
hold on
plot(x,f,'-');
title('True Stress vs. True Strain');
xlabel('Log \epsilon');
ylabel('Log \sigma');
legend('data','linear fit','location','northwest')

Accepted Answer

Chad Greene
Chad Greene on 10 Feb 2021
It looks like the first x value is -Inf. Try eliminating that point from the polynomial fit, like this:
p = polyfit(x(2:end),y(2:end),1); % bestfit the line between points

More Answers (0)

Categories

Find more on Stress and Strain in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!