Documentation Center

  • Trial Software
  • Product Updates

Find Asymptotes, Critical and Inflection Points

This section describes how to analyze a simple function to find its asymptotes, maximum, minimum, and inflection point. The section covers the following topics:

Define a Function

The function in this example is

To create the function, enter the following commands:

syms x
num = 3*x^2 + 6*x -1;
denom = x^2 + x - 3;
f = num/denom
f = 
(3*x^2 + 6*x - 1)/(x^2 + x - 3)

Plot the function f


Find Asymptotes

To find the horizontal asymptote of the graph of f, take the limit of f as x approaches positive infinity:

limit(f, inf)
ans = 

The limit as x approaches negative infinity is also 3. This tells you that the line y = 3 is a horizontal asymptote to the graph.

To find the vertical asymptotes of f, set the denominator equal to 0 and solve by entering the following command:

roots = solve(denom)

This returns to solutions to :

roots =
   13^(1/2)/2 - 1/2
 - 13^(1/2)/2 - 1/2

This tells you that vertical asymptotes are the lines


You can plot the horizontal and vertical asymptotes with the following commands. Note that roots must be converted to double to use the plot command.

hold on % Keep the graph of f in the figure
% Plot horizontal asymptote
plot([-2*pi 2*pi], [3 3],'g')
% Plot vertical asymptotes
plot(double(roots(1))*[1 1], [-5 10],'r')
plot(double(roots(2))*[1 1], [-5 10],'r')
title('Horizontal and Vertical Asymptotes')
hold off

Find Maximum and Minimum

You can see from the graph that f has a local maximum somewhere between the points x = –2 and x = 0, and might have a local minimum between x = –6 and x = –2. To find the x-coordinates of the maximum and minimum, first take the derivative of f:

f1 = diff(f)
f1 = 
(6*x + 6)/(x^2 + x - 3) - ((2*x + 1)*(3*x^2 + 6*x - 1))/(x^2 + x - 3)^2

To simplify this expression, enter

f1 = simplify(f1)
f1 =
 -(3*x^2 + 16*x + 17)/(x^2 + x - 3)^2

You can display f1 in a more readable form by entering


which returns

    3 x  + 16 x + 17 
  - ---------------- 
       2         2 
     (x  + x - 3)

Next, set the derivative equal to 0 and solve for the critical points:

crit_pts = solve(f1)
crit_pts =
   13^(1/2)/3 - 8/3
 - 13^(1/2)/3 - 8/3

It is clear from the graph of f that it has a local minimum at

and a local maximum at

    Note   MATLAB® does not always return the roots to an equation in the same order.

You can plot the maximum and minimum of f with the following commands:

hold on
plot(double(crit_pts), double(subs(f,crit_pts)),'ro')
title('Maximum and Minimum of f')
text(-5.5,3.2,'Local minimum')
text(-2.5,2,'Local maximum')
hold off

Find Inflection Point

To find the inflection point of f, set the second derivative equal to 0 and solve.

f2 = diff(f1);
inflec_pt = solve(f2);

This returns

ans =
  -1.3682 + 0.8511i
  -1.3682 - 0.8511i

In this example, only the first entry is a real number, so this is the only inflection point. (Note that in other examples, the real solutions might not be the first entries of the answer.) Since you are only interested in the real solutions, you can discard the last two entries, which are complex numbers.

inflec_pt = inflec_pt(1);

To see the symbolic expression for the inflection point, enter

   2/3   1/3                  1/3    2/3   1/3                  1/3
  2    13    (13 - 3 sqrt(13))      2    13    (3 sqrt(13) + 13)      8
- ------------------------------- - ------------------------------- - -
                 6                                 6                  3

Plot the inflection point. The extra argument, [-9 6], in ezplot extends the range of x values in the plot so that you see the inflection point more clearly, as shown in the following figure.

ezplot(f, [-9 6])
hold on
plot(double(inflec_pt), double(subs(f,inflec_pt)),'ro')
title('Inflection Point of f')
text(-7,2,'Inflection point')
hold off

Was this topic helpful?