📄 cubic.m
字号:
function [maximum,err]=cubic(pts,checkpt,location)
%CUBIC Cubicly interpolates four points to find the maximum value.
% The second argument is for estimation of the error in the
% interpolated maximum.
d=pts(1);
abc=[0.5 -0.5 1/6 ; -2.5 2 -0.5; 3 -1.5 1/3]*[pts(2:4)-d*ones(3,1)];
root=real(sqrt(4*(abc(2)^2)-12*abc(1)*abc(3)));
x1=(-2*abc(2)+root)/(6*abc(1));
if 6*abc(1)*x1+2*abc(2)<0
stepmin=x1;
else
stepmin=(-2*abc(2)-root)/(6*abc(1));
end
maximum=abc(1)*stepmin^3+abc(2)*stepmin^2+abc(3)*stepmin+d;
if nargin>1
if location==0
checkpt2=-abc(1)+abc(2)-abc(3)+d;
else
checkpt2=64*abc(1)+16*abc(2)+4*abc(3)+d;
end
err=abs(checkpt-checkpt2);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -