regdef.m
来自「黄金分割法求极小」· M 代码 · 共 37 行
M
37 行
function [mi,ma]=regdef(f,t,t0,h)
%给定函数变量t的搜索区间确定。f为直线搜索时的变换后的函数,t为参变量,t0为起始零点,h为搜索步长
syms mi ma;
m=0;
f0=subs(f,t,t0);
t2=t0+h;
f2=subs(f,t,t2);
if(f2>=f0)
t1=t2;
f1=f2;
h=-h;
else
t1=t0;
f1=f0;
t0=t2;
f0=f2;
h=2*h;
end
t2=t0+h;
f2=subs(f,t,t2);
while(f2<=f0)
t1=t0;
f1=f0;
t0=t2;
f0=f2;
h=2*h;
t2=t0+h;
f2=subs(f,t,t2);
m=m+1;
if(m>10000) %若迭代次数超过10000次则退出,并报错
error('asdfsdfgasgdg')
break
end
end
mi=min(t1,t2);
ma=max(t1,t2);
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?