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 on April 23, and its replacement, statalist.org is already up and running.


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

Re: st: RE: Iterative solving of an equation


From   Austin Nichols <austinnichols@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: RE: Iterative solving of an equation
Date   Tue, 20 Apr 2010 17:02:15 -0400

David --
You could just do some algebra and write out the formula for the solutions
(I'm guessing you have two complex roots and one positive real root for
all these problems), or loop over obs in Mata:

ssc inst moremata
clear all
set obs 10
g Price_0 = 100
g BookValue_0 = 50
g EPS_1 = 3
g BookValue_1 = 52
g EPS_2 = 4.5
g g = _n/100
g x=.
mata
v=J(1,1,.)
st_view(v,.,"x Price_0 BookValue_0 EPS_1 BookValue_1 EPS_2 g")
function y(x,a,b,c,d,e,f) {
return(-50*(1+x)^2*(x-f)+(3-50*x)*(1+x)*(x-f)+
(4-52*x)*(x-.04)+(4.5-54*x)*(1+f))
}
for (i=1;i<=rows(v);i++) {
r=mm_root(x=.,&y(),0,1,1e-9,1000,v[i,2],
v[i,3],v[i,4],v[i,5],v[i,6],v[i,7])
v[i,1]=x
}
end
l, noo


On Tue, Apr 20, 2010 at 8:56 AM, Feiveson, Alan H. (JSC-SK311)
<alan.h.feiveson@nasa.gov> wrote:
> David - One way is to use -nl-
>
> See http://www.stata.com/support/faqs/lang/nl.html
>
> Al Feiveson
>
> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of David Scheuer
> Sent: Tuesday, April 20, 2010 4:18 AM
> To: statalist@hsphsun2.harvard.edu
> Subject: st: Iterative solving of an equation
>
> I am rebuilding cost of capital models, which determine cost of capital implied as the internal rate of return from a valuation model.
>
> For instance, let me assume this is the first line in my dataset and I want to solve the following equation.
>
> Price_0 = 100
> BookValue_0 = 50
> EPS_1 = 3
> BookValue_1 = 52
> EPS_2 = 4.5
> g = 0.04
> x =?
>
> 100=50+(3-x*50)/(1+x)+(4-x*52)/((1+x)^2)+((4.5-x*54)*1.04)/((x-0.04)*(1+x)^2)
>
> For example, in Excel, I would let the "Solver" find the solution for x.
> How can I program STATA to find solutions like this for me?
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


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