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

The function in this example is

$$f(x)=\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)

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

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}.$$

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

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