How to plot multiple functions on same figure using fplot?
17 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Gavin Thompson
am 28 Okt. 2021
Beantwortet: Star Strider
am 28 Okt. 2021
stress = [0;0.0464;0.1940;0.4962;0.5040;0.5566;0.6040;0.6260;0.6240;0.6100;0.5880;0.5720];
strain = [0;0.2220;0.3600;0.4980;0.5040;0.8820;2.6640;4.4400;5.9100;6.7380;7.1460;7.2900];
coeffL = polyfit(strain,stress,1);
mL = coeffL(1);
bL =coeffL(2);
yL = @(x) mL*x+bL;
coeffP = polyfit(log10(strain),log10(stress),1);
mP = coeffP(1);
bP = 10.^coeffP(2);
yP = @(x) bP.*(x.^mP);
coeffE = polyfit(strain,log(stress),1);
mE = coeffE(1);
bE = exp(coeffE(2));
yE = @(x) bE.*exp(mE.*x);
figure(2)
hold on
fplot(yL,[0,4]);
fplot(yP,[4,8]);
fplot(yE,[8,12]);
For some reason when I run the code it only graphs the linear portion
0 Kommentare
Akzeptierte Antwort
Star Strider
am 28 Okt. 2021
The problem is that the polyfit call returned NaN for both parameters. I substituted a simple nonlinear power relation and used fminsearch to solve it. The fit is not excellent, however the parameters are finite. I used those in the second plot. (The added first plot simply showed the regression result of the data and the fit.)
stress = [0;0.0464;0.1940;0.4962;0.5040;0.5566;0.6040;0.6260;0.6240;0.6100;0.5880;0.5720];
strain = [0;0.2220;0.3600;0.4980;0.5040;0.8820;2.6640;4.4400;5.9100;6.7380;7.1460;7.2900];
coeffL = polyfit(strain,stress,1);
mL = coeffL(1);
bL =coeffL(2);
yL = @(x) mL*x+bL;
objfcn = @(b,x) b(2).*x.^b(1);
B = fminsearch(@(b)norm(stress-objfcn(b,strain)), rand(2,1)*10)
figure
plot(strain, stress, 'p')
hold on
plot(strain, objfcn(B,strain), '-r')
hold off
grid
coeffP = polyfit(log10(strain),log10(stress),1)
% mP = coeffP(1);
mP = B(2);
bP = B(1);
yP = @(x) bP.*(x.^mP);
coeffE = polyfit(strain,log(stress),1);
mE = coeffE(1);
bE = exp(coeffE(2));
yE = @(x) bE.*exp(mE.*x);
figure(2)
fplot(yL,[0,4]);
hold on
fplot(yP,[4,8]);
fplot(yE,[8,12]);
Experiment to get different results.
.
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Stress and Strain finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!