Interdependent controls in Manipulate
Not sure if this is the best way, but you could consider something like this:
Manipulate[
{x, y},
{x, Manipulator[Dynamic[x, (x = #; y = 1/#) &], {.1, 10}] &},
{y, Manipulator[Dynamic[y, (y = #; x = 1/#) &], {.1, 10}] &},
Initialization :> ({x, y} = {1, 1})]
Edit V10
Since V10 one can use a shorter form:
Manipulate[
{x, y}
, {x, .1, 10, TrackingFunction :> ((x = #; y = 1/#) &)}
, {y, .1, 10, TrackingFunction :> ((y = #; x = 1/#) &)}
, Initialization :> ({x, y} = {1, 1})
]
You could also build a custom Manipulate
-like object using sliders
Panel[DynamicModule[{x, y},
Column[{
Grid[{
{"x", Slider[Dynamic[x, (x = #; y = 1/#) &], {0.1, 10}], Dynamic[x]},
{"y", Slider[Dynamic[y, (y = #; x = 1/#) &], {0.1, 10}], Dynamic[y]}
}],
Panel[{Dynamic[x], Dynamic[y]}, ImageSize -> 300, Background -> White]
}], ImageSize -> 300
]]
This?
{Slider[Dynamic[x], {0.1, 10}],
Slider[Dynamic[1/ x, Set[x, 1/#] &], {0.1, 10}]}
Dynamic[x]