中易网

matlab黄金分割法程序出错

答案:1  悬赏:80  
解决时间 2022-01-01 09:15
function [xo,fo]=Opt_Golden(f,a,b,TolX,TolFun,k)
%%%%黄金搜索算法求在区间[a,b]上的最优化解
%f为目标函数,TolX为x阈值,TolFun为函数阈值,k为迭代次数
f=5*x*x*x+6*x*x;
x>=2&&x<=6;
a=2;
b=6;
r =(sqrt(5)-1)/2; %r为黄金分割点值,
h = b-a; %区间宽度
rh = r*h;
%%%取两点c、d,并计算相应的函数值fc和fd
c = b-rh;
d = a+rh;
fc = feval(f,c);
fd = feval(f,d);
%%%算法第二步判断是否停止迭代
if k <= 0 | k<=abs(h) < TolX & abs(fc – fd) < TolFun
if fc <= fd
xo = c;
fo = fc;
else
xo = d;
fo = fd;
end
if k == 0
fprintf;
end
%%%%算法第三步,进行新一轮迭代
else
if fc < =fd
[xo,fo] = Opt_Golden(f,a,d,TolX,TolFun,k-1);
else
[xo,fo] = Opt_Golden(f,c,b,TolX,TolFun,k-1);
end
end
运行后出现:
Error: File: D:\matlab7.0\work\Opt_Golden.m Line: 18 Column: 39
Missing variable or function.
要怎么改呢?鄙人matlab很菜,求高手指点!!!
最佳答案
下面是我帮你所作的修改,我试验过正确,希望对你有所帮助!互相学习!
函数式文件为:
function [xo,fo]=Opt_Golden(f,a,b,TolX,TolFun,k)
%%%%黄金搜索算法求在区间[a,b]上的最优化解
%f为目标函数,TolX为x阈值,TolFun为函数阈值,k为迭代次数
r =(sqrt(5)-1)/2; %r为黄金分割点值,
h = b-a; %区间宽度
rh = r*h;
%%%取两点c、d,并计算相应的函数值fc和fd
c = b-rh;
d = a+rh;
fc = feval(f,c);
fd = feval(f,d);
%%%算法第二步判断是否停止迭代
if k<= 0| k<=abs(h)<TolX&abs(fc-fd)<TolFun
if fc <= fd
xo = c;
fo = fc;
else
xo = d;
fo = fd;
end
if k==0
end
%%%%算法第三步,进行新一轮迭代
else
if fc <=fd
[xo,fo] = Opt_Golden(f,a,d,TolX,TolFun,k-1);
else
[xo,fo] = Opt_Golden(f,c,b,TolX,TolFun,k-1);
end
end

下面在命令窗口输入f及a,b
>> f=@(x)5*x*x*x+6*x*x;%用句柄函数表示f
>> a=2;
>> b=6;
>> Opt_Golden(f,a,b,1e-6,1e-6,10) %调用函数求解

ans =

2.0124
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国危机管理研究中心的地址在哪里?
吉他和弦的总数有多少
汇编练习题。求解释
泱瀼的意思是什么?泱瀼的释义是什么啊?
地下城谜之封印礼盒什么都没有啊
跳蹋的意思是什么啊?请解释下!
什么是不对称管制?
薛城光明花苑南区的小高层房子怎么样
谁知道DVD CD 蓝光的光盘容量一般是多少?
毕生的意思是什么?毕生的释义是什么啊?
关于3M净水器的水压问题
可以让手机拍摄到我们人体的骨头
失恋了感觉一个人好失落,你们失恋了都怎么度
关于6孔陶笛吹故乡的原风景上波音问题求教?
求钟姓。好听的名字
推荐资讯
積寇的意思是什么?積寇的释义是什么啊?
黢黑的意思是什么啊?请解释下!
1950年5月在中南军大湖南分校毕业的军人,现
怎样用VC2008编译64位的DLL
绞衾的意思是什么?绞衾的释义是什么啊?
你好 请问你现在在快乐购上班了吗 他们面试都
好看的BL真人电影、单元剧
突战的意思是什么?突战的释义是什么啊?
衣繡夜遊的意思是什么?衣繡夜遊的释义是什么
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?