我正在寻找创建一个函数,该函数采用方程式并在图表上标记最大值和/或最小值以及渐近线。
从Calc 1,我记得使用二阶导数测试。
我开始解决一阶导数的根源 - 但我不确定如何绘制此向量中的点与原始方程相交的位置。
syms x; %//
f = sin(x) %// Define equation as a function
df=diff(f) %// First derivatives
ddf=diff(df) %// Second Derivatives
我用dfRoots = solve(df)
然后创建了一个名为dfRoots_realDouble
dfRoots_double = double(dfRoots);
dfRoots_realDouble = real(dfRoots_double);
dfRoots_realDouble
表示我需要的x值,但我不知道如何将它们绘制为点并将最小值与最大值等分开
我希望能够在sin(6*(x^5) + 7*(x^3)+8*(x^2))
上添加任何功能,例如[-1,1]
,并使用一个标记突出显示所有最大值,并使用另一个标记突出显示所有最小值。
答案 0 :(得分:0)
如果对根进行排序,则会有一个最大值和最小值的交替向量。使用二阶导数确定您的根矢量是以最大值还是最小值开始,然后拆分矢量。
roots = sort([-3 4 2 -5]);
is_max = (subs(ddf, x, roots(1)) < 0)
if is_max
max_points = roots(1:2:end)
min_points = roots(2:2:end)
else
max_points = roots(2:2:end)
min_points = roots(1:2:end)
end
% plot with two different symbols
plot(max_points, subs(f, x, max_points), 'or',...
min_points, subs(f, x, min_points), '*k')