Re: using answer form reduce
- To: mathgroup at smc.vnet.net
- Subject: [mg68634] Re: using answer form reduce
- From: dimmechan at yahoo.com
- Date: Mon, 14 Aug 2006 06:44:06 -0400 (EDT)
- References: <ebmtf5$6fb$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, akil, Actually, it would very helpful to post your equation. Anyway, I believe the following will be interesting for you. First I generate a 4th degree polynomial: In[1]:= InputForm[pol=Apply[Plus,Table[Random[Integer,{1,10}]x^i,{i,0,4}]]] Out[1]//InputForm= 10 + x + 3*x^2 + 7*x^3 + x^4 Using Reduce, I get: In[2]:= Reduce[pol\[Equal]0,x,Reals]//InputForm Out[2]//InputForm= x == Root[10 + #1 + 3*#1^2 + 7*#1^3 + #1^4 & , 1, 0] || x == Root[10 + #1 + 3*#1^2 + 7*#1^3 + #1^4 & , 2, 0] Now I use {ToRules[%]} obtaing: In[3]:= {ToRules[%]}//InputForm Out[3]//InputForm= {{x -> Root[10 + #1 + 3*#1^2 + 7*#1^3 + #1^4 & , 1, 0]}, {x -> Root[10 + #1 + 3*#1^2 + 7*#1^3 + #1^4 & , 2, 0]}} In[4]:= ?ToRules ToRules[eqns] takes logical combinations of equations, in the form generated \ by Roots and Reduce, and converts them to lists of rules, of the form \ produced by Solve. More... To get the solutions in the form {Real1,Real2}, I simply use: In[5]:= x/.%%//InputForm Out[5]//InputForm= {Root[10 + #1 + 3*#1^2 + 7*#1^3 + #1^4 & , 1, 0], Root[10 + #1 + 3*#1^2 + 7*#1^3 + #1^4 & , 2, 0]} Finally I can get a form containing Radicals, executing the command: In[100]:= ToRadicals[%]//InputForm Out[100]//InputForm= {-7/4 - Sqrt[41/4 + (5481 - 27*Sqrt[39481])^(1/3)/3 + (203 + Sqrt[39481])^(1/3)]/2 - Sqrt[(246 - 4*(5481 - 27*Sqrt[39481])^(1/3) - 12*(203 + Sqrt[39481])^(1/3) + 801/Sqrt[41/4 + (5481 - 27*Sqrt[39481])^(1/3)/3 + (203 + Sqrt[39481])^(1/3)])/3]/4, -7/4 - Sqrt[41/4 + (5481 - 27*Sqrt[39481])^(1/3)/3 + (203 + Sqrt[39481])^(1/3)]/2 + Sqrt[(246 - 4*(5481 - 27*Sqrt[39481])^(1/3) - 12*(203 + Sqrt[39481])^(1/3) + 801/Sqrt[41/4 + (5481 - 27*Sqrt[39481])^(1/3)/3 + (203 + Sqrt[39481])^(1/3)])/3]/4} I hope this will be helpful for you. Cheers, Jim Î?/Î? akil ÎγÏ?αÏ?ε: > After using reduce I get the following two types of answers: > > answer == Real1 || answer == Real2 > or > answer == Real3 > , the type can change from one formula to another. > > I need the Reals, and put them all in a list. The problem is getting all the > reals, without knowing which type I deal with, it should be able to be done > fast. > > I tried making a list of the returned adres, and then using > Cases[list, _Real, Infinity] and using Select[list,NumericQ] but both do not > give me the answer I require. > > How can I get the answer I require e.g. something like {Real1,Real2,Real3}