Re: Why does Solve give me no solutions for this in Version 8.0.1?
- To: mathgroup at smc.vnet.net
- Subject: [mg119973] Re: Why does Solve give me no solutions for this in Version 8.0.1?
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Sat, 2 Jul 2011 05:02:42 -0400 (EDT)
On 06/30/2011 07:40 PM, Phil J Taylor wrote:
> This system of equations for the Magic Hexagon is indeterminate.
> Solve still provides useful information in Version 6.0
>
> ClearAll[a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s];
> eqns = {
> a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s
> - 190 == 0,
> a + b + c - 38 == 0,
> a + d + h - 38 == 0,
> a + e + j + o + s - 38 == 0,
> b + e + i + m - 38 == 0,
> b + f + k + p - 38 == 0,
> c + f + j + n + q - 38 == 0,
> c + g + l - 38 == 0,
> d + e + f + g - 38 == 0,
> d + i + n + r - 38 == 0,
> g + k + o + r - 38 == 0,
> h + i + j + k + l - 38 == 0,
> h + m + q - 38 == 0,
> l + p + s - 38 == 0,
> m + n + o + p - 38 == 0,
> q + r + s - 38 == 0
> };
>
> Join[
> Solve[eqns, b], Solve[eqns, d], Solve[eqns, g],
> Solve[eqns, m], Solve[eqns, p], Solve[eqns, j],
> Solve[eqns, r], Solve[eqns, e], Solve[eqns, f],
> Solve[eqns, i], Solve[eqns, k], Solve[eqns, n],
> Solve[eqns, o], Solve[eqns, a], Solve[eqns, c],
> Solve[eqns, h], Solve[eqns, l], Solve[eqns, q],
> Solve[eqns, s]]
>
> Out[1]: {{b -> j + n + o}, {d -> j + k + o}, {g -> i + j + n},
> {m -> f + j + k}, {p -> e + i + j}, {j -> -38 + d + g + r},
> {r -> -38 + h + l + m + p}, {e -> -38 + h + k + q + r},
> {f -> -38 + i + l + r + s}, {i -> -38 + f + p + q + s},
> {k -> -38 + e + m + q + s}, {n -> -38 + g + h + k + l},
> {o -> -38 + d + h + i + l}, {a -> -38 + i + m + n + q + r},
> {c -> -38 + k + o + p + r + s}, {h -> -38 + n + o + p + r + s},
> {l -> -38 + m + n + o + q + r}, {q -> -38 + g + k + l + o + p},
> {s -> -38 + d + h + i + m + n}}
>
> Version 8.0.1 returns {}.
There are no generic solutions: each separate system forces equations
involving non-Solve variables. See
Documentation Center > Solve > Options > MaxExtraConditions
You could do e.g.
In[563]:= Solve[eqns, b, MaxExtraConditions -> Infinity]
Out[563]= {{b ->
ConditionalExpression[j + n + o,
d - j - k - o == 0 && f + j + k + n + o + p == 38 &&
m + n + o + p == 38 && e - k - n - o - p - r == -38 &&
g + k + o + r == 38 && i + j + k + n + o + r == 38 &&
c - k - o - p - r - s == -38 && h - n - o - p - r - s == -38 &&
l + p + s == 38 && a + j + k + n + 2 o + p + r + s == 76 &&
q + r + s == 38]}}
I'd suggest instead just doing
Solve[eqns]
An addition to being simpler to input, you will not have a "solution
set" where r is in terms of l, and l is in terms of r.
If you want to specify a set of variables to solve for in terms of all
the rest, that shopuld be fine too. I'd make sure it is large enough
that there are no remaining relations in terms of non-specified
variables (or again you'll get {}). Alternatively you could set
MaxExtraConditions to some high value.
Daniel Lichtblau
Wolfram Research