[R] Solving systems of non-linear equations in R
T Petersen
Terji78 at yahoo.com
Wed Feb 23 21:16:49 CET 2005
Thank you, that was very helpful. My functions are in general monotonic,
continous and differentiable(one exception sometimes encountered being y
= min(a*x1,b*x2)) and do have a unique solution, if you specify the
problem correctly.
I have never worked with non-liner solving algoritms in my math courses,
so maybe starting to setup algoritms in R may take the focus away from
my thesis subject. On the other hand it could be fun :-D
Maybe I should check out the optim()-function again. You can solve
systems with more tha one equations with optim()?
regards
Spencer Graves wrote:
> A system of n equations in n unknowns has a unique solution if
> the n equations are linear and linearly independent. If the system is
> nonlinear, then one must characterize the nonlinearity before saying
> anything about whether a solution exists and if so how many solutions
> are there?
> Example 1: Solve sin(x)=0 for x. Answer: x = 2*n*pi, for n =
> any integer.
> Example 2: Solve sin(x) = 2 for x. Answer: If x must be a real
> number, then this equation has no solutions.
> Are your functions monotonic? Continuous? Differentiable?
> Without getting into pathologies like the Cantor function (e.g.,
> http://www.cut-the-knot.org/do_you_know/cantor.shtml), my experience
> with a variety of practical problem like this suggests that it is best
> to recast the problem as one of minimizing, e.g., the sum of squared
> deviations from target. Moreover, I've had good luck transforming the
> parameter space to eliminate constraints -- or incorporating the
> constraints into the objective function and then solving the
> superficially unconstrained problem. If my functions have
> singularities where I might get 0/0 or Inf-Inf, for example, I use
> asymptotic expansions to "approximate" the function(s) near the
> singularities more accurately than can be achieved with any
> finite-precision arithmetic.
> With all of this, I'm confident that there are better algorithms
> than the different methods in "optim", but I don't have not had the
> need to hunt for them. The methods in "optim" provide a reasonable
> range of options for the problems I've encountered.
> The R project has another advantage over a commercial software:
> You can see the source code. You can trace it step by step and find
> out where it does not work well for the specific problems you
> consider. If you're clever, you might be able to find a way to
> improve that algorithm and make it part of your thesis -- and get a
> publication on it in some statistical software journal. Where else
> can you so easily climb up and stand on the shoulders of giants? If
> you find a platform for innovation better than R, please let me know.
> hope this helps. spencer graves
> T Petersen wrote:
>
>> No, this doesn't seem right. What I look for is something that could
>> solve nonlinear systems with n unknowns and n equations. So there
>> will be zero degrees of freedom, and statistical methods can't be the
>> right way forward.
>>
>> Specifically I can see that the litterature mentions's "Scarf's
>> algoritm" (Scarf 1967) and Merril's refinement of Scarf's algoritm in
>> 1972, but there might be other algoritms too...
>>
>> Regards...TP
>>
>> yutaka hamaoka wrote:
>>
>>>
>>> I believe
>>> library(systemfit)
>>> has nlsytemfit function.
>>>
>>> Yh
>>>
>>>
>>> T Petersen wrote:
>>>
>>>> I'm about to write my thesis in economics and will need to setup
>>>> and solve a system of non-linear equations. At our university we
>>>> usually use GAMS for this, and though GAMS is a fine program, it
>>>> bugs me a that I won't be able to run my code after I finish my
>>>> thesis without buying a license for the program(about $3.500 :-(( )
>>>>
>>>> So I've looked around for NL-stuff for R, but I can't find
>>>> anything. The closest thing appears to be optim(), but it doesn't
>>>> seem to allow constraints(as in fn = constant) or equations
>>>> systems. So, anyone knows if there is a method in R that you can
>>>> use for this purpose?
>>>>
>>>> regards
>>>>
>>>> ______________________________________________
>>>> R-help at stat.math.ethz.ch mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>> PLEASE do read the posting guide!
>>>> http://www.R-project.org/posting-guide.html
>>>>
>>>
>>> ______________________________________________
>>> R-help at stat.math.ethz.ch mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide!
>>> http://www.R-project.org/posting-guide.html
>>>
>>
>> ______________________________________________
>> R-help at stat.math.ethz.ch mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide!
>> http://www.R-project.org/posting-guide.html
>
>
>
>
More information about the R-help
mailing list