srand(1) m = 25; n = 10; A = randn(m, n); b = randn(m, 1); using Convex, SCS set_default_solver(SCSSolver(verbose=0)); gammas = logspace(-4, 2, 100); x_values = zeros(n, length(gammas)); x = Variable(n); for i=1:length(gammas) cost = sum_squares(A*x - b) + gammas[i]*norm(x,1); problem = minimize(cost, [norm(x, Inf) <= 1]); solve!(problem); x_values[:,i] = evaluate(x); end # Plot the regularization path. using Gadfly, DataFrames df = DataFrame(λ=gammas, x=vec(x_values[1,:]), label="x1") for i=2:n df = vcat(df, DataFrame(λ=gammas, x=vec(x_values[i,:]), label=string("x", i))); end plot(df, x="λ", y="x", color="label", Geom.line, Scale.x_log10, Guide.title("Entries of x vs λ"))