MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Trouble with a system of equations

  • To: mathgroup at smc.vnet.net
  • Subject: [mg77488] Trouble with a system of equations
  • From: Yaroslav Bulatov <yaroslavvb at gmail.com>
  • Date: Sun, 10 Jun 2007 07:20:40 -0400 (EDT)

Hi, I'm trying to solve a certain kind of system of equations, and
while they are solvable by hand, Mathematica 6.0 has problems solving
it

Here's an example

eqns = {a + b + c + d == 4*m0, b + d == 4*m1, c + d == 4*m2, d ==
4*m3} /. {a -> t0/(1 + t0), b -> (t0*t1)/(1 + t0*t1), c -> (t0*t2)/(1
+ t0*t2), d -> (t0*t1*t2*t3)/(1 + t0*t1*t2*t3)}
Solve[eqns, {t0, t1, t2, t3}]

The solution can be found by hand and verified below

sol = {t0 -> a/(1/4 - a), t1 -> (b/(1/4 - b))*((1/4 - a)/a), t2 -> (c/
(1/4 - c))*((1/4 - a)/a), t3 -> (m3/(1/4 - m3))*(a/(1/4 - a))*((1/4 -
b)/b)*((1/4 - c)/c)} /. {a -> m0 - m1 - m2 + m3, b -> m1 - m3, c -> m2
- m3}
eqns /. sol // Simplify

This is an example of estimating equations for a saturated logistic
regression model with 2 independent variables. I'd like to see if
formulas also exist for more variables, but they are too cumbersome to
solve by hand. Are there any Mathematica tricks I can use to answer
this question?

Here's the procedure that generates the system of equations for d
variables (d=2 produces the system above)

logeq[d_] := Module[{bounds, monomials, params,
partition,derivs,sums},
   xs = (Subscript[x, #1] & ) /@ Table[i, {i, 1, d}];
    monomials = Subsets[xs]; monomials = (Prepend[#1, 1] & ) /@
monomials;
    monomials = (Times @@ #1 & ) /@ monomials;
    params = (Subscript[th, #1] & ) /@ Table[i, {i, 0, 2^d - 1}];
    monomials = (Times @@ #1 & ) /@ Thread[{params, monomials}];
    partition = Log[1 + Exp[Plus @@ monomials]];
    derivs = (D[partition, Subscript[th, #1]] & ) /@
      Table[i, {i, 0, 2^d - 1}]; bounds = ({#1, 0, 1} & ) /@ xs;
    sums = (Table[#1, Evaluate[Sequence @@ bounds]] & ) /@ derivs;
    sums = (Plus @@ #1 & ) /@ (Flatten[#1] & ) /@ sums;
    Thread[sums == Table[Subscript[m, i], {i, 0, 2^d - 1}]]]



  • Prev by Date: Fast interactive graphics
  • Next by Date: Re: 3D interpolation
  • Previous by thread: Re: Re: Fast interactive graphics
  • Next by thread: Re: Trouble with a system of equations