当x位于0和1之间时,我希望使用表达式的二阶导数找到最大值。换句话说,我使用cox(x^2)的导数两次,得到导致- 2*sin(x^2) - 4*x^2*cos(x^2)的二阶导数,然后在x = 0计算这个二阶导数到x = 1,并显示填充值的maximum值。
我有:
syms x
f = cos(x^2);
secondD = diff(diff(f));
for i = 0:1
y = max(secondD(i))
end有人能帮忙吗?
发布于 2021-07-24 18:45:27
您可以通过subs和double轻松地完成它。
syms x
f = cos(x^2);
secondD = diff(diff(f));
% instead of the for loop
epsilon = 0.01;
specified_range = 0:epsilon:1;
[max_val, max_ind] = max(double(subs(secondD, specified_range)));请注意,这是一种求出最大值的数值方法,并且返回的答案并不总是完全正确的。但是,通过增加epsilon,您可以期望得到更好的结果(在某些情况下也是不完全正确的)。
https://stackoverflow.com/questions/68512622
复制相似问题