Этот пример описывает, как анализировать простую функцию, чтобы найти ее асимптоты, максимум, минимум и точку перегиба.
Функция в этом примере
Чтобы создать функцию, введите следующие команды:
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)
Постройте функциональный f
при помощи fplot
. Функция fplot
автоматически показывает горизонтальные асимптоты.
fplot(f)
Чтобы математически найти горизонтальную асимптоту f
, возьмите предел f
, когда x
приближается к положительной бесконечности:
limit(f, inf)
ans = 3
Предел как x приближается, отрицательная бесконечность равняется также 3. Этот результат означает строку, y = 3 является горизонтальной асимптотой к f
.
Чтобы найти вертикальные асимптоты f
, установите знаменатель, равный 0, и решите путем ввода следующей команды:
roots = solve(denom)
roots = - 13^(1/2)/2 - 1/2 13^(1/2)/2 - 1/2
MATLAB® не всегда возвращает корни в уравнение в том же порядке.
roots
указывает, что вертикальные асимптоты являются строками
и
Вы видите из графика, что f
имеет локальный максимум между точками x = –2 и x = 0 и может иметь локальный минимум между x = –6 и x = –2. Чтобы найти x - координаты максимума и минимальный, первый берут производную 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
Чтобы упростить это выражение, войти
f1 = simplify(f1)
f1 = -(3*x^2 + 16*x + 17)/(x^2 + x - 3)^2
Затем, установите производную, равную 0, и решите для критических точек:
crit_pts = solve(f1)
crit_pts = - 13^(1/2)/3 - 8/3 13^(1/2)/3 - 8/3
Ясно из графика f
, что это имеет локальный минимум в
и локальный максимум в
Можно построить максимум и минимум 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
Чтобы найти точку перегиба f
, установите вторую производную, равную 0, и решите.
f2 = diff(f1); inflec_pt = solve(f2,'MaxDegree',3); double(inflec_pt)
Это возвращается
ans = -5.2635 + 0.0000i -1.3682 - 0.8511i -1.3682 + 0.8511i
В этом примере только первый элемент является вещественным числом, таким образом, это - единственная точка перегиба. Порядок корней может отличаться.
Вместо того, чтобы выбирать действительный корень путем индексации в inter_pt
, идентифицируйте действительный корень путем определения, какие корни имеют мнимую часть с нулевым знаком.
idx = imag(double(inflec_pt)) == 0; inflec_pt = inflec_pt(idx);
Чтобы получить значение точки перегиба, войти
vpa(inflec_pt)
ans = -5.2635217342053210183437823783747
Постройте точку перегиба. Дополнительный аргумент, [-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