Documentation

## Find Asymptotes, Critical and Inflection Points

This example describes how to analyze a simple function to find its asymptotes, maximum, minimum, and inflection point.

### Define a Function

The function in this example is

$f\left(x\right)=\frac{3{x}^{2}+6x-1}{{x}^{2}+x-3}.$

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 by using fplot. The fplot function automatically shows horizontal asymptotes.

fplot(f)

### Find Asymptotes

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

limit(f, inf)
ans =
3

The limit as x approaches negative infinity is also 3. This result means the line y = 3 is a horizontal asymptote to f.

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

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

### Note

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

roots indicates that the vertical asymptotes are the lines

$x=\frac{-1+\sqrt{13}}{2},$

and

$x=\frac{-1-\sqrt{13}}{2}.$

### Find Maximum and Minimum

You can see from the graph that f has a local maximum 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

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

${x}_{1}=\frac{-8-\sqrt{13}}{3},$

and a local maximum at

${x}_{2}=\frac{-8+\sqrt{13}}{3}.$

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

fplot(f)
hold on
plot(double(crit_pts), double(subs(f,crit_pts)),'ro')
title('Maximum and Minimum of f')
text(-4.8,5.5,'Local minimum')
text(-2,4,'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,'MaxDegree',3);
double(inflec_pt)

This returns

ans =
-5.2635 + 0.0000i
-1.3682 - 0.8511i
-1.3682 + 0.8511i

In this example, only the first element is a real number, so this is the only inflection point. The order of the roots can vary.

Rather than selecting the real root by indexing into inter_pt, identify the real root by determining which roots have a zero-valued imaginary part.

idx = imag(double(inflec_pt)) == 0;
inflec_pt = inflec_pt(idx);

To obtain the value of the inflection point, enter

vpa(inflec_pt)
ans =

-5.2635217342053210183437823783747

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

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

#### Mathematical Modeling with Symbolic Math Toolbox

Get examples and videos