MathGroup Archive 2007

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

Search the Archive

Re: Trouble with a system of equations



HI Yaroslav,

your equation in terms of a,b,c,d is linear and easy to solve. However, 

by transformations like a->a -> t0/(1 + t0) you are creating rational 

equations with poles. Now, as far as I can see, there is nothing that 

prevents you to use a,b,c... as variables. Why do you want to make your 

problem harder than necessary?

hope this helps, Daniel



Yaroslav Bulatov wrote:

> 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: Re: Re: Re: Re: Re: v6: still no multiple undo?
  • Next by Date: Re: Trouble with a system of equations
  • Previous by thread: Re: Trouble with a system of equations
  • Next by thread: Re: Trouble with a system of equations