|
[Date Index]
[Thread Index]
[Author Index]
Re: Solve yields unreal solutions, NSolve yields real solutions
- To: mathgroup at smc.vnet.net
- Subject: [mg58295] Re: Solve yields unreal solutions, NSolve yields real solutions
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Sun, 26 Jun 2005 01:33:57 -0400 (EDT)
- Organization: The Open University, Milton Keynes, England
- References: <d9issf$cps$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Mukhtar Bekkali wrote:
> I thought NSolve is the same as Solve just numeric. The below code
> gives real answers, replacing NSolve with Solve in the last line
> generates Unreal results. I do not understand why.
>
> \!\(\*
> RowBox[{\(Clear["\<Global`*\>"]\), "\n", \(Remove["\<Global`*\>"]\),
> "\[IndentingNewLine]", \(Needs["\<Miscellaneous`RealOnly`\>"]\),
> "\[IndentingNewLine]",
> RowBox[{
> RowBox[{
> RowBox[{
> StyleBox["{",
> FontColor->RGBColor[1, 0, 1]],
> StyleBox[\(\[Lambda], \[Gamma], k\),
> FontColor->RGBColor[1, 0, 1]],
> StyleBox["}",
> FontColor->RGBColor[1, 0, 0]]}],
> StyleBox["=",
> FontColor->RGBColor[1, 0, 0]],
> RowBox[{
> StyleBox["{",
> FontColor->RGBColor[1, 0, 0]],
> RowBox[{"1",
> StyleBox[",",
> FontColor->RGBColor[1, 0, 0]], \(2\/3\), ",", "0"}],
> "}"}]}],
> ";"}], "\[IndentingNewLine]", \(Table[h\_i = \[Gamma], {i, 1,
> k}];\),
> "\[IndentingNewLine]", \(Table[h\_i = 1 - \[Gamma], {i, k + 1,
> 2}];\),
> "\[IndentingNewLine]", \(Table[{p\_i, b\_i} = {p\_i, b\_i}, {i, 1,
> 2}];\),
> "\[IndentingNewLine]", \(T\_p = Table[p\_i, {i, 1, 2}];\),
> "\[IndentingNewLine]", \(T\_b = Table[b\_i, {i, 1, 2}];\),
> "\[IndentingNewLine]", \(T\_u =
> Table[u\_i = 1 - \[Lambda] \((b\_i - \[Beta])\)\^2 - p\_i, {i,
> 1,
> 2}];\), "\[IndentingNewLine]", \({I\_0, I\_1,
> I\_2} = {0, \[Beta] /. \(Solve[
> u\_1 \[Equal] u\_2, \[Beta]]\)[\([1]\)], 1};\),
> "\[IndentingNewLine]", \(T\_m =
> Table[m\_i = I\_i - I\_\(i - 1\), {i, 1, 2}];\),
> "\[IndentingNewLine]", \(T\_R =
> Table[R\_i = \(p\_i\)
> m\_i - \((\(h\_i\)
> b\_i\^2\/2 + \((1 - h\_i)\) \((1 -
> b\_i)\)\^2\/2)\), {i,
> 1, 2}];\),
> "\[IndentingNewLine]", \(FOCP = Table[D[R\_i, p\_i], {i, 1, 2}];\),
>
> "\[IndentingNewLine]", \(T\_p =
> T\_p /. \(Solve[FOCP \[Equal] 0, T\_p]\)[\([1]\)];\),
> "\[IndentingNewLine]", \(Table[p\_i = T\_p[\([i]\)], {i, 1, 2}];\),
>
> "\[IndentingNewLine]", \(FOCB = Table[D[R\_i, b\_i], {i, 1, 2}];\),
>
> "\[IndentingNewLine]", \(NSolve[FOCB \[Equal] 0, T\_b]\)}]\)
>
Hi Mukhtar,
If I remember correctly the package *RealOnly* works only on
machine-size numbers and redefine only few functions such as *Power*.
Thus the only effect of the package on the *Solve* command is to
suppress at the end of all computations the display of any non-real
numbers. Internally, the algorithms still work on the complex field.
As you can see below, the imaginary part of each number is very small
and can be dropped by using the command *Chop*. You can check that both
solution sets are eventually identical.
In[1]:=
\!\(\*
RowBox[{\(Clear["\<Global`*\>"]\), "\n", \(Remove["\<Global`*\>"]\),
"\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
StyleBox["{",
FontColor->RGBColor[1, 0, 1]],
StyleBox[\(\[Lambda], \[Gamma], k\),
FontColor->RGBColor[1, 0, 1]],
StyleBox["}",
FontColor->RGBColor[1, 0, 0]]}],
StyleBox["=",
FontColor->RGBColor[1, 0, 0]],
RowBox[{
StyleBox["{",
FontColor->RGBColor[1, 0, 0]],
RowBox[{"1",
StyleBox[",",
FontColor->RGBColor[1, 0, 0]], \(2\/3\), ",", "0"}],
"}"}]}],
";"}], "\[IndentingNewLine]", \(Table[h\_i = \[Gamma], {i, 1,
k}];\),
"\[IndentingNewLine]", \(Table[h\_i = 1 - \[Gamma], {i, k + 1, 2}];\),
"\[IndentingNewLine]", \(Table[{p\_i, b\_i} = {p\_i, b\_i}, {i, 1,
2}];\),
"\[IndentingNewLine]", \(T\_p = Table[p\_i, {i, 1, 2}];\),
"\[IndentingNewLine]", \(T\_b = Table[b\_i, {i, 1, 2}];\),
"\[IndentingNewLine]", \(T\_u =
Table[u\_i = 1 - \[Lambda] \((b\_i - \[Beta])\)\^2 - p\_i, {i, 1,
2}];\), "\[IndentingNewLine]", \({I\_0, I\_1,
I\_2} = {0, \[Beta] /. \(Solve[
u\_1 \[Equal] u\_2, \[Beta]]\)[\([1]\)], 1};\),
"\[IndentingNewLine]", \(T\_m =
Table[m\_i = I\_i - I\_\(i - 1\), {i, 1, 2}];\),
"\[IndentingNewLine]", \(T\_R =
Table[R\_i = \(p\_i\)
m\_i - \((\(h\_i\)
b\_i\^2\/2 + \((1 - h\_i)\) \((1 -
b\_i)\)\^2\/2)\), {i,
1, 2}];\),
"\[IndentingNewLine]", \(FOCP = Table[D[R\_i, p\_i], {i, 1, 2}];\),
"\[IndentingNewLine]", \(T\_p =
T\_p /. \(Solve[FOCP \[Equal] 0, T\_p]\)[\([1]\)];\),
"\[IndentingNewLine]", \(Table[p\_i = T\_p[\([i]\)], {i, 1, 2}];\),
"\[IndentingNewLine]", \(FOCB = Table[D[R\_i, b\_i], {i, 1, 2}];\),
"\[IndentingNewLine]", \(NSolve[FOCB \[Equal] 0, T\_b]\)}]\)
Out[17]=
\!\({{b\_1 \[Rule] 1.8560333600624024`,
b\_2 \[Rule]
9.206972531099032`}, {b\_1 \[Rule] \(-8.463201971504636`\),
b\_2 \[Rule] \(-0.8172946229422916`\)}, {b\_1 \[Rule]
0.30716861144224816`, b\_2 \[Rule] 0.9103220918432906`}}\)
In[18]:=
\!\(\*
RowBox[{\(Clear["\<Global`*\>"]\), "\n", \(Remove["\<Global`*\>"]\),
"\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
StyleBox["{",
FontColor->RGBColor[1, 0, 1]],
StyleBox[\(\[Lambda], \[Gamma], k\),
FontColor->RGBColor[1, 0, 1]],
StyleBox["}",
FontColor->RGBColor[1, 0, 0]]}],
StyleBox["=",
FontColor->RGBColor[1, 0, 0]],
RowBox[{
StyleBox["{",
FontColor->RGBColor[1, 0, 0]],
RowBox[{"1",
StyleBox[",",
FontColor->RGBColor[1, 0, 0]], \(2\/3\), ",", "0"}],
"}"}]}],
";"}], "\[IndentingNewLine]", \(Table[h\_i = \[Gamma], {i, 1,
k}];\),
"\[IndentingNewLine]", \(Table[h\_i = 1 - \[Gamma], {i, k + 1, 2}];\),
"\[IndentingNewLine]", \(Table[{p\_i, b\_i} = {p\_i, b\_i}, {i, 1,
2}];\),
"\[IndentingNewLine]", \(T\_p = Table[p\_i, {i, 1, 2}];\),
"\[IndentingNewLine]", \(T\_b = Table[b\_i, {i, 1, 2}];\),
"\[IndentingNewLine]", \(T\_u =
Table[u\_i = 1 - \[Lambda] \((b\_i - \[Beta])\)\^2 - p\_i, {i, 1,
2}];\), "\[IndentingNewLine]", \({I\_0, I\_1,
I\_2} = {0, \[Beta] /. \(Solve[
u\_1 \[Equal] u\_2, \[Beta]]\)[\([1]\)], 1};\),
"\[IndentingNewLine]", \(T\_m =
Table[m\_i = I\_i - I\_\(i - 1\), {i, 1, 2}];\),
"\[IndentingNewLine]", \(T\_R =
Table[R\_i = \(p\_i\)
m\_i - \((\(h\_i\)
b\_i\^2\/2 + \((1 - h\_i)\) \((1 -
b\_i)\)\^2\/2)\), {i,
1, 2}];\),
"\[IndentingNewLine]", \(FOCP = Table[D[R\_i, p\_i], {i, 1, 2}];\),
"\[IndentingNewLine]", \(T\_p =
T\_p /. \(Solve[FOCP \[Equal] 0, T\_p]\)[\([1]\)];\),
"\[IndentingNewLine]", \(Table[p\_i = T\_p[\([i]\)], {i, 1, 2}];\),
"\[IndentingNewLine]", \(FOCB = Table[D[R\_i, b\_i], {i, 1, 2}];\),
"\[IndentingNewLine]", \(Solve[FOCB \[Equal] 0, T\_b]\)}]\)
Out[34]=
\!\({{b\_1 \[Rule]
1\/820\ \((\(-1722\) -
14661241\/\((209533 + 410\ \[ImaginaryI]\
\@72777)\)\^\(2/3\) +
329294\/\((209533 + 410\ \[ImaginaryI]\
\@72777)\)\^\(1/3\) +
86\ \((209533 + 410\ \[ImaginaryI]\ \@72777)\)\^\(1/3\) - \
\((209533 + 410\ \[ImaginaryI]\ \@72777)\)\^\(2/3\))\),
b\_2 \[Rule]
31\/10 +
3829\/\(20\ \((209533 + 410\ \[ImaginaryI]\
\@72777)\)\^\(1/3\)\) +
1\/20\ \((209533 + 410\ \[ImaginaryI]\ \@72777)\)\^\(1/3\)},
{b\_1 \
\[Rule] 1\/41\ \((\(-\(861\/10\)\) +
14661241\/\(40\ \((209533 + 410\ \[ImaginaryI]\ \
\@72777)\)\^\(2/3\)\) + \(14661241\ \[ImaginaryI]\ \@3\)\/\(40\
\((209533 + \
410\ \[ImaginaryI]\ \@72777)\)\^\(2/3\)\) -
164647\/\(20\ \((209533 + 410\ \[ImaginaryI]\
\@72777)\)\^\(1/3\
\)\) + \(164647\ \[ImaginaryI]\ \@3\)\/\(20\ \((209533 + 410\
\[ImaginaryI]\ \
\@72777)\)\^\(1/3\)\) -
43\/20\ \((209533 + 410\ \[ImaginaryI]\
\@72777)\)\^\(1/3\) -
43\/20\ \[ImaginaryI]\ \@3\ \((209533 + 410\ \[ImaginaryI]\ \
\@72777)\)\^\(1/3\) +
1\/40\ \((209533 + 410\ \[ImaginaryI]\ \@72777)\)\^\(2/3\) -
1\/40\ \[ImaginaryI]\ \@3\ \((209533 + 410\ \[ImaginaryI]\ \
\@72777)\)\^\(2/3\))\),
b\_2 \[Rule]
31\/10 - \(3829\ \((1 - \[ImaginaryI]\ \@3)\)\)\/\(40\
\((209533 + \
410\ \[ImaginaryI]\ \@72777)\)\^\(1/3\)\) -
1\/40\ \((1 + \[ImaginaryI]\ \@3)\)\ \((209533 + 410\
\[ImaginaryI]\
\ \@72777)\)\^\(1/3\)}, {b\_1 \[Rule]
1\/41\ \((\(-\(861\/10\)\) +
14661241\/\(40\ \((209533 + 410\ \[ImaginaryI]\ \
\@72777)\)\^\(2/3\)\) - \(14661241\ \[ImaginaryI]\ \@3\)\/\(40\
\((209533 + \
410\ \[ImaginaryI]\ \@72777)\)\^\(2/3\)\) -
164647\/\(20\ \((209533 + 410\ \[ImaginaryI]\
\@72777)\)\^\(1/3\
\)\) - \(164647\ \[ImaginaryI]\ \@3\)\/\(20\ \((209533 + 410\
\[ImaginaryI]\ \
\@72777)\)\^\(1/3\)\) -
43\/20\ \((209533 + 410\ \[ImaginaryI]\
\@72777)\)\^\(1/3\) +
43\/20\ \[ImaginaryI]\ \@3\ \((209533 + 410\ \[ImaginaryI]\ \
\@72777)\)\^\(1/3\) +
1\/40\ \((209533 + 410\ \[ImaginaryI]\ \@72777)\)\^\(2/3\) +
1\/40\ \[ImaginaryI]\ \@3\ \((209533 + 410\ \[ImaginaryI]\ \
\@72777)\)\^\(2/3\))\),
b\_2 \[Rule]
31\/10 - \(3829\ \((1 + \[ImaginaryI]\ \@3)\)\)\/\(40\
\((209533 + \
410\ \[ImaginaryI]\ \@72777)\)\^\(1/3\)\) -
1\/40\ \((1 - \[ImaginaryI]\ \@3)\)\ \((209533 + 410\
\[ImaginaryI]\
\ \@72777)\)\^\(1/3\)}}\)
In[35]:=
N[%]
Out[35]=
\!\({{b\_1.` \[Rule] \(\(1.8560333600623968`\)\(\[InvisibleSpace]\)\) +
1.109139880210888`*^-15\ \[ImaginaryI],
b\_2.` \[Rule] \(\(9.206972531099009`\)\(\[InvisibleSpace]\)\) -
2.7755575615628914`*^-16\ \[ImaginaryI]}, {b\_1.` \[Rule] \
\(\(0.3071686114422483`\)\(\[InvisibleSpace]\)\) +
1.0398186376977076`*^-14\ \[ImaginaryI],
b\_2.` \[Rule] \(\(0.9103220918432906`\)\(\[InvisibleSpace]\)\) +
1.7763568394002505`*^-15\ \[ImaginaryI]}, {b\_1.` \[Rule] \
\(-8.463201971504644`\) - 1.0398186376977076`*^-14\ \[ImaginaryI],
b\_2.` \[Rule] \(-0.8172946229422982`\) -
1.7763568394002505`*^-15\ \[ImaginaryI]}}\)
In[36]:=
Chop[%]
Out[36]=
\!\({{b\_1.` \[Rule] 1.8560333600623968`,
b\_2.` \[Rule] 9.206972531099009`}, {b\_1.` \[Rule]
0.3071686114422483`,
b\_2.` \[Rule]
0.9103220918432906`}, {b\_1.` \[Rule] \(-8.463201971504644`\),
b\_2.` \[Rule] \(-0.8172946229422982`\)}}\)
Best regards,
/J.M.
Prev by Date:
Re: Spline
Next by Date:
Re: Solve yields unreal solutions, NSolve yields real solutions
Previous by thread:
Solve yields unreal solutions, NSolve yields real solutions
Next by thread:
Re: Solve yields unreal solutions, NSolve yields real solutions
|