www.gusucode.com > GAVPai_Book_MathworksCntrlFileEx_May2019 > GAVPai_Book_MathworksCntrlFileEx_May2019/min_var_objfun.m

      % Chapter 1 Equation [1.21]
  % Objective: to obtain optimal weights for the minimum variance portfolio
  % using quadratic programming
  
  %---------------------------------------------------------------------
  %Inputs: Portfolio size (portfolio_size), covariance of returns (cov_data),
  %Output: Optimal weight set of the minimum risk portfolio (var_x), 
  %        minimal risk value (min_obj_fun_val)
  function [var_x,  min_obj_fun_val]= min_var_objfun(portfolio_size, cov_data)
  echo off
  
  H=2*cov_data;                                          % matrix H
  f=zeros(portfolio_size, 1);                            % vector f
  
  % Aeq and beq represent equality constraints
  Aeq=ones(1, portfolio_size);                           
  beq=1;
  
  % lower and upper bounds for variables xi
  lb=zeros(1, portfolio_size);                           
  ub=ones(1, portfolio_size);
  
  % obtain optimal weights using quadratic programming
  [var_x,min_obj_fun_val] = quadprog(H,f,[],[],Aeq, beq, lb,ub );
  end