利用梯度法和牛顿法编程求最优解(matlab)

利用梯度法和牛顿法编程求最优解(matlab)

软件类 2010-11-09 15:46:36 阅读197 评论0 字号:大中小 订阅

f(x)=x1^2+4*x2^2 x0=[2;2] e=0.002

利用梯度法和牛顿法编程求最优解

方法一.梯度法

function y=fun(x1,x2)

y=x1^2+4*x2^2; %定义fun.m函数

clc

syms x1 x2 d;

f=x1^2+4*x2^2;

fx1=diff(f,'x1');

fx2=diff(f,'x2');

x1=2;

x2=2;

for n=1:100

f0=subs(f);

f1=subs(fx1);

f2=subs(fx2);

if (double(sqrt(f1^2+f2^2)) <= 0.002)

n

vpa(x1)

vpa(x2)

vpa(f0)

break;

else

D=fun(x1-d*f1,x2-d*f2);

Dd=diff(D,'d');

dd=solve(Dd);

x1=x1-dd*f1;

x2=x2-dd*f2;

end

end %结果n=10,x1=0.2223e-3,x2=-0.1390e-4,f0=0.5021e-7.

方法二.牛顿法

clc

syms x1 x2 ;

f=x1^2+4*x2^2;

fx1=diff(f,'x1'); fx2=diff(f,'x2');

fx1x1=diff(fx1,'x1');fx1x2=diff(fx1,'x2');fx2x1=diff(fx2,'x1');fx2x2=diff(fx2,'x2');

x1=2;

x2=2;

for n=1:100

f0=subs(f);

f1=subs(fx1);

Word文档免费下载Word文档免费下载:利用梯度法和牛顿法编程求最优解(matlab) (共2页,当前第1页)

你可能喜欢

  • 拟牛顿法
  • 相关点法
  • 温度梯度
  • 统一编码
  • 编码标准
  • 社会法
  • 听说法

利用梯度法和牛顿法编程求最优解(matlab)相关文档

最新文档

返回顶部