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