# От CVX до CVXPY или CVXOPT -- python поле с участием matlab поле с участием cvxopt поле с участием cvx поле с участием cvxpy пол Связанный проблема

## From CVX to CVXPY or CVXOPT

9 ### проблема

русский

Я пытался пройти какой-код из Matlab в Python. У меня такая же проблема с выпуклой оптимизацией, работающая на MATLAB, но у меня возникли проблемы, передавающие его в CVXPY или CVXOPT.

` <код> n = 1000; i = 20; y = rand(n,1); A = rand(n,i); cvx_begin variable x(n); variable lambda(i); minimize(sum_square(x-y)); subject to     x == A*lambda;     lambda >= zeros(i,1);     lambda'*ones(i,1) == 1; cvx_end   `

Это то, что я пробовал с <сильным> python и cvxpy .

` <код> import numpy as np from cvxpy import *  # Problem data. n = 100 i = 20 np.random.seed(1) y = np.random.randn(n) A = np.random.randn(n, i)  # Construct the problem. x = Variable(n) lmbd = Variable(i) objective = Minimize(sum_squares(x - y)) constraints = [x == np.dot(A, lmbd),                lmbd <= np.zeros(itr),                np.sum(lmbd) == 1]  prob = Problem(objective, constraints)  print("status:", prob.status) print("optimal value", prob.value)   `

Тем не менее, это не работает. У кого-нибудь из вас есть идеи, как сделать это работать? Я уверен, что моя проблема в <Щедах> ограничения . А также было бы неплохо иметь его с cvxopt.

Английский оригинал

I've been trying to pass some code from Matlab to Python. I have the same convex optimization problem working on Matlab but I'm having problems passing it to either CVXPY or CVXOPT.

``n = 1000; i = 20; y = rand(n,1); A = rand(n,i); cvx_begin variable x(n); variable lambda(i); minimize(sum_square(x-y)); subject to     x == A*lambda;     lambda >= zeros(i,1);     lambda'*ones(i,1) == 1; cvx_end ``

This is what I tried with Python and CVXPY.

``import numpy as np from cvxpy import *  # Problem data. n = 100 i = 20 np.random.seed(1) y = np.random.randn(n) A = np.random.randn(n, i)  # Construct the problem. x = Variable(n) lmbd = Variable(i) objective = Minimize(sum_squares(x - y)) constraints = [x == np.dot(A, lmbd),                lmbd <= np.zeros(itr),                np.sum(lmbd) == 1]  prob = Problem(objective, constraints)  print("status:", prob.status) print("optimal value", prob.value) ``

Nonetheless, it's not working. Does any of you have any idea how to make it work? I'm pretty sure my problem is in the constraints. And also it would be nice to have it with CVXOPT.

</div

## Список ответов

6  Лучший ответ

Я думаю, что получил это, у меня было одно из ограничений неправильно =), я добавил случайное число семян для сравнения результатов и проверки, которые на самом деле одинаковы на обоих языках. Я оставляю данные здесь, так что, возможно, это полезно для кого-то когда-нибудь;)

matlab

` <код> rand('twister', 0); n = 100; i = 20; y = rand(n,1); A = rand(n,i); cvx_begin variable x(n); variable lmbd(i); minimize(sum_square(x-y)); subject to     x == A*lmbd;     lmbd >= zeros(i,1);     lmbd'*ones(i,1) == 1; cvx_end   `

CVXPY

` <код> import numpy as np from cvxpy import *  # random seed np.random.seed(0)  # Problem data. n = 100 i = 20 y = np.random.rand(n) # A = np.random.rand(n, i)  # normal A = np.random.rand(i, n).T  # in this order to test random numbers  # Construct the problem. x = Variable(n) lmbd = Variable(i) objective = Minimize(sum_squares(x - y)) constraints = [x == A*lmbd,                lmbd >= np.zeros(i),                sum_entries(lmbd) == 1]  prob = Problem(objective, constraints) result = prob.solve(verbose=True)   `

<Сильный> CVXOPT Ожидается .....

I think I got it, I had one of the constraints wrong =), I added a random seed number in order to compare the results and check that are in fact the same in both languages. I leave the data here so maybe this is useful for somebody someday ;)

Matlab

``rand('twister', 0); n = 100; i = 20; y = rand(n,1); A = rand(n,i); cvx_begin variable x(n); variable lmbd(i); minimize(sum_square(x-y)); subject to     x == A*lmbd;     lmbd >= zeros(i,1);     lmbd'*ones(i,1) == 1; cvx_end ``

CVXPY

``import numpy as np from cvxpy import *  # random seed np.random.seed(0)  # Problem data. n = 100 i = 20 y = np.random.rand(n) # A = np.random.rand(n, i)  # normal A = np.random.rand(i, n).T  # in this order to test random numbers  # Construct the problem. x = Variable(n) lmbd = Variable(i) objective = Minimize(sum_squares(x - y)) constraints = [x == A*lmbd,                lmbd >= np.zeros(i),                sum_entries(lmbd) == 1]  prob = Problem(objective, constraints) result = prob.solve(verbose=True) ``

CVXOPT is pending.....

</div

## Связанный проблема

16  Как преобразовать шестигранную строку в шестнадцатеричный номер?  ( How to convert hex string to hex number )
У меня есть целое число в бывшем. 16 И я пытаюсь преобразовать этот номер в шестнадцатеричный номер. Я пытался достичь этого, используя функцию Hex, но всякий...

51  Запросы Python «Пропасные зависимости от поддержки носков» при использовании SOCKS5 из терминала  ( Pythons requests missing dependencies for socks support when using socks5 fro )
Я пытаюсь взаимодействовать с API из My Python 2.7 Shell, используя пакет, который опирается на запросы Python. Вещь - это удаленный адрес блокируется моей се...

2  Добавьте номера в шестнадцатеричном базе без конвертации баз?  ( Add numbers in hexadecimal base without converting bases )
Мне нужно написать функцию, которая получает два числа в шестнадцатеричном базе, и вычисляет сумму обоих из них, мне не разрешено преобразовывать их в десятич...

0  Объедините несколько столов для ответа JSON в Django Read Framework  ( Combine multiple tables for a json response in django rest framework )
Я использую Django Read Framework для моего serializers . Мне нужно создать веб-сервис, который сочетает в себе поля в трех таблицах и дает JSON. У меня ес...

0  Почему этот сценарий Python работает на Ubuntu, но не распачин?  ( Why does this python script work on ubuntu but not raspbian )
Друг, и я создал следующий скрипт, использующий BeautifulSoup, чтобы получить HTML страницы работы, а затем добавить работу на массив, затем файл, затем отпра...

1  Как мне позвонить в родительский класс в подклассе?  ( How do i call on a parent class in a subclass )
Мне нужно создать вызов несвязанного метода, чтобы установить имя и листья, и я не знаю, как. Любая помощь ценится. Мой код: <код> class Plant(object): ...

0  NameError: Имя «Домашние животные» не определены. Питон  ( Nameerror name pets is not defined python )
Это код, который я использую, но каждый раз, когда я пытаюсь запустить его, я получаю эту ошибку в терминале: <код> Traceback (most recent call last): Fil...

1  Где многопроцессор  ( Where is multiprocessing process )
Я портирую рабочее приложение из Python 3.3-34 и столкнулся с странной ситуацией. Класс Multipressing.Process отсутствует в загрузке с Python.org. Вместо этог...

0  Запрос доступа от класса Inherit (View)  ( Access request from inherit class view )
Как я могу предъявить запрос на var, если я не реализую методы Get / Post из класса Inherit (View)? <код> class Base(View): def __init__(self): ...

1  Нахождение корней с Scipy.Optimize.root  ( Finding roots with scipy optimize root )
Я пытаюсь найти root y функции, называемой f с помощью python. Вот мой код: <код> def f(y): w,p1,p2,p3,p4,p5,p6,p7 = y[:8] t1 = w - 0.500371726*...

5  Как я могу получить Mercurial для того, чтобы снова выдвигать коммиты?  ( How can i get mercurial to push commits again )
Я не знаю, что я ничего изменил и работаю Ubuntu 10.10. Mercurial работает нормально, а затем внезапно, когда я начал толкать сегодня утром, я начал получать ...

-4  Как суммировать значения при заворачивании аналогичного ключа, чтобы построить Dict  ( How to sum values when zipping similar key to build a dict )
У меня есть <код> A = [a, b, c, d, a, d, c] и <код> B=[1, 2, 3, 4, 5, 6, 7] Почему <код> dict(zip(A,B)) не возвращается <код> {'a': 6, 'b': 2, 'c': 10, '...

0  После добавления клеток найдите мин и максимум пяти различных категорий в файле CSV  ( After appending cells find min and max of five different categories in a csv fi )
Привет всем У меня есть вопрос. Я просто сейчас изучаю мин и макс. У меня проблемы в нахождении мин и максимум пяти столбцов для каждой категории Вот, что...

0  Запустите сценарий Python в колбу  ( Run python script into flask )
У меня есть настольное приложение для обнаружения лиц, написанных в сценарии Python, используя OpenCV и Numpy. Я хочу поставить эти файлы Python в колбу и зап...

2  подмодул .POPEN отказывается запускать команду, хотя OS.System работает нормально  ( Submodules popen refuses to run a command even though os system works fine )
Всякий раз, когда я запускаю этот скрипт: <код> gcalctool0 Я постоянно получаю эту ошибку: <код> gcalctool1 Тем не менее, <код> gcalctool2 определе...