# Stepwise Function Mathematica

1. Aug 1, 2007

### laminatedevildoll

How do I define a stepwise function in Mathematica? I am trying to model the behavior of a detector up in the atmosphere. For instance, the detector might experience temperature drops in the atmosphere over a 24 hour period. I would like to know if there's any way of using a step function in Mathematica to do that. Thanks.

2. Aug 2, 2007

### George Jones

Staff Emeritus
Yes, you can use the Heavisde step function to do this. For exmple,

$$\left( Heaviside \Heaviside \left( x-1 \right) - Heaviside \left( x-3 \right) \right) x^2$$

is the the function $x^2$ for $1 < x < 3$, and zero elsewhere.

Heaviside is a Maple function, but Mathematica will have a similar function, with maybe a different name.

3. Aug 2, 2007

### CompuChip

Which version of Mathematica are you using?

As George suggested, you can use the Heaviside function
Code (Text):

( HeavisideTheta[x - 1] - HeavisideTheta[x - 3] ) x^2

You can do
Code (Text):

f[x_] := 0;
f[x_] := x^2 /; (x > 1 && x < 3)

which is ugly but works.

You can use Which
Code (Text):

g[x_] := Which[x < 1, 0, x > 3, 0, True, x^2];

which is better, but has the unfortunate property that it Hold[]s its arguments, so this won't do if you want to apply functions and replacements to this.

The most elegant way, in my opinion, is using the Piecewise function
Code (Text):

h[x_] := Piecewise[{{x^2, 1 < x < 3}}, 0]

but this function was implemented in 5.1 so that won't help you if you have an older version.

Last edited: Aug 2, 2007
4. Aug 3, 2007

### laminatedevildoll

I am using version 6.0.

I actually tried to do a piecewise function but it didn't quite work out. Instead, I just plot the points and connected it so that it looks like a stepwise function. I have attached the plot I want to this post. However, I need to learn how to do achieve this shape the right way with a stepwise function and not just points, because in the future I will need to replace this function instead of a sine function into two differential equations to solve it.

The points I am using are for the attached plot are
The x values are fixed. The y values can change but the same shape needs to be achieved. If this is impossible to do with a step function, is it possible to model this using a cubic spline function with the same general shape as the step function?
I would appreciate any help.

#### Attached Files:

• ###### stepwise.JPG
File size:
4.4 KB
Views:
165
Last edited: Aug 3, 2007
5. Aug 4, 2007

### CompuChip

Code (Text):

Plot[Piecewise[{{1, x < 3.5}, {2, x < 5.5}, {1.5, x < 9.5}, {2,
x < 15}}, 1], {x, 0, 25}, PlotRange -> {0, 2}]

worked fine here (Mathematica 6.0), without the vertical lines (they finally fixed that bug ).

But if you insist on the vertical lines, you can use
Code (Text):

Plot[Which[x < 3.5, 1, x < 5.5, 2, x < 9.5, 1.5, x < 15, 2, True,
1], {x, 0, 25}, PlotRange -> {0, 2}]

6. Aug 4, 2007

### Moo Of Doom

For the vertical lines, you can also use the Exclusions option:

Code (Text):
Plot[Piecewise[{{1, x < 3.5}, {2, x < 5.5}, {1.5, x < 9.5}, {2,
x < 15}}, 1], {x, 0, 25}, PlotRange -> {0, 2}, Exclusions -> None]

7. Aug 7, 2007

8. Aug 7, 2007

### laminatedevildoll

Thanks. I am still trying to get adjusted to Mathematica.

Similar Threads - Stepwise Function Mathematica Date
Mathematica Cannot do the integral of the Hyper-geometric function? Mar 11, 2018
Mathematica Cannot Plot This Function in Mathematica Feb 26, 2018
Mathematica While Loop in Mathematica Feb 25, 2018
Matlab Dotting autonomous functions Jan 24, 2018
Mathematica Piecewise Function Jan 18, 2018