MathGroup Archive 2006

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

Search the Archive

Re: Setting up equations

  • To: mathgroup at smc.vnet.net
  • Subject: [mg66031] Re: Setting up equations
  • From: Bill Rowe <readnewsciv at earthlink.net>
  • Date: Thu, 27 Apr 2006 02:26:33 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

On 4/26/06 at 4:37 AM, yaroslavvb at gmail.com (Yaroslav Bulatov) wrote:

>I'm trying to do things of the form Solve[5 x + 6 y + 7 z == a x + b
>y + c z, {a, b, c}]

>But since x,y,z are variables, what I really mean is Solve[5==a &&
>6==b && 7==c], so I need to convert to this form

>If I only have one variable, the following does what I need

>LogicalExpand[a*x + b*x^2 + O[x]^3 == 2*x + 3*x^2 + O[x]^3]

I think a simpler more direct approach would be to use CoefficientList here, i.e.

In[16]:=
CoefficientList[2*x + 3*x^2 + O[x]^3, x]

Out[16]=
{0, 2, 3}

or if you prefer rules then:

In[17]:=
MapThread[Rule @@ {##1} & , 
  {{a, b}, Rest[CoefficientList[2*x + 3*x^2 + O[x]^3, 
     x]]}]

Out[17]=
{a -> 2, b -> 3}

>But what to do if I have several variables?

CoefficientList accepts a list of variables, i.e.,

In[18]:=
CoefficientList[5*x + 6*y + 7*z, {x, y, z}]

Out[18]=
{{{0, 7}, {6, 0}}, {{5, 0}, {0, 0}}}

But the output doesn't seem to me to be in a convenient form, so I suggest CoefficientArrays, i.e.,

In[20]:=
Normal[CoefficientArrays[5*x + 6*y + 7*z, {x, y, z}]]

Out[20]=
{0, {5, 6, 7}}

--
To reply via email subtract one hundred and four


  • Prev by Date: Re: Bug in calculating -3^49999.0
  • Next by Date: Re: Illusory Multicore Support in 5.2?
  • Previous by thread: Re: Setting up equations
  • Next by thread: Re: Setting up equations