• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

【MATLAB与机械设计】一维优化进退法确定初始区间

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在讨论一维搜索时,首先保证搜索区间函数具有单峰性,也就是在区间[a,b]中函数是凸函数,对于求极小值问题,函数值具有高—低—高的特性,在区间[a,b]上有唯一的最小值。

1,方法的建立



2.进退法确定搜索区间的程序框图

3,根据上述的程序框图,编写的MATLAB程序如下:

function [x,y] = u_d( f,a0,h )
%% 函数基本说明
%{
本函数为进退法用于求解一维优化问题中搜索最优区间,要求函数具有单峰性
初始值为函数f、初始点a0、初始步长h
返回值为最优值所在区间的左右端点
u_d意为进退

函数调用:
clear; clc;
f = @(x) (x^2+4*x+4);
[lb, ub] = u_d(f, 10000, 0.01)
%}

%% 函数主题部分
a1=a0;
a2=a0+h;
f1=f(a1);
f2=f(a2);
if f2<f1
    h=2*h;
    a2=a2+h;
    f1=f2;
    f2=f(a2);
    while 1
        if f1>f2
            a2=a2-h;
            h=2*h;
            a2=a2+h;
            f1=f2;
            f2=f(a2);
        else
            break
        end
    end
end
if f1<f2
    h=-h;
    a1=a1+h;
    f2=f1;
    f1=f(a1);
    while 1
        if f2>f1
            a2=a1-h;
            h=2*h;
            a1=a1+h;
            f2=f1;
            f1=f(a1);
        else
            break
        end
    end
end
x=a1;
y=a2;
end

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi7中快速获取本机IP地址发布时间:2022-07-18
下一篇:
MATLAB画图之图中画局部放大的图中图发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap