A **nonlinear function** can be approximated with an **linear function** in a certain operating point. The process of **linearization**, in mathematics, refers to the process of finding a **linear approximation** of a nonlinear function at a given point *(x _{0}, y_{0})*.

For a given nonlinear function, its linear approximation, in an operating point *(x _{0}, y_{0})*, will be the

**tangent line**to the function in that point.

### Linearization – theoretical background

A line is defined by a linear equation as:

\[y = mx + b \tag{1}\]where:

*m* – the **slope** of the line

*b* – the vertical offset of the line

The slope *m* of the line can be defined as the tangent function of the angle (*α*) between the line and the horizontal axis:

where *dy* and *dx* are small variations in the coordinates of the line.

Another way of defining a line, is by specifying the **slope** *m* and a **point** (*x _{0}, y_{0}*) through which the line passes. The equation of the line will be:

Replacing equation (2) in (3) gives:

\[y – y_0 = \frac{dy}{dx} (x – x_0) \tag{4}\]Equation (4) translates into: for a given nonlinear function, its linear approximation in an operating point (*x _{0}, y_{0}*) depends on the derivative of the function in that point.

In order to get a general expression of the linear approximation, we’ll consider a function *f(x)* and the x-coordinate of the function *a*. The y-coordinate of the function will be *f(a)*.

x_0 &= a\\

y_0 &= f(a)\\

m &= f'(a)

\end{split} \]

Replacing these in equation (3) gives:

\[ \begin{split}y – f(a) &= f'(a) (x – a)\\

y &= f(a) + f'(a) (x – a)

\end{split} \]

We can now write the general linear approximation *L(x)* of a nonlinear function *f(x)* in a point *a* as:

### Linearization – practical example

Let’s find a linear approximation of the function *f(x)* in the point *a = 1*.

The graphical representation of the function is:

**Step 1**. Calculate *f(a)*

**Step 2**. Calculate the derivative of *f(x)*

**Step 3**. Calculate the slope of the linear approximation *f'(a)*

**Step 4**. Write the equation *L(x)* of the linear approximation

If we plot the linear approximation *L(x)* on the same graph, we get:

As expected, the linear approximation *L(x)* in the point *(a, f(a))* is tangent to the nonlinear function.

If we consider an interval close to our linearization point *a*, we can see that the results of the linear approximation are very close to the ones of the nonlinear function. For example, let’s plot both nonlinear function *f(x)* and linear approximation *L(x)* between *0.9* and *1.1*.

If we calculate the relative error between the results of the nonlinear and linear functions, we’ll notice small errors, below *0.5 %*. This means that we can use our linear approximation to predict the behavior of the nonlinear function, but only around the linearization point *(a, f(a))*.

The **Scilab instruction** to plot the above graphical representations are:

// Nonlinear function deff('y=f(x)','y=x.^3-x.^2+5'); x = [-1:.01:2]; plot(x,f(x),'LineWidth',2), xgrid() xlabel('x','FontSize',3) ylabel('y = f(x)','FontSize',3) title('$\LARGE{f(x) = x^3 - x^2 + 5}$') // Operating point (a, f(a)) a=1; fa=f(a); plot(a,fa,'sr') xstring(1.05,4.6,'(1, 5)') // Linear approximation deff('y=L(x)','y=x+4') figure() hf=gcf(); ha=gca(); hf.background = -2; ha.background = -2; x=0.9:.01:1.1; subplot(2,1,1) plot(x,f(x),'LineWidth',2), xgrid() plot(x,L(x),'m') plot(a,fa,'sr') xlabel('x') ylabel('y') legend('nonlinear function','linear approximation',2) // Relative error deff('y=relErr(x)','y=100-L(x)*100./f(x)') subplot(2,1,2) plot(x,relErr(x),'LineWidth',2), xgrid() xlabel('x') ylabel('Relative error [%]')

For any questions, observations and queries regarding this article, use the comment form below.

Don’t forget to Like, Share and Subscribe!