Re: Dynamically changing 2 interdependent variables.

*To*: mathgroup at smc.vnet.net*Subject*: [mg81477] Re: Dynamically changing 2 interdependent variables.*From*: dh <dh at metrohm.ch>*Date*: Wed, 26 Sep 2007 06:25:19 -0400 (EDT)*References*: <fd57vj$25b$1@smc.vnet.net>

Hi Michael, assume you change k. The statement: k=2Pi/lam will reset k at once. Therefore no wonder that k does not work. You need a way to distinguish which variable has changed. Here is an attempt: oldlam=2Pi; oldk=1; Manipulate[Dynamic[Print[{lam,k,oldlam,oldk}];If[oldlam!=lam,oldk=k=2Pi/lam;oldlam=lam];If[oldk!=k,oldlam=lam=2Pi/k;oldk=k];Row[{TraditionalForm[(2 Pi)/lam]," = ",TraditionalForm[2 Pi]/TraditionalForm[(2 Pi)/k]}]],{{k,1},.1,1},{{lam,2 Pi},2 Pi,2 Pi 10}] Note also, that the ranges of k and lam should be compatible. hope this helps, Daniel Michael Knap wrote: > Ok, I have looked over the Documentation, but I still haven't quite > figured out how to do exactly what I want to do. > > I am working on a Physics app dealing with waves, so I want to be able > to input a wave number either expressly, as k, or in terms of lambda. > > This is the relationship: k = (2 Pi) / lambda . > > I want to be able to change either variable in a Manipulate[] function, > and have the other update appropriately. > > This is what I have started with: > > Manipulate[ > Dynamic[ > Row[{ > TraditionalForm[k = (2 Pi)/lam], > " = ", > TraditionalForm[2 Pi]/TraditionalForm[lam = (2 Pi)/k] > }] > ], > {{k, 1}, .00001, 1}, > {{lam, 2 Pi}, 2 Pi, 100} > ] > > Notice how changing the lam slider works as expected. Changing the k > slider does not. > > Any help is appreciated. >