使用交叉熵最小化方法求解矩阵,求哪位lingo高手或matlab高手帮忙
各位大神,我想要计算一个16*16的矩阵,本来想用lingo计算,在网上找了一个类似的程序但是运行出来,结过出错,希望给位走过路过的朋友,给予指点,用lingo 或者是matlab都可以,谢谢了,有些急。有关模型描述包括目标函数和约束条件都在附件里面。lingo的运算程序如下:model:!16家银行;sets:
A/1..16/:ai;
B/1..16/:bj;
links(A,B):X,X0;
!X1=X_*;
endsets
data:
ai=0.049105298,0.19706518,0.079929381,0.040404067,0.00307861,0.029535259,0.030970463,0.081245849,0.053001907,0.122173474,0.000229636,0.067807575,0.359324615,0.051351782,0.004097295,0.008038271;
bj=0.06029401,0.017726814,0.034382538,0.041643595,0.006514545,0.075761924,0.011835925,0.017374484,0.11483671,0.17727039,0.029125245,0.127436517,0.242528843,0.025613802,0.002559618,0.015095039;
enddata
!目标函数:
min=@sum(links(i,j)/i#ne#j:X(i,j)*(@log(X(i,j))-@log(X0(i,j))));
aa=@sum(A(i):ai(i));
bb=@sum(b(j):bj(j));
!约束条件;
@for(A(i):@sum(B(j):X(i,j))=X(i,i)+ai(i););
@for(B(j):@sum(A(i):X(i,j))=X(j,j)+bj(j););
@for(links(i,j):X0(i,j)=@if(i#EQ#j,0,ai(i)*bj(j)));
end
lingo运行程序中的约束条件应该为:
!约束条件;
@for(A(i):@sum(B(j):X(i,j))=X(i,i)+ai(i););
@for(B(j):@sum(A(i):X(i,j))=X(j,j)+bj(j););
@for(links(i,j):X0(i,j)=@if(i#EQ#j,0,ai(i)*bj(j)));
end
那个愤怒的表情是: @
什么事 啊不懂。。。。。。。。。。。。。。。 ~\(≧▽≦)/~ 看看。。。 谢谢楼主 不明觉厉 希望给个联系方式,本人论文有涉及到,可是不懂,都快抓狂了。希望前辈指导一下,联系方式2385676071.电话18382425941希望尽快能联系到前辈
求指导。本人也想学习
我现在也在做这个研究,能否指导一下
我还是没能用lingo
页:
[1]