zoukankan      html  css  js  c++  java
  • 一维搜索

    %% 一维搜索方法
    clc;
    clear all;
    close all;
    x = -2:0.01:2;
    y = 3*x.^2 - 4.*x + 2;
    plot(x,y,'r-.','linewidth',2);
    hold on
    %% 初始化
    x0 = 0;%初始值;
    k = 1;%初始步长;
    LL = 0.002;%终止条件
    amin = -1;
    bmax = 1;
    lamda = 0.382;
    x1 = amin + lamda *(bmax-amin);
    x2 = amin +(1- lamda )*( bmax-amin);
    fx1 = fun_f(x1);
    fx2 = fun_f(x2);
    p1 =plot([x1,x1],[0,fx1],'linewidth',2);
    % hold on
    p2 = plot([x2,x2],[0,fx2],'linewidth',2);
    c = [];
    %% 搜索开始
    while bmax-amin > LL
    if fx1 > fx2
    amin = x1;
    % bmax = bmax;
    x1 = x2;
    fx1 = fx2;
    x2 = amin + (1-lamda) *(bmax-amin);
    fx2 = fun_f(x2);
    else
    % amin = amin;
    bmax = x1;
    x2 = x1;
    fx2 = fx1;
    x1 = amin + lamda*(bmax-amin);
    fx1 = fun_f(x1);
    end
    set(p1,'xdata',[x1,x1],'ydata',[0,fx1],'linewidth',2);
    % hold on
    set(p2,'xdata',[x2,x2],'ydata',[0,fx2],'linewidth',2);
    k = k +1;
    c = [c;[amin,bmax,x1,x2,fx1,fx2]];
    drawnow
    pause(0.5)
    end

  • 相关阅读:
    pygame各个模块概述
    安装pygame
    pygame系列
    把字符串转换成整数
    不用加减乘除做加法
    求1+2+3+...+n
    孩子们的游戏(圆圈中最后剩下的数)
    翻转单词顺序列
    左旋转字符串
    和为s的两个数字
  • 原文地址:https://www.cnblogs.com/Kermit-Li/p/4047132.html
Copyright © 2011-2022 走看看