⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spoly3.m

📁 单变量寻优基本算法的原码
💻 M
字号:
% 三次逼近法求解函数的极小值点
%其中f()表示所求函数表达式,df()表示所求函数的导数表达式
%f和df()是由外部的M-函数提供.

x0=0;               %初始点
h=1;                %步长
e=0.0005;            %精度要求

f0=df(x0);
x1=x0;
x2=x0;
while(df(x1)*df(x2)>0)   %寻找解区间
   if(f0<0)
      x1=x2;
      x2=x1+h;
   else
      x1=x2;
      x2=x1-h;
   end
end

for i=1:300
y1=f(x1);
y2=f(x2);
dy1=df(x1);
dy2=df(x2);

z=3*(y1-y2)/(x2-x1)+dy1+dy2;
s=sqrt(z^2-dy1*dy2);
if x1<x2
    w=s;
else
    w=-s;
end

u=(dy2+w-z)/(dy2-dy1+2*w);

if u<0
    xe=x2;
elseif u<=1
    xe=x2-u*(x2-x1);
else
    xe=x1;
end

dye=df(xe);

if abs(dye)<e
    break;
else
    if dye*dy1<0
        x2=xe;
    else
        x1=xe;
    end
end
end

i
xe
dye
f(xe)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -