exponenta event banner

Поиск асимптот, критических точек и точек перегиба

В этом примере описывается, как проанализировать простую функцию, чтобы найти ее асимптоты, максимум, минимум и точку перегиба.

Определение функции

Функция в этом примере

f (x) = 3x2 + 6x-1x2 + x-3.

Сначала создайте функцию.

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

3x2+6x-1x2+x-3(3*x^2 + 6*x - 1)/(x^2 + x - 3)

Постройте график функции с помощью fplot. fplot функция автоматически отображает вертикальные асимптоты.

fplot(f)

Figure contains an axes. The axes contains an object of type functionline.

Найти асимптоты

Чтобы найти горизонтальную асимптоту f математически, возьмите предел f как x приближается к положительной бесконечности.

limit(f,Inf)
ans = 3sym(3)

Предел по мере приближения x к отрицательной бесконечности также равен 3. Этот результат означает, что линия y = 3 является горизонтальной асимптотой f.

Чтобы найти вертикальные асимптоты f, установите знаменатель равным 0 и решите его.

roots = solve(denom)
roots = 

(-132-12132-12)[- sqrt(sym(13))/2 - sym(1/2); sqrt(sym(13))/2 - sym(1/2)]

roots указывает, что вертикальные асимптоты являются линиями

x = -1-132

и

x = -1 + 132.

Найти максимум и минимум

На графике видно, что f имеет локальный максимум между точками x = -2 и x = 0. Он также имеет локальный минимум между x = -6 и x = -2. Чтобы найти координаты x максимума и минимума, сначала возьмем производную f.

f1 = diff(f)
f1 = 

6x+6x2+x-3-2x+13x2+6x-1x2+x-32(6*x + 6)/(x^2 + x - 3) - ((2*x + 1)*(3*x^2 + 6*x - 1))/(x^2 + x - 3)^2

Чтобы упростить это выражение, введите следующее.

f1 = simplify(f1)
f1 = 

-3x2+16x+17x2+x-32-(3*x^2 + 16*x + 17)/(x^2 + x - 3)^2

Затем задайте производную, равную 0, и решите для критических точек.

crit_pts = solve(f1)
crit_pts = 

(-133-83133-83)[- sqrt(sym(13))/3 - sym(8/3); sqrt(sym(13))/3 - sym(8/3)]

Как показывает график f, функция имеет локальный минимум при

x1 = -8-133

и локальный максимум при

x1 =-8+133.

Постройте график максимума и минимума f.

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

Figure contains an axes. The axes with title Maximum and Minimum of f contains 4 objects of type functionline, line, text.

Найти точку перегиба

Чтобы найти точку перегиба f, установите вторую производную равной 0 и решите для этого условия.

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

В этом примере действительным числом является только первый элемент, поэтому это единственная точка перегиба. MATLAB ® не всегда возвращает корни в уравнение в том же порядке.

Вместо выбора реального корня путем индексирования в inter_pt, идентифицируют действительный корень, определяя, какие корни имеют нулевую мнимую часть.

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

-13916954-2197181/3-16954-2197181/3-83- 13/(9*(sym(169/54) - sqrt(sym(2197))/18)^sym(1/3)) - (sym(169/54) - sqrt(sym(2197))/18)^sym(1/3) - sym(8/3)

Постройте график точки перегиба. Дополнительный аргумент [-9 6] в fplot расширяет диапазон значений x на графике, чтобы можно было видеть точку перегиба более четко, как показано на рисунке.

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

Figure contains an axes. The axes with title Inflection Point of f contains 3 objects of type functionline, line, text.