Posts

Post has shared content

Public

Great news! More details soon.

Congrats to Continuum's own Michael Grant + the CVXR team for winning the Beale Orchard Hayes Prize for Excellence in Computational Mathematical Programming this week at ISMP 2015 for their TFOCS software! Not only is this award an incredible achievement, but this is actually the second time in a row Michael has received this award! Read more about the TFOCS project here: http://cvxr.com/

We are so excited to have such talented Software Developers on the Continuum Team. Congrats Michael!

We are so excited to have such talented Software Developers on the Continuum Team. Congrats Michael!

Add a comment...

Post has attachment

Public

Do you

1) use Windows;

2) like GNU #Octave ;

3) know how to use Git;

4) enjoy trying out unsupported, bleeding-edge dev builds?

Then I invite you to try out the dev version of CVX 3.0 beta with Octave 4.0. To do so, you'll need to grab the Octave 4.0 binaries, and the "rework" branch of the CVX GitHub repo.

Some important notes:

--- This is Windows

--- Complex variables will not work due to a known bug in Octave.

--- For some reason, there are issues with the GUI and plotting with Octave 4.0 on Windows 8.x. This is also a known bug.

--- Again, there is

1) use Windows;

2) like GNU #Octave ;

3) know how to use Git;

4) enjoy trying out unsupported, bleeding-edge dev builds?

Then I invite you to try out the dev version of CVX 3.0 beta with Octave 4.0. To do so, you'll need to grab the Octave 4.0 binaries, and the "rework" branch of the CVX GitHub repo.

Some important notes:

--- This is Windows

*only*. I do not have binaries for Mac and Linux, and I cannot afford the time to build them myself. So I'm waiting for supported binaries for these platforms before I proceed. If you're a heavy Octave user you should consider contributing to the binary creation effort!--- Complex variables will not work due to a known bug in Octave.

--- For some reason, there are issues with the GUI and plotting with Octave 4.0 on Windows 8.x. This is also a known bug.

--- Again, there is

*no support*yet, and I mean that. Please don't clog up our support site or even the discussion forum with issues just yet. By all means, please feel free to report your experiences in the comments below. When I announce that the Octave support to be "beta worthy" I will invite bug reports.Add a comment...

Post has attachment

Public

After a lot of hard work by the GNU #Octave team, Octave 4.0.0 has been released. Well done folks! The good news for me is that the CVX-critical patches I submitted were included. The bad news for me is that this means I have some work to do... :-)

Add a comment...

Post has attachment

Public

It really is a wonderful source of encouragement that CVX is trusted enough to be incorporated into teaching. You’ve made our day, Prof. Beck, thank you!

Add a comment...

Post has attachment

Public

A lot of people have asked for CVX on Octave over the years. Of course we want people to use CVX without the expense of a MATLAB license, but we just haven't been able to offer it yet---Octave itself needed changes. But it is coming

*very soon*, and we have a live demo to prove it! Click the link for more details.Add a comment...

Post has attachment

Public

As of February 20, over 10000 students are enrolled in CVX101, Stanford University’s online course in convex optimization offered by Professor Stephen Boyd and colleagues. Our Matlab package CVX is being used throughout the course.

To provide enrollees with a gentle introduction to the software, Prof. Boyd recorded the following video. If you’re not yet a CVX user yourself, you might find it useful as well!

To provide enrollees with a gentle introduction to the software, Prof. Boyd recorded the following video. If you’re not yet a CVX user yourself, you might find it useful as well!

Add a comment...

Post has attachment

Public

Professor Stephen Boyd and colleagues at Stanford University are offering a MOOC version of their well-known Convex Optimization course this winter. This course has been taught using Stanford's internal video distance learning platform for years, so it seems well suited for "porting" to the OpenEdX MOOC platform.

Our Matlab package CVX will be used extensively throughout. The Mathworks is providing time-limited Matlab licenses to all enrollees for the duration of the course. In addition, they are building a

If you haven't had a chance to learn about convex optimization more formally, here's a great opportunity.

Our Matlab package CVX will be used extensively throughout. The Mathworks is providing time-limited Matlab licenses to all enrollees for the duration of the course. In addition, they are building a

**web interface**to MATLAB so that you can build and programs and CVX models from any modern web browser.If you haven't had a chance to learn about convex optimization more formally, here's a great opportunity.

Add a comment...

Post has shared content

Public

What's this? Someone actually reads CVX source code and can understand it? Fantastic! Oh, wait, he's a +MOSEK employee. Of course! :-)

cholinc(X, 'inf') was a blessing to all of us who wanted to make a quick MATLAB implementation of a primal-dual interior-point method. It has been deprecated for some time, and in R2013a it was finally removed. Luckily, +Michael Grant has shown us that it can be done as efficiently in just a few lines of code. The comments are mine, and I currently use tolLDL = eps or 2*eps, since the 4*eps suggested in cvx/functions/@cvx/quad_form.m resulted in very slow convergence on one of my test problems due to the slightly less accurate search direction.

---------

function R = cholinf( X )

% Any symmetric matrix can be L*D*L' factorized into a

% lower-triangular L and block-diagonal D with block-sizes

% of 1x1 and 2x2 only. Fixing all 2x2 blocks, and negative

% 1x1 blocks, of D to zero, we obtain the approximated

% Cholesky factorization: (L*sqrt(D))*(L*sqrt(D))'.

%

[ R, DD, prm ] = ldl(X, 'upper', 'vector' );

tt = diag(DD,1) == 0;

tt = [ tt ; true ] & [ true ; tt ] & ( diag(DD) > tolLDL*sum(diag(X)) );

DD = diag(DD);

R = bsxfun(@times, sqrt( DD(tt,:) ), R(tt,:) );

if any( diff(prm) ~= 1 )

R( :, prm ) = R;

end

end

---------

function R = cholinf( X )

% Any symmetric matrix can be L*D*L' factorized into a

% lower-triangular L and block-diagonal D with block-sizes

% of 1x1 and 2x2 only. Fixing all 2x2 blocks, and negative

% 1x1 blocks, of D to zero, we obtain the approximated

% Cholesky factorization: (L*sqrt(D))*(L*sqrt(D))'.

%

[ R, DD, prm ] = ldl(X, 'upper', 'vector' );

tt = diag(DD,1) == 0;

tt = [ tt ; true ] & [ true ; tt ] & ( diag(DD) > tolLDL*sum(diag(X)) );

DD = diag(DD);

R = bsxfun(@times, sqrt( DD(tt,:) ), R(tt,:) );

if any( diff(prm) ~= 1 )

R( :, prm ) = R;

end

end

Add a comment...

Post has shared content

Public

We're very grateful that optimization experts like +Erling Andersen of +MOSEK ApS take the time to answer questions of CVX users on the CVX Forum (http://ask.cvxr.com). Here he offers a bit of a summary of a question that he and I both receive often: what is the complexity of the optimization algorithms used by CVX?

Busy day at the blog. There is nothing new just a summary based on several answers I have given on the net.

Add a comment...

Post has attachment

Public

We're grateful to the California Institute of Technology for agreeing to our proposal to release TFOCS under a permissive open source license. Effective immediately, TFOCS is governed by a 3-Clause BSD license, and its source code has been checked into Github. More details at the link.

Add a comment...

Wait while more posts are being loaded