• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: Matlab
  • 标签: matlab  梯度法  

资源简介

用matlab编程实现最优控制理论的共轭梯度法。程序运行无误。

资源截图

代码片段和文件信息

format long;
k=0;
ex=2;
X0=[2;2]%设定x初值为(22)
while k<2000
syms x1 x2 rr    
%f=100*(x2-x1^2)^2+(1-x1)^2
f=x1^2+2*x2^2-4*x1-2*x1*x2
%f=(x1-1)^4+x2^2
%f=2*x1^2+x2^2-4*x1+2
df(11)=diff(fx1)     %取函数的梯度(df(11)df(21))
df(21)=diff(fx2)
xx=gradient(X0df)         %将求得的梯度向量值存入xx中
ex=sqrt(xx(11)^2+xx(21)^2) %求得梯度下降模值存入变量ex

x1=X0(11)
x2=X0(21) 
eval(f)
if ex<1e-4
        disp(‘x*=‘)
        disp(X0)
        disp(‘函数最优解为:f=‘)
        disp(eval(f))
        break;
end
x1=X0(11)-rr*xx(11)     %将x1x2变为一维搜索极小点变量rr的函数
x2=X0(21)-rr*xx(21)
flamda=eval(f)         %求得rr的函数,便于进行一维搜索
rr=partition(flamda)    %用黄金分割法求得精确以为搜索的rr值
x1
x2
X0(11)=eval(x1)    %重新给变量x1x2赋值,以便进行下一次循环;
X0(21)=eval(x2)

k=k+1
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        853  2010-12-27 22:44  梯度法\fastspeed.m

     文件        121  2010-12-27 22:43  梯度法\gradient.m

     文件        914  2010-12-27 23:00  梯度法\partition.m

     文件       2004  2010-12-27 23:26  梯度法\最速下降.txt

     目录          0  2011-06-12 13:45  梯度法

----------- ---------  ---------- -----  ----

                 3892                    5


评论

共有 条评论