声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1041|回复: 1

[综合讨论] 用牛顿法求极值点

[复制链接]
发表于 2009-7-2 16:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
function g=max_g(Ki,Kt,mu,A,B)
g_prev = inf;
g= 0.5;
while (abs(g-g_prev) > 1e-6)
    tempi = inv(g*Ki+(1-g)*Kt+4*mu*A);
    cKg = -2*mu*tempi*B;
    temp = (Kt-Ki)*cKg;
    dphi = cKg'*temp/(4*mu);
    ddphi = temp'*tempi*temp/(2*mu);
    g_prev = g;
    g = g-dphi/ddphi;
    if (g>=1)
        g=1;
        break;
    elseif (g<=0)
        g=0;
        break;
    end
end

%%目标函数为 phi(g)=-mu*B'*inv(4*mu*A+Kt)*B+b*norm(2*p-ones(1,u))^2-mu*b;其中Kt=g*Ki+(1-g)*Kt;B是n*1维向量,p是1*n维向量,A是n*n维矩阵,mu,b是数。其中g在[0,1]之间

在多次循环中g的值总是0,这是为什么,是这个算法有问题吗?用黄金法就不会出现这个问题,但是那样求得的值也是有问题的。
希望高手帮忙看看!
谢谢!
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-7-2 21:03 | 显示全部楼层
其中是求phi的极大值
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 03:08 , Processed in 0.059362 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表