www.gusucode.com > 《图像配准技术及其Matlab编程实现》--源码程序 > 《图像配准技术及其Matlab编程实现》/match/ParabolicInterpolationMethod.m
function [minFx,minX]=ParabolicInterpolationMethod(a,b) %参数:a:初始搜索区间 % b:初始搜索区间 % minFx:函数最小值 % minX:最小值对应点 %功能:利用抛物线插值法搜索目标函数的最小值 Epsilon=10^-10; IterTimes=100; if a>b temp=a; a=b; b=temp; end v=a; w=b; x=0.5*(b-a); fx=F(x); fv=F(v); fw=F(w); y(1)=x; for iter=1:IterTimes r=(x-w)*(fx-fv); %构造抛物线拟合 q=(x-v)*(fx-fw); p=(x-v)*q-(x-w)*r; q=2*(q-r); d=p/(q+eps); u=x-d; fu=F(u); if fu<=fx x=u; fx=fu; if u<=x w=x; fv=fx; else v=x; fv=fx; end end y(iter+1)=x; if abs(y(iter+1)-y(iter))<=Epsilon break;; end end minX=x; minFx=fx; function fx=F(x) fx=(x-2.98765)^2;