Huber function matlab plotting with two intervals
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Kentman
am 31 Mär. 2015
Bearbeitet: Walter Roberson
am 15 Nov. 2017
Hello,
I was trying to write this simple matlab function:
rho(eps)=0.5*eps^2 for eps<=k
rho(eps)=k*eps-0.5*k^2 for eps>k
for k=1.345
so my solution was:
k=1.345;
for eps=0:0.001:6
if eps<=k
f1=0.5*(eps^2);
else
f1=k*eps-0.5*(k^2);
end %if loop
end %for loop
plot(eps,f1)
There was almost empty graph and sometimes only linear function although this function is supposed to be nonlinear in the first part and linear in the other part.
and also i'm supposed to plot the derivative of this function after this is complete.
0 Kommentare
Akzeptierte Antwort
Torsten
am 31 Mär. 2015
k=1.345;
eps=zeros(6001);
f1=zeros(6001);
for i=1:6001
eps(i)=(i-1)*0.001;
if eps(i)<=k
f1(i)=0.5*(eps(i)^2);
else
f1(i)=k*eps(i)-0.5*(k^2);
end %if loop
end;
plot(eps,f1)
Best wishes
Torsten.
0 Kommentare
Weitere Antworten (3)
Torsten
am 31 Mär. 2015
Or more "MATLAB-like":
k=1.345;
eps=0:0.001:6;
f1=zeros(size(eps));
epsf=eps<=k;
f1(epsf)=0.5*eps(epsf).^2;
epsf=eps>k;
f1(epsf)=k*eps(epsf)-0.5*k^2;
plot(eps,f1);
Best wishes
Torsten.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Optimization 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!