繁体   English   中英

Scipy凸日志优化

[英]Convex Log Optimization with Scipy

我需要使用随机初始化的猜测数据“ x”最小化函数func(x)

np.random.seed(1234)
m = 500    #500
n = 100    #100
x = np.asmatrix(np.random.randint(500,1000,size=(n,1)))

def func(x):
    A = np.asmatrix(np.random.randint(-10,-1, size=(n, m)))
    b = np.asmatrix(np.random.randint(500,10000,size=(m,1)))
    c = np.asmatrix(np.random.randint(1,10,size=(n,1)))
    fx = c.transpose()*x - sum(np.log10((b - A.transpose()* x)))
    return fx
sc.optimize.fmin_cg(func,y)

我遇到此错误“ ValueError:形状(1,100)和(1,100)未对齐:100(dim 1)!= 1(dim 0)”不知道scipy如何期望数据。 我是新来的。 如果有人可以指出正确的方向,那就太好了。

这样的事情应该做:

import scipy.optimize
import numpy as np

np.random.seed(1234)
m = 500    #500
n = 100    #100
x0 = np.random.rand(n)

A = np.asmatrix(np.random.randint(1,10, size=(n, m)))
b = np.asmatrix(np.random.randint(500,10000,size=(m,1)))
c = np.asmatrix(np.random.randint(1,10,size=(n,1)))

def func(x, A, b, c):
    fx = np.dot(c.T, x) - np.sum(np.log10((b - np.dot(A.T, x))))
    return fx


res = scipy.optimize.fmin_cg(func, x0, args=(A,b,c), maxiter=5)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM