求大神帮忙,用matlab完成最优化问题编程,可运行出来财富可追加(黄金分割法,最速下降法,牛顿法。。) 50
301:用黄金分割法求最佳步长的子程序。(可用函数F(x)=1/5(x-1)^2+20<=x<=3的做优解检验,正确结果为x=1)2:用最速下降法求解F(x)=1/2x1...
301:用黄金分割法求最佳步长的子程序。(可用函数F(x)=1/5(x-1)^2+2 0<=x<=3的做优解检验,正确结果为x=1)
2:用最速下降法求解F(x)=1/2x1^2+x2^2 的最优解(0,0),初始迭代点为X0=(2,1)'.
要求要用到程序1
3:用共轭梯度法和牛顿法求上面的问题
都是编程问题,第一个编出来了可是不知道怎么套用在最速下降算法里,求大神帮忙,财富可追加!!下面是第一个的编程,求大神指点
function[x,y] = goldmin(f,xa,xb,s)
% 黄金分割法求解函数最小值
% 输入
% f 待优化函数
% a,b 区间
% s 精度
% 输出
% x 最优解
% y 最优解对应的最小值
g = (sqrt(5)-1)/2; % 黄金分割比,0.618
a = xa;
b = xb;
x2 = a + g*(b-a);
x1 = a + b - x2;
y1 = f(x1);
y2 = f(x2);
while abs(b-a) > s
if y1<y2
b = x2;
x2 = x1;
x1 = a + b - x2;
end
if y1>=y2
a = x1;
x1 = x2;
x2 = a + b - x1;
end
y1=f(x1);
y2 = f(x2);
end
x = x1;
y = f(x);
%然后在命令区输入
%>> f = @(x) 1/2*(x-1)^2+2;
%>> [x,y]=goldmin(f,0,3,0.001)
%输出 展开
2:用最速下降法求解F(x)=1/2x1^2+x2^2 的最优解(0,0),初始迭代点为X0=(2,1)'.
要求要用到程序1
3:用共轭梯度法和牛顿法求上面的问题
都是编程问题,第一个编出来了可是不知道怎么套用在最速下降算法里,求大神帮忙,财富可追加!!下面是第一个的编程,求大神指点
function[x,y] = goldmin(f,xa,xb,s)
% 黄金分割法求解函数最小值
% 输入
% f 待优化函数
% a,b 区间
% s 精度
% 输出
% x 最优解
% y 最优解对应的最小值
g = (sqrt(5)-1)/2; % 黄金分割比,0.618
a = xa;
b = xb;
x2 = a + g*(b-a);
x1 = a + b - x2;
y1 = f(x1);
y2 = f(x2);
while abs(b-a) > s
if y1<y2
b = x2;
x2 = x1;
x1 = a + b - x2;
end
if y1>=y2
a = x1;
x1 = x2;
x2 = a + b - x1;
end
y1=f(x1);
y2 = f(x2);
end
x = x1;
y = f(x);
%然后在命令区输入
%>> f = @(x) 1/2*(x-1)^2+2;
%>> [x,y]=goldmin(f,0,3,0.001)
%输出 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询