Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.math.mathematica

Topic: NSolve output
Replies: 7   Last Post: Jan 18, 2013 12:50 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Trichy V. Krishnan

Posts: 8
Registered: 11/22/12
Re: NSolve output
Posted: Jan 16, 2013 1:38 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

Just for your information...

The following didn't work (I am using version 8):
soln1 = NSolve[{dpi1s1 == 0, dpi2s2 == 0, 0 < s1 < 1, 0 < s2 < 1}, {s1, s2}][[1]]

The following works well.
soln4 = Select[NSolve[{dpi1s1 == 0, dpi2s2 == 0}, {s1, s2}], And @@ Thread[0 < {s1, s2} < 1] /. # &][[1]]

Thanks a lot again.

trichy



-----Original Message-----
From: Trichy V. Krishnan [mailto:biztvk@nus.edu.sg]
Sent: Tuesday, January 15, 2013 12:29 PM
Subject: Re: NSolve output

Wow... thanks.

trichy

-----Original Message-----
From: Bob Hanlon [mailto:hanlonr357@gmail.com]
Sent: Tuesday, January 15, 2013 4:43 AM
To: Trichy V. Krishnan
Cc: mathgroup@smc.vnet.net
Subject: Re: NSolve output

Clear[s1, s2];

dpi1s1 = Rationalize[
0.3125 - 0.0645 s1^2 + 0.0083205 s1^3 + 0.125 s2^2 +
s1 (-0.26 + (-0.03225 + 0.0645 s2) s2), 0];

dpi2s2 = Rationalize[
0.3125 + s2 (-2.4375 + (-0.25 + 0.0645 s1) s1 +
(-0.375 + 0.5 s2) s2), 0];

The easiest way is to just add the constraints

soln1 = NSolve[
{dpi1s1 == 0, dpi2s2 == 0, 0 < s1 < 1, 0 < s2 < 1},
{s1, s2}][[1]]

{s1 -> 0.986758, s2 -> 0.117545}

soln2 = Solve[
{dpi1s1 == 0, dpi2s2 == 0, 0 < s1 < 1, 0 < s2 < 1},
{s1, s2}][[1]] // N

{s1 -> 0.986758, s2 -> 0.117545}

soln3 = Reduce[
{dpi1s1 == 0, dpi2s2 == 0, 0 < s1 < 1, 0 < s2 < 1},
{s1, s2},
Backsubstitution -> True] // N // ToRules

{s1 -> 0.986758, s2 -> 0.117545}

Alternatively,

soln4 = Select[NSolve[
{dpi1s1 == 0, dpi2s2 == 0}, {s1, s2}],
And @@ Thread[0 < {s1, s2} < 1] /. # &][[1]]

{s1 -> 0.986758, s2 -> 0.117545}

soln5 = Cases[NSolve[
{dpi1s1 == 0, dpi2s2 == 0}, {s1, s2}],
_?(And @@ Thread[0 < {s1, s2} < 1] /. # &)][[1]]

{s1 -> 0.986758, s2 -> 0.117545}


Bob Hanlon


On Mon, Jan 14, 2013 at 1:34 PM, Trichy V. Krishnan <biztvk@nus.edu.sg> wro=
=
te:
> Hi:
>
> I have a simultaneous set of equations in two variables, namely, s1
> and s=

2. See below.
>
> s1 =.; s2 =.; dpi1s1 =.; dpi2s2 =.;
> dpi1s1 = 0.3125 - 0.0645 s1^2 + 0.0083205 s1^3 + 0.125 s2^2 +
> s1 (-0.26 + (-0.03225 + 0.0645 s2) s2);
> dpi2s2 = 0.3125 +
> s2 (-2.4375 + (-0.25 + 0.0645 s1) s1 + (-0.375 + 0.5 s2) s2);
>
>
> NSolve yields 7 pairs but I want to pick the pair(s) where both s1 and
> s2=

are in (0, 1) domain. I am using a laborious method as follow, but can I g=
= et this in one step? Thanks.
>
> trichy
>
> soln = NSolve[dpi1s1 == 0 && dpi2s2 == 0, {s1, s2}, Reals]; lis=

=
t =
> {s1, s2} /. soln;
> list1 = {{0, 0}};
> Do[If[list[[i, 1]] > 0,
> If[list[[i, 1]] < 1, If[list[[i, 2]] > 0, If[list[[i, 2]] < 1,
> list1[[1, 1]] = list[[i, 1] ]]]]], {i, Length[list]}];
> Do[If[list[[i, 1]] > 0,
> If[list[[i, 1]] < 1, If[list[[i, 2]] > 0, If[list[[i, 2]] < 1,
> list1[[1, 2]] = list[[i, 2] ]]]]], {i, Length[list]}];
> s1 = list1[[1, 1]]; s2 = list1[[1, 2]]; {s1, s2}
>
>
>
>
>
>
> -----Original Message-----
> From: Bob Hanlon [mailto:hanlonr357@gmail.com]
> Sent: Monday, January 14, 2013 1:01 PM
> To: mathgroup@smc.vnet.net
> Subject: Re: NSolve output
>
> $Version
>
> "9.0 for Mac OS X x86 (64-bit) (November 20, 2012)"
>
> a = x z + 2 x y + 2 y z;
> v = x y z;
>
> a2 = a /. x -> 2 z;
> v2 = v /. x -> 2 z;
>
> NSolve[{a2 == 60, v2 == 40, x == 2 z, x > 0}, {x, y, z}]
>
> {{x -> 5.1156, y -> 3.05701, z -> 2.5578}, {x -> 7.46083,
> y -> 1.43719, z -> 3.73042}}
>
>
> Solve[{a2 == 60, v2 == 40, x == 2 z, x > 0},
> {x, y, z}, Reals] // N
>
> {{x -> 5.1156, y -> 3.05701, z -> 2.5578}, {x -> 7.46083,
> y -> 1.43719, z -> 3.73042}}
>
>
> {Reduce[{a2 == 60, v2 == 40, x == 2 z, x > 0},
> {x, y, z},
> Backsubstitution -> True] // N // ToRules}
>
> {{x -> 5.1156, y -> 3.05701, z -> 2.5578}, {x -> 7.46083,
> y -> 1.43719, z -> 3.73042}}
>
>
> Bob Hanlon
>
>
> On Sat, Jan 12, 2013 at 9:53 PM, Berthold Hamburger
> <b-hamburger@artinso.=

com> wrote:
>> Hello,
>>
>> I want to solve two simple equations with NSOLVE to calculate the
>> dimensions of a rectangular box that is open on top. The length of
>> the box is twice the width and the volume and area of the box are
>> respectively 40 cubic feet and 60 square feet.
>>
>> I defined the area and volume:
>> a = xz + 2xy + 2yz
>> v = xyz
>>
>> then substituted x with 2z:
>>
>> a2 = a /. x->2z
>> v2 = v /. x->2z
>>
>>
>>
>> a2 = 6 y z + 2 z^2
>> v2 = 2 y z^2
>>
>> solved with NSolve:
>> step1 = NSolve[{a2 == 60, v2 == 40}, {y, z}, Reals] [[1,2]] //=

=
Column
>>
>> which returns the results
>> {y->3.05701,z->2.5578}
>>
>> I would like to get an output that returns values for all 3 variables
>> x,y,z as in
>>
>> {x->5.1156,y->3.05701,z->2.5578}
>>
>> but somehow cannot find a way to do it
>>
>> What would be the correct way for doing that?
>>
>> Regards
>>
>> Berthold Hamburger
>>

>





Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.