Link Search Menu Expand Document (external link)

How to write a piecewise-defined function

Description

In mathematics, we use the following notation for a “piecewise-defined” function.

\[f(x) = \begin{cases} x^2 & \text{if } x>2 \\ 1+x & \text{if } x\leq 2 \end{cases}\]

This means that for all $x$ values larger than 2, $f(x)=x^2$, but for $x$ values less than or equal to 2, $f(x)=1+x$.

How can we express this in mathematical software?

Using SymPy, in Python

View this solution alone.

This answer assumes you have imported SymPy as follows.

1
2
from sympy import *                   # load all math functions
init_printing( use_latex='mathjax' )  # use pretty math output

SymPy has support for piecewise functions built in, using Piecewise. The function above would be written as follows.

1
2
3
var( 'x' )
formula = Piecewise( (x**2, x>2), (1+x, x<=2) )
formula

$\displaystyle \begin{cases} x^{2} & \text{for}\: x > 2 \\x + 1 & \text{otherwise} \end{cases}$

We can test to be sure the function works correctly by plugging in a few $x$ values and ensuring the correct $y$ values result. Here we’re using the method from how to substitute a value for a symbolic variable.

1
formula.subs(x,1), formula.subs(x,2), formula.subs(x,3)

$\displaystyle \left( 2, \ 3, \ 9\right)$

For $x=1$ we got $1+1=2$. For $x=2$ we got $2+1=3$. For $x=3$, we got $3^2=9$.

Content last modified on 24 July 2023.

See a problem? Tell us or edit the source.

Topics that include this task

Opportunities

This website does not yet contain a solution for this task in any of the following software packages.

  • R
  • Excel
  • Julia

If you can contribute a solution using any of these pieces of software, see our Contributing page for how to help extend this website.