Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down at the end of May, and its replacement, is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: Maximizing under constraint with Mata ?

From   Ozgur Ererdem <>
To   "" <>
Subject   st: Maximizing under constraint with Mata ?
Date   Fri, 14 Sep 2012 17:32:33 +0000

Dear Stata users, 

I've been trying to implement an optimization under constraint, using the optimize() command of Mata. 
Both the function I'm willing to maximize and the constraint are non-linear. 

Below please find the code I am using to define the Lagrange function denoted as "Ref". p[K] is the Lagrange multiplier, and the other p[i]s are the unknown parameters I am looking for. I use a "d0" evaluatortype.

Mata have been unable to find a solution, because  it "cannot calculate numerical derivatives  -- discontinuous region with missing values encountered" 

Am I making a mistake in the way I write the problem? Has Mata the capacity to solve these kinds of optimization problems? Thank you very much for your help. 


void mysolver(todo, p, Ref, S,H )
      {external alpha, w, M, txm, k, X 
	  delta = J(k, 1, 0) 
	  for (i=1; i<=k; i++) {
	  delta[i] = exp(X[i] + alpha*(p[i]*1.196))
	  S0 = runningsum(delta) 
      CA = J(k, 1, 0) 
	  for (i=1; i<=k; i++) {
      CA[i] = p[i]*( (delta[i]/(1+S0[k]))*M )
	  CAtot = runningsum(CA)
	  CT = J(k, 1, 0)
	  	  for (i=1; i<=k; i++) {
	  CT[i] = w[i]*( (delta[i]/(1+S0[k]))*M )
	  CTtot = runningsum(CT)
	  K = k+1 
	  Ref = J(1,1,0) 
	  Ref = CAtot[k] + p[K]*(((1-txm)*CAtot[k]) - CTtot[k]) 

Özgür Kaan Ererdem

Tél: +33 4 20 04 00 42 
Fax: +33 5 67 69 91 06

*   For searches and help try:

© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index