matlab e 精确到,matlab中用0.618法求minf(x)=e^(-x)+x^2在区间(0,1)上的极小值,精确到0.03....

共回答了15个问题采纳率:86.7%

clc

clear all;

elp=0.03;

tao=0.618;

N=fix(log(elp)/log(tao))+1;

k=1;

a(k)=0;

b(k)=1;

r(1)=b(k)-tao*(b(k)-a(k));

u(1)=a(k)+tao*(b(k)-a(k));

for i=1:N

%f1=(r(k)).^2-r(k);

f1 = exp(-r(k))+r(k).^2;

f2 = exp(-u(k))+u(k).^2;

%f2=(u(k)).^2-u(k);

if(f1>f2)

a(k+1)=r(k);

b(k+1)=b(k);

r(k+1)=u(k);

u(k+1)=a(k+1)+tao*(b(k+1)-a(k+1));

x=(b(k+1)+a(k+1))/2;

else

a(k+1)=a(k);

b(k+1)=u(k);

u(k+1)=r(k);

r(k+1)=b(k+1)-tao*(b(k+1)-a(k+1));

x=(b(k+1)+a(k+1))/2;

end

k=k+1;

end

x

y=exp(-x)+x.^2;

y

结果:

x = 0.3501

y = 0.8272

验证:

>> x1=0:0.001:1;

>> y1=exp(-x1)+x1.^2;

>> min(y1)

ans =

0.8272

1年前

6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值