baba_822 2018-03-29 01:52 采纳率: 33.3%
浏览 2248
已结题

Singular matrix C in LSQ subproblem是什么原因

这里使用的是scipy中的optimize优化函数

具体代码如下:
from scipy import optimize as opt
import numpy as np
def func(X,G):
sum=0.0
for i in np.arange(G.shape[0]):
sum=sum+X[3*i]
return -1*sum
def sigma(X,G,i):
sum=0.0
for j in np.arange(G.shape[0]):
sum=sum+G[i,j]*X[3*j+2]
return sum*X[3*i+2]
def Cons1(G):
cons=()
for i in np.arange(G.shape[0]):
cons=np.append(cons,{'type':'eq','fun':lambda X:X[3*i]-X[3*i+1]-sigma(X,G,i)})
return cons
def Cons2(G,I):
cons=()
for i in np.arange(G.shape[0]):
for j in np.arange(i,G.shape[0]):
cons=np.append(cons,{'type':'ineq','fun':lambda X:I[i,j]-(X[3*i+2]-X[3*j+2])*G[i,j]})
cons=np.append(cons,{'type':'ineq','fun':lambda X:(X[3*i+2]-X[3*j+2])*G[i,j]+I[i,j]})
return cons
def bou(G,P,vn,Pg):
bounds=np.mat(np.zeros([3*G.shape[0],2]))
for i in np.arange(G.shape[0]):
bounds[3*i,:]=Pg[i,:]
bounds[3*i+1,0]=0
bounds[3*i+1,1]=P[0,i]
bounds[3*i+2,0]=0.95*vn
bounds[3*i+2,1]=1.05*vn
return bounds
def x_start(G,P,vn,Pg):
x0=np.array(np.zeros([1,3*G.shape[0]]))
for i in np.arange(G.shape[0]):
x0[0,i]=float((Pg[i,0]+Pg[i,1]))/2
x0[0,i+1]=P[0,i]
x0[0,i+2]=vn
return x0
def opf(G,I,P,vn,Pg):
b=bou(G,P,vn,Pg)
cons=Cons1(G)
cons=np.append(cons,Cons2(G,I))
x=x_start(G,P,vn,Pg)
res=opt.minimize(func, args=(G),x0=x,bounds=b,constraints=cons,method='SLSQP',options={'disp': True})
return res.x
#以下为输入数据:
G=np.mat([[1/0.64,0,-1/0.64,0,0],
[0,1/0.8+1/0.8+1/0.5,-1/0.8,-1/0.8,-1/0.5],
[-1/0.64,-1/0.8,1/0.64+1/0.8+1/1.6,-1/1.6,0],
[0,-1/0.8,-1/1.6,1/1.6+1/0.8+1,-1],
[0,-1/0.5,0,-1,1/0.5+1]])
I=np.mat([[0,0,1000,0,0],
[0,0,1000,1000,1000],
[1000,1000,0,1000,0],
[0,1000,1000,0,1000],
[0,1000,0,1000,0]])
P=np.mat([0,0,1000,800,0.1])
vn=250
Pg=np.mat([[300,400],[1100,1200],[0,0],[0,0],[200,300]])
print(opf(G,I,P,vn,Pg))

  • 写回答

1条回答 默认 最新

  • devmiao 2018-03-29 04:16
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求
  • ¥20 antv g6 折线边如何变为钝角
  • ¥30 如何在Matlab或Python中 设置饼图的高度
  • ¥15 nginx中的CORS策略应该如何配置
  • ¥30 信号与系统实验:采样定理分析