Hi all,
Trying to create a plot using heaviside function after being given a piecewise function. The code, I managed to get 2 different results, so I am not sure which is correct.
The piecewise function is the following:
x^2 - 1; if 0 <= x < 2
f(x) = 2x - 3; if 2 <= x < 5
sin(x); if x >= 5
My code is the following.
y = (t.^2-1).*[heaviside(t)-heaviside(t-2)]+(2.*t-3).*[heaviside(t-2)-heaviside(t-5)]+sin(t).*heaviside(t-5);
plot(t,y)
I may have made a mistake in the conversion to heaviside, and I am not so well versed in the step function, so it's a little challenging to analyze the graph to see whether or not it is correct. Any input is greatly appreciated!

1 Kommentar

xRah
xRah am 26 Nov. 2020
I included the code that I assumed to be correct

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 26 Nov. 2020

0 Stimmen

Yes, your code is correct. Following will work
t = 0:0.01:10;
y = (t.^2-1).*[heaviside(t)-heaviside(t-2)]+(2.*t-3).*[heaviside(t-2)-heaviside(t-5)]+sin(t).*heaviside(t-5);
plot(t,y)
However, an easier solution is to use piecewise()
syms x
f(x) = piecewise(0<=x<2, x^2-1, 2<=x<5, 2*x-3, 5<=x, sin(x));
fplot(f, [0 10])

1 Kommentar

xRah
xRah am 26 Nov. 2020
It seems that using the piecewise route shows the same graph as mine. I forgot to include the values of t in the code above. Thank you Hamza for the clarification. I really do appreciate it!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 26 Nov. 2020

1 Stimme

syms f(x) t
f(x) = piecewise(x<0, 0, 0 <= x & x < 2, x^2 - 1, 2 <= x & x < 5, 2*x - 3, 5 <= x, sin(x));
f(t)
ans = 
sympref('HeavisideAtOrigin', 1);
y = (t.^2-1).*[heaviside(t)-heaviside(t-2)]+(2.*t-3).*[heaviside(t-2)-heaviside(t-5)]+sin(t).*heaviside(t-5)
y = 
yp = rewrite(y, 'piecewise')
yp = 
fplot(f(t)-y, [-1 10])
The formulas come out the same except in a different order of cases, and the difference between the two appears to be all zero

1 Kommentar

xRah
xRah am 26 Nov. 2020
Hi Walter and thank you for your input.
I am not entirely sure I follow everything you did, but how come your output graph looks different from my output?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Creating, Deleting, and Querying Graphics Objects finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2018a

Gefragt:

am 26 Nov. 2020

Kommentiert:

am 26 Nov. 2020

Community Treasure Hunt

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

Start Hunting!

Translated by