%% Using piecewise defined functions in MATLAB % %% Mathematical description % % Suppose $h(x)$ is equal to $f(x)$ on the interval % $[a,b)$ and $g(x)$ on the interval $(b,c]$ and you want to % define it as a MATLAB function. Use the unit step function or *Heaviside % function* % $u(x)$ to define the piecewise function. This is the function $u_0$ in % Section 6.3 of Boyce and DiPrima. It is defined by $u(x) = 0,\ x < 0$ % and $u(x)=1,\ x \ge 0$. Then $u(x-a)u(b-x)$ is 1 where $x-a \ge 0$ % and $b-x\ge 0$, so on the interval % $[a,b]$, and and it is 0 outside the interval. So % % % $$h(x) = u(x-a)u(b-x)f(x) + u(x-b)u(c-x), \quad a \le x \le c, \ x \ne % b .$$ % %% 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 $f(x)$ which is equal to $-1$ if $-2 \le x % < 0$ and is equal to $1$ if $0 \le x < 2.$ This is Boyce and DiPrima, % Section 10.2 #19. % % _Solution:_ syms x f = -heaviside(x+2)*heaviside(-x)+heaviside(x)*heaviside(2-x) %% Check % You can check that this is right except at the $-2$ and at 0 by % plotting. ezplot(f,[-2 2]) title('graph of f') %% % You can have MATLAB compute the values at $-2$ and 0. % subs(f,x,-2) %% subs(f,x,0) %% % At $-2$ the value is $\frac 12$ and at 0 it is 0.