最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Matlab 抛物线法

来源:动视网 责编:小OO 时间:2025-09-26 20:00:21
文档

Matlab 抛物线法

%抛物线法(二次插值法)。%v1.0author:liuxiBIT%best_x为最优的x值,best_fx为最优的函数值,y为函数,x为函数y的变量,x1,x0,x2为已知的三点且满足f1>f0epsilon1&&abs((x2-x0)*f1+(x1-x2)*f0+(x0-x1)*f2)>epsilon2%step1step2x3=0.5*((x2^2-x0^2)*f1+(x1^2-x2^2)*f0+(x0^2-x1^2)*f2)/((x2-x0)*f1+(x1-x2)*f0+(x0-x1)
推荐度:
导读%抛物线法(二次插值法)。%v1.0author:liuxiBIT%best_x为最优的x值,best_fx为最优的函数值,y为函数,x为函数y的变量,x1,x0,x2为已知的三点且满足f1>f0epsilon1&&abs((x2-x0)*f1+(x1-x2)*f0+(x0-x1)*f2)>epsilon2%step1step2x3=0.5*((x2^2-x0^2)*f1+(x1^2-x2^2)*f0+(x0^2-x1^2)*f2)/((x2-x0)*f1+(x1-x2)*f0+(x0-x1)
%抛物线法(二次插值法)。

%v1.0 author: liuxi BIT

%best_x为最优的x值,best_fx为最优的函数值,y为函数,x为函数y的变量,x1,x0,x2为已知的三点且满足f1>f0function[best_x best_fx]=paowuxianfa(y,x,x1,x0,x2,epsilon1,epsilon2)

if nargin==5

    epsilon1=0.0000001;

    epsilon2=0.0000001;

end

%求f(x1),f(x0),f(x2)

f1=subs(y,x,x1);

f0=subs(y,x,x0);

f2=subs(y,x,x2);

k=0;

while abs(x1-x2)>epsilon1&&abs((x2-x0)*f1+(x1-x2)*f0+(x0-x1)*f2)>epsilon2%step1 step2

    x3=0.5*((x2^2-x0^2)*f1+(x1^2-x2^2)*f0+(x0^2-x1^2)*f2)/((x2-x0)*f1+(x1-x2)*f0+(x0-x1)*f2);%step3   x3对应算法中的x一拔,就是x上面有一个“—”

    f3=subs(y,x,x3);

if f0-f3<0%转step6

if x0            x2=x3;f2=f3;

        else

            x1=x3;f1=f3;

end%if x0    elseif f0-f3==0%转step7

if x0            x1=x0;x2=x3;x0=0.5*(x1+x2);

            f1=f0;f2=f3;f0=subs(y,x,x0);

        elseif x0==x3%转step8

            x4=0.5*(x1+x0);f4=subs(y,x,x4);%x4对应算法中的x一冒,就是x上面有一个“^”

if f4                x2=x0;x0=x4;f2=f0;f0=f4;

            elseif f4==f0

                x1=x4;x2=x0;x0=0.5*(x1+x2);

                f1=f4;f2=f0;f0=subs(y,x,x0);

            else

                x1=x4;f1=f4;

end%if f4        else%转step9

            x1=x3;x2=x0;x0=0.5*(x1+x2);

             f1=f3;f2=f0;f0=subs(y,x,x0);

end% if x0    else %转step5

if x0>x3

            x2=x0;x0=x3;f2=f0;f0=f3;

        else

            x1=x0;x0=x3;f1=f0;f0=f3;

        end

end%if f0-f3<0

    k=k+1;

end%while

best_x=x0;

best_fx=f0;

文档

Matlab 抛物线法

%抛物线法(二次插值法)。%v1.0author:liuxiBIT%best_x为最优的x值,best_fx为最优的函数值,y为函数,x为函数y的变量,x1,x0,x2为已知的三点且满足f1>f0epsilon1&&abs((x2-x0)*f1+(x1-x2)*f0+(x0-x1)*f2)>epsilon2%step1step2x3=0.5*((x2^2-x0^2)*f1+(x1^2-x2^2)*f0+(x0^2-x1^2)*f2)/((x2-x0)*f1+(x1-x2)*f0+(x0-x1)
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top