MATLAB 求目标函数最优解

题目如下试编制程序实现黄金分割法,并求目标函数F(x)=x2−4x+4的最优解。给定的初始区间为[−1010],收敛精度ε=0.001。希望帮忙做... 题目如下

试编制程序实现黄金分割法,并求目标函数F(x) = x2 −4x+4的最优解。给
定的初始区间为[−10 10],收敛精度ε = 0.001 。

希望帮忙做出程序代码 谢谢了
展开
 我来答
百度网友547b50fd9
2010-01-16 · TA获得超过1154个赞
知道小有建树答主
回答量:832
采纳率:0%
帮助的人:565万
展开全部
function [p,u]=nlp618(f_name,a,b,e)

%//////////////////////////////////////////////////
%输入f_name为函数名,[a,b]初始区间,e为最小区间要求
%输出p为所有的计算情况,u为最优解,表示x,step为计算步骤
%//////////////////////////////////////////////////

a(1)=a;
b(1)=b;
L=e;
t(1)=a(1)+0.382*(b(1)-a(1));
u(1)=a(1)+0.618*(b(1)-a(1));
k=1;
m(1)=feval(f_name,t(1));
n(1)=feval(f_name,u(1));
while(b(k)-a(k)>L)
if(m(k)>n(k))
a(k+1)=t(k);
b(k+1)=b(k);
t(k+1)=u(k);
u(k+1)=a(k+1)+0.618*(b(k+1)-a(k+1));
else
a(k+1)=a(k);
b(k+1)=u(k);
u(k+1)=t(k);
t(k+1)=a(k+1)+0.382*(b(k+1)-a(k+1));
end
m(k+1)=feval(f_name,t(k+1));
n(k+1)=feval(f_name,u(k+1));
ans=feval(f_name,t(k+1));
k=k+1;
end
t(k)=0;
u(k)=0;
m(k)=0;
n(k)=0;
p=[a',b',t',u',m',n'];
ans=(a(k)+b(k))/2;
step=k-1
%函数
function y=f1(x)
y=x^2-4*x+4;

//////////////////////////////////////////////////////////////////////
运行结果
>> [p,u]=nlp618('f1',-10,10,0.001)
step =
21
p =
-10 10 -2.36 2.36 19.01 0.1296
-2.36 10 2.36 5.2785 0.1296 10.748
-2.36 5.2785 0.5579 2.36 2.0797 0.1296
0.5579 5.2785 2.36 3.4752 0.1296 2.1763
0.5579 3.4752 1.6723 2.36 0.10738 0.1296
0.5579 2.36 1.2463 1.6723 0.56806 0.10738
1.2463 2.36 1.6723 1.9346 0.10738 0.0042814
1.6723 2.36 1.9346 2.0973 0.0042814 0.0094681
1.6723 2.0973 1.8347 1.9346 0.027337 0.0042814
1.8347 2.0973 1.9346 1.997 0.0042814 9.1529e-006
1.9346 2.0973 1.997 2.0351 9.1529e-006 0.0012347
1.9346 2.0351 1.973 1.997 0.00072978 9.1529e-006
1.973 2.0351 1.997 2.0114 9.1529e-006 0.00012988
1.973 2.0114 1.9877 1.997 0.00015231 9.1529e-006
1.9877 2.0114 1.997 2.0023 9.1529e-006 5.4217e-006
1.997 2.0114 2.0023 2.0059 5.4217e-006 3.4659e-005
1.997 2.0059 2.0004 2.0023 1.4382e-007 5.4217e-006
1.997 2.0023 1.999 2.0004 9.6081e-007 1.4382e-007
1.999 2.0023 2.0004 2.0011 1.4382e-007 1.1333e-006
1.999 2.0011 1.9998 2.0004 3.9646e-008 1.4382e-007
1.999 2.0004 1.9995 1.9998 2.1243e-007 3.9646e-008
1.9995 2.0004 0 0 0 0
u =
2
最优解在x=2
f(x)=0

参考资料: http://blog.csdn.net/lerrylee/archive/2009/04/01/4041836.aspx

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上海华然企业咨询
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步... 点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式