Using piecewise defined functions in MATLAB
Contents
Mathematical description
Suppose is equal to on the interval and on the interval and you want to define it as a MATLAB function. Use the unit step function or Heaviside function to define the piecewise function. This is the function in Section 6.3 of Boyce and DiPrima. It is defined by and . Then is 1 where and , so on the interval , and and it is 0 outside the interval. So
How can you do this in MATLAB?
The unit step function is known to MATLAB as heaviside, with the slight difference that heaviside(0)=1/2.
Example
Define a symbolic MATLAB function which is equal to if and is equal to if This is Boyce and DiPrima, Section 10.2 #19.
Solution:
syms x
f = -heaviside(x+2)*heaviside(-x)+heaviside(x)*heaviside(2-x)
f = heaviside(2 - x)*heaviside(x) - heaviside(-x)*heaviside(x + 2)
Check
You can check that this is right except at the and at 0 by plotting.
ezplot(f,[-2 2])
title('graph of f')
You can have MATLAB compute the values at and 0.
subs(f,x,-2)
ans = -0.5000
subs(f,x,0)
ans = 0
At the value is and at 0 it is 0.