matlab 黄金分析,matlab黄金分割法求解

第4次作业用matlab求解f(t)=(t^2-1)^2+(t-1)^2+3 [-10,10]最小植(黄金分割法)。

x为最优的t值,minf为最优的函数值,f为函数,t为函数f的变量,a,b为下单峰区间[a,b],eps为精确度,

M函数文件:

function [x,minf] = minHJ(f,a,b,eps)

format long;

if nargin == 3

eps = 1.0e-6;

End

l = a + 0.382*(b-a);

u = a + 0.618*(b-a);a=-10

k=1;

tol = b-a;

while tol>eps && k<100000

fl= subs(f ,findsym(f),l);%subs是置换函数

if fl > fu

a = l;

l = u;

u = a + 0.618*(b - a);

else

b = u;

u = l;

l = a + 0.382*(b-a);

end

k = k+1;

tol = abs(b - a);

end

if k == 100000

disp('找不到最小值!');

x= NaN;

minf = NaN;

return;

end

x= (a+b)/2;

minf = subs(f, findsym(f),x);

format short;

窗口M文件调用:

>> syms t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值