声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1880|回复: 5

[计算数学] 请问如何计算现在这个问题

[复制链接]
发表于 2007-11-22 15:18 | 显示全部楼层 |阅读模式

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

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

x
应该是个二次规划问题吧。

见附件吧

二次规划问题.doc

16 KB, 下载次数: 11

二次规划问题

回复
分享到:

使用道具 举报

发表于 2007-11-22 17:13 | 显示全部楼层

回复 #1 jytan 的帖子

公式最好直接用图片的形式上传。
 楼主| 发表于 2007-11-23 11:02 | 显示全部楼层
接受楼上的意见,
现在帖个图。
应该是可以用matlab的qp命令求解,
但约束条件不知道该如何表达了。。
请教各位。

[ 本帖最后由 jytan 于 2007-11-23 11:04 编辑 ]
二次规划.bmp
二次规划.bmp
 楼主| 发表于 2007-11-23 11:09 | 显示全部楼层
n- 表示所有负例样本的个数。也就是y=-1的个数。
(xi,yi)表示一个训练样本。
 楼主| 发表于 2007-11-28 15:20 | 显示全部楼层

我的解法,请大家指教

以下算法是matlab写的:  
    for i=1:n
       for j=1:n
          H(i,j) = Y(i)*Y(j)*svkernel(ker,X(i,:),X(j,:));
       end
    end
     H = H+1e-10*eye(size(H));
    f=zeros(n,1);  %%因为quadprog解的是问题:min 0.5*x'*H*x + f'*x。此处只有前一部分,因此f设为0
    Aeq=zeros(1,n);
    for i=1:n
        Aeq(i)=(Y(i)==1);   %%%当yi=-1的时候,alphai=1;
    end
    beq=n_minus;  %%Aeq*x=beq.完成最后一个约束。它和倒数第二个约束是重复的。
    vlb = zeros(n,1);      % Set the bounds: alphas >= 0
    vub =ones(n,1);    %                 alphas <= 1   
       A = [];
       b = [];
%        Aeq=Y';
%        beq=0;
    alpha=quadprog(H,f,A,b,Aeq,beq,vlb,vub);

出现错误如下:
Warning: Large-scale method does not currently solve this problem formulation,
using medium-scale method instead.
> In quadprog at 264
  In main_svcpath at 57
Maximum number of iterations exceeded; increase options.MaxIter.
To continue solving the problem with the current solution as the
starting point, set x0 = x before calling quadprog.
发表于 2007-11-28 20:46 | 显示全部楼层
错误提示你说你用的解法不适合求解你的问题,建议你使用中等规模的求解方法

二次规划问题我没有接触过,不好意思帮不了你!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-20 02:01 , Processed in 0.061382 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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