Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: How to remove curly brackets and arrow symbols from a list.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg58223] Re: How to remove curly brackets and arrow symbols from a list.
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Thu, 23 Jun 2005 05:34:03 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, England
  • References: <d9av83$10a$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

T. K. Ghosh wrote:
> Hi Math Guru,
> 
> I will be very happy if you could help me to solve the following problem.
> The simplified version of my problem is the following.
> I have a quadratic equation with a parameter, say "p".
> 
> Define the function:
> f[x_] := A*X^2 + B*X*p + D  with A, B and D are given.
> "p" is a parameter.
> I solve this equation for a given p:
> w = Solve[f[x]] == 0, X].
> Now I want to make a Table for the solutions of this
> quadratic equation for different values of "p".
> So I write,
> Table[{p,sol},{p,0,10,1}.
> I will get a table which will look like,
> 0   {w -> a}    {w -> -a}
> 1    {w -> b}    {w -> -b}
> 2    {w -> c}    {w -> -c}
> and so on.........
> 
> How can I remove the curly brackets and the arrow symbol
> from the TableForm? I would like to plot the 1st column
> vs. 2nd or 3rd column. I must remove those brackets.
> and I wish to get the following form:
> 0  a  -a
> 1  b  -b
> 2  c  -c
> 
> 
> Hope this can be done easily which I am not aware.
> Any suggestion/solution to this problem is most welcome.
> Thanking you in advance.
> TKG.
> 
Hi,

I am not sure that I have fully understood what you wanted; however, I 
hope that the following lines will help you.

First we define the function f and solve the equation for the variable X

In[1]:=
f[x_] := A*X^2 + B*X*p + D

In[2]:=
w = Solve[f[x] == 0, X]

Out[2]=
{{X -> ((-B)*p - Sqrt[-4*A*D + B^2*p^2])/(2*A)},
   {X -> ((-B)*p + Sqrt[-4*A*D + B^2*p^2])/(2*A)}}

Since we have not defined any values for A, B and D yet, we get symbolic 
solutions that we use in the next line to compute the table.

In[3]:=
sol = Table[w, {p, 0, 10}]

Out[3]=
{{{X -> -(Sqrt[(-A)*D]/A)}, {X -> Sqrt[(-A)*D]/A}},
   {{X -> (-B - Sqrt[B^2 - 4*A*D])/(2*A)},
    {X -> (-B + Sqrt[B^2 - 4*A*D])/(2*A)}},
   {{X -> (-2*B - Sqrt[4*B^2 - 4*A*D])/(2*A)},
    {X -> (-2*B + Sqrt[4*B^2 - 4*A*D])/(2*A)}},
   {{X -> (-3*B - Sqrt[9*B^2 - 4*A*D])/(2*A)},
    {X -> (-3*B + Sqrt[9*B^2 - 4*A*D])/(2*A)}},
   {{X -> (-4*B - Sqrt[16*B^2 - 4*A*D])/(2*A)},
    {X -> (-4*B + Sqrt[16*B^2 - 4*A*D])/(2*A)}},
   {{X -> (-5*B - Sqrt[25*B^2 - 4*A*D])/(2*A)},
    {X -> (-5*B + Sqrt[25*B^2 - 4*A*D])/(2*A)}},
   {{X -> (-6*B - Sqrt[36*B^2 - 4*A*D])/(2*A)},
    {X -> (-6*B + Sqrt[36*B^2 - 4*A*D])/(2*A)}},
   {{X -> (-7*B - Sqrt[49*B^2 - 4*A*D])/(2*A)},
    {X -> (-7*B + Sqrt[49*B^2 - 4*A*D])/(2*A)}},
   {{X -> (-8*B - Sqrt[64*B^2 - 4*A*D])/(2*A)},
    {X -> (-8*B + Sqrt[64*B^2 - 4*A*D])/(2*A)}},
   {{X -> (-9*B - Sqrt[81*B^2 - 4*A*D])/(2*A)},
    {X -> (-9*B + Sqrt[81*B^2 - 4*A*D])/(2*A)}},
   {{X -> (-10*B - Sqrt[100*B^2 - 4*A*D])/(2*A)},
    {X -> (-10*B + Sqrt[100*B^2 - 4*A*D])/(2*A)}}}

Say that the values of A, B and D are 2, 3 and 5, respectively.

In[4]:=
sol = sol /. {A -> 2, B -> 3, D -> 5}

Out[4]=
{{{X -> (-I)*Sqrt[5/2]}, {X -> I*Sqrt[5/2]}},
   {{X -> (1/4)*(-3 - I*Sqrt[31])},
    {X -> (1/4)*(-3 + I*Sqrt[31])}},
   {{X -> -(3/2) - I/2}, {X -> -(3/2) + I/2}},
   {{X -> (1/4)*(-9 - Sqrt[41])},
    {X -> (1/4)*(-9 + Sqrt[41])}},
   {{X -> (1/4)*(-12 - 2*Sqrt[26])},
    {X -> (1/4)*(-12 + 2*Sqrt[26])}},
   {{X -> (1/4)*(-15 - Sqrt[185])},
    {X -> (1/4)*(-15 + Sqrt[185])}},
   {{X -> (1/4)*(-18 - 2*Sqrt[71])},
    {X -> (1/4)*(-18 + 2*Sqrt[71])}},
   {{X -> (1/4)*(-21 - Sqrt[401])},
    {X -> (1/4)*(-21 + Sqrt[401])}},
   {{X -> (1/4)*(-24 - 2*Sqrt[134])},
    {X -> (1/4)*(-24 + 2*Sqrt[134])}},
   {{X -> (1/4)*(-27 - Sqrt[689])},
    {X -> (1/4)*(-27 + Sqrt[689])}},
   {{X -> (1/4)*(-30 - 2*Sqrt[215])},
    {X -> (1/4)*(-30 + 2*Sqrt[215])}}}

Now we have numerical solutions expressed as _replacement rules_. To get 
an array of numbers only, we use these rules to replace X by its values 
in sol.

In[5]:=
sol = X /. sol

Out[5]=
{{(-I)*Sqrt[5/2], I*Sqrt[5/2]},
   {(1/4)*(-3 - I*Sqrt[31]), (1/4)*(-3 + I*Sqrt[31])},
   {-(3/2) - I/2, -(3/2) + I/2},
   {(1/4)*(-9 - Sqrt[41]), (1/4)*(-9 + Sqrt[41])},
   {(1/4)*(-12 - 2*Sqrt[26]),
    (1/4)*(-12 + 2*Sqrt[26])},
   {(1/4)*(-15 - Sqrt[185]), (1/4)*(-15 + Sqrt[185])},
   {(1/4)*(-18 - 2*Sqrt[71]),
    (1/4)*(-18 + 2*Sqrt[71])},
   {(1/4)*(-21 - Sqrt[401]), (1/4)*(-21 + Sqrt[401])},
   {(1/4)*(-24 - 2*Sqrt[134]),
    (1/4)*(-24 + 2*Sqrt[134])},
   {(1/4)*(-27 - Sqrt[689]), (1/4)*(-27 + Sqrt[689])},
   {(1/4)*(-30 - 2*Sqrt[215]),
    (1/4)*(-30 + 2*Sqrt[215])}}

Then we transpose the matrix sol to plot easily one or the other column.

In[6]:=
sol = Transpose[sol]

Out[6]=
{{(-I)*Sqrt[5/2], (1/4)*(-3 - I*Sqrt[31]),
    -(3/2) - I/2, (1/4)*(-9 - Sqrt[41]),
    (1/4)*(-12 - 2*Sqrt[26]), (1/4)*(-15 - Sqrt[185]),
    (1/4)*(-18 - 2*Sqrt[71]), (1/4)*(-21 - Sqrt[401]),
    (1/4)*(-24 - 2*Sqrt[134]), (1/4)*(-27 - Sqrt[689]),
    (1/4)*(-30 - 2*Sqrt[215])}, {I*Sqrt[5/2],
    (1/4)*(-3 + I*Sqrt[31]), -(3/2) + I/2,
    (1/4)*(-9 + Sqrt[41]), (1/4)*(-12 + 2*Sqrt[26]),
    (1/4)*(-15 + Sqrt[185]), (1/4)*(-18 + 2*Sqrt[71]),
    (1/4)*(-21 + Sqrt[401]), (1/4)*(-24 + 2*Sqrt[134]),
    (1/4)*(-27 + Sqrt[689]), (1/4)*(-30 + 2*Sqrt[215])}}

Line 7 plots the first column with an index for the x-axes starting from 
1 (so ranging from 1 to 11 in our case). Line 8 plots the same thing but 
with a range from 0 to 10 on the x-axes.

In[7]:=
ListPlot[sol[[1]]];

In[8]:=
ListPlot[Transpose[{Range[0, 10], sol[[1]]}]];

Finally, we construct a nice table with 3 columns.

In[9]:=
TableForm[Transpose[{Range[0, 10], sol[[1]],
     sol[[2]]}]]

Out[9]//TableForm=
TableForm[{{0, (-I)*Sqrt[5/2], I*Sqrt[5/2]},
    {1, (1/4)*(-3 - I*Sqrt[31]),
     (1/4)*(-3 + I*Sqrt[31])}, {2, -(3/2) - I/2,
     -(3/2) + I/2}, {3, (1/4)*(-9 - Sqrt[41]),
     (1/4)*(-9 + Sqrt[41])},
    {4, (1/4)*(-12 - 2*Sqrt[26]),
     (1/4)*(-12 + 2*Sqrt[26])},
    {5, (1/4)*(-15 - Sqrt[185]),
     (1/4)*(-15 + Sqrt[185])},
    {6, (1/4)*(-18 - 2*Sqrt[71]),
     (1/4)*(-18 + 2*Sqrt[71])},
    {7, (1/4)*(-21 - Sqrt[401]),
     (1/4)*(-21 + Sqrt[401])},
    {8, (1/4)*(-24 - 2*Sqrt[134]),
     (1/4)*(-24 + 2*Sqrt[134])},
    {9, (1/4)*(-27 - Sqrt[689]),
     (1/4)*(-27 + Sqrt[689])},
    {10, (1/4)*(-30 - 2*Sqrt[215]),
     (1/4)*(-30 + 2*Sqrt[215])}}]

Best regards,
/J.M.


  • Prev by Date: Re: How to remove curly brackets and arrow symbols from a list.
  • Next by Date: free packages
  • Previous by thread: Re: How to remove curly brackets and arrow symbols from a list.
  • Next by thread: thanks on runs test