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
First, create the function.
syms x num = 3*x^2 + 6*x -1; denom = x^2 + x - 3; f = num/denom
Plot the function by using
fplot function automatically shows vertical asymptotes.
To find the horizontal asymptote of mathematically, take the limit of as approaches positive infinity.
The limit as approaches negative infinity is also 3. This result means the line is a horizontal asymptote to .
To find the vertical asymptotes of , set the denominator equal to 0 and solve it.
roots = solve(denom)
roots indicates that the vertical asymptotes are the lines
Find Maximum and Minimum
You can see from the graph that has a local maximum between the points and . It also has a local minimum between and . To find the -coordinates of the maximum and minimum, first take the derivative of .
f1 = diff(f)
To simplify this expression, enter the following.
f1 = simplify(f1)
Next, set the derivative equal to 0 and solve for the critical points.
crit_pts = solve(f1)
As the graph of shows, the function has a local minimum at
and a local maximum at
Plot the maximum and minimum of
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 , set the second derivative equal to 0 and solve for this condition.
f2 = diff(f1); inflec_pt = solve(f2,'MaxDegree',3); double(inflec_pt)
ans = 3×1 complex -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. MATLAB® does not always return the roots to an equation in the same order.
Instead of 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)
Plot the inflection point. The extra argument
[-9 6] in
fplot extends the range of values in the plot so that you can see the inflection point more clearly, as the figure shows.
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