首先定义函数
命令行窗口输入 edit
在编辑器内输入:
function outputf=f(a)
outputf=a^2-7*a+10;
保存在工作目录下
然后外推法
建议不要按书上的流程图做,那个太麻烦
按照自己的理解来做
示例如下
命令行窗口输入 edit
在编辑器内输入
function [lowbound,upbound]=index(startpoint,step0)
step=step0;%t=t0
x0=startpoint;
f0=f(x0);%计算f0
x1=x0+step0;%x1
f1=f(x1);%计算f1
if f1<=f0%比较大小
while true%一直循环,直到可以跳出(正向搜寻)
step=2*step;%t=2t
x2=x1+step;%x2
f2=f(x2);%计算f2
if f1<=f2%比较若为真
lowbound=x0;
upbound=x2;
break;%跳出,注意了!!! 必须要有break,否则就是死循环,会死机
else%若为假
x0=x1;
x1=x2;
f0=f1;
f1=f2;
end
end
else%若f1>f0
while true
step=2*step;
x2=x0-step;
f2=f(x2);
if f0<=f2
lowbound=x2;
upbound=x1;
break;
else
x1=x0;
x0=x2;
f1=f0;
f0=f2;
end
end
end
保存在工作目录下
然后是黄金分割 这个自己做吧
按照自己的想法做还是很简单的