How to plot step function [x]/x Correctly with limit

Hi all,

I see a problem set and I want to plot this one:

\frac{[x]}{x}

[x] is a step function

I know the code to create step function (from my old thread), but how to create the above function?

using Plots,LaTeXStrings,Colors
gr()

f(x) = floor(x)
x = 0:1:4
y = f.(x)
plot(x[1:2], [y[1], y[1]], label=L"f(x) = \lfloor x \rfloor", legend=:topleft,legend_foreground_color=:white, legend_font_color=:blue3, color=:blue3, showaxis=false, tickfontcolor=:white)
# axis and 
hline!((0,0), color=:black, label="")
vline!((0,0), color=:black, label="")
for i in x
	if i!= 0
		annotate!(i,-0.2, (i, 7))
	end
end
for i in y
	if i != 0
		annotate!(-.2, i, (i, 7))
	end
end
annotate!(-.2, -.2, ("0", 7))
for i in 2:length(x)-1
	plot!(x[i:i+1], [y[i], y[i]], label="", color=:blue3, lw=2)
	scatter!(x[i], y[i], marker=:circle, markersize=8, label="")
end
scatter!(x[1:end-1], y[1:end-1], markersize=3, markercolor=:blue4, label="")
scatter!(x[2:end], y[1:end-1], markersize=3, markercolor=:white, label="")

Did you mean, this?

using Plots

saw_blade(x) = floor(x) / x
xspan = 0.01:0.01:10
plot(xspan, saw_blade.(xspan), legend = :none)

1

2 Likes

Is it really works with just floor(x)?

Anyway thanks a lot, I just want to admit the first time I saw it just like a shark fin…

If that is the function you mean, you are not looking for the word “step function”. The step function is step(x, a=0) = x ≥ a.

I try this:

using Plots, LaTeXStrings
pyplot(fmt=:svg)

step(x, a=0) = x ≥ a
xspan = 0.01:0.01:10
plot(xspan, step.(xspan), legend = :none)

I want to divide this step(x, a=0) = x ≥ a with x and then plot it. Not just plotting the step function.

This is the plot with expanded domain and codomain

using Plots, LaTeXStrings
pyplot(fmt=:svg)

saw_blade(x) = floor(x) / x
xspan = -1.0:0.1:5
plot(xspan, step.(xspan), legend = :none)

Capture d’écran_2022-09-06_14-33-57

I got it now… if anyone wants to explain it rigorously go ahead… I will love your post.

You didn’t use the saw_blade function, you used step. function in plot().