Re: Getting Delayed rules from NSolve
- To: mathgroup at smc.vnet.net
- Subject: [mg14305] Re: [mg14220] Getting Delayed rules from NSolve
- From: Jurgen Tischer <jtischer at col2.telecom.com.co>
- Date: Tue, 13 Oct 1998 01:21:20 -0400
- References: <199810070700.DAA13673@smc.vnet.net.>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Dennis,
In[1]:= ru = {{RP2 -> -7.265190176252972*^-7,
RP1 -> 2.360865132070388*^-6},
{RP2 -> 0.00001024210507399882,
RP1 -> 5.269714033120727*^-7},
{RP2 -> 3.733028325153595*^-7,
RP1 -> 2.232745757286505*^-7}}
Out[1]=
{{RP2 -> -7.265190176252972*^-7,
RP1 -> 2.360865132070388*^-6},
{RP2 -> 0.00001024210507399882,
RP1 -> 5.269714033120727*^-7},
{RP2 -> 3.733028325153595*^-7,
RP1 -> 2.232745757286505*^-7}}
In[2]:= {RP1, RP2} /.
Cases[ru, {_ -> a_, _ -> b_} /; a > 0 && b > 0 && a + b < 10^(-6)]
Out[2]= {{2.232745757286505*^-7, 3.733028325153595*^-7}}
Jurgen
Dennis Benjamin wrote:
> Hi All:
>
> I am using NSolve to get numerical solutions from a setof simultaneous
> equations. The problem I am facing is extracting the physically
> reasonable solution from the supplied list of rules. For Example,
>
> In[199]:=
> Chop[NSolve[ Elim, {RP1,RP2}] /. P2t ->5 10^-6 ]
>
> Out[199]=
> {{RP2 -> -7.26519017625297269`*^-7,RP1 -> 2.36086513207038839`*^-6},
> {RP2 -> 0.0000102421050739988284`,RP1 -> 5.26971403312072794`*^-7},
> {RP2 -> 3.73302832515359561`*^-7, RP1 -> 2.23274575728650503`*^-7}}
>
> Only the third set is reasonable, given that RP1 and RP2 > 0 and RP1
> +RP2 < 1 10^-6.
>
> I would like to use Replace with a /; condition to select a particular
> value. However, I can only use /; with delayed Rules (:> instead of
> ->). Any ideas how to do this? Alternatively, a different approach to
> getting the pair of numbers
>
> 3.73302832515359561`*^-7
> 2.23274575728650503`*^-7
>
> from the above list of rules.
>
> Thanks!
>
> Dennis Benjami
- References:
- Getting Delayed rules from NSolve
- From: dennis.benjamin@molecular-sciences.oxford.ac.uk (Dennis Benjamin)
- Getting Delayed rules from NSolve