MathGroup Archive 1997

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

Search the Archive

Re: linear equations with indexed variables?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg6934] Re: linear equations with indexed variables?
  • From: sherod at boussinesq.Colorado.EDU (Scott Herod)
  • Date: Tue, 29 Apr 1997 20:48:14 -0400 (EDT)
  • Organization: /usr/local/lib/rn/organization
  • Sender: owner-wri-mathgroup at wolfram.com

Just off the bat, you could easily convert your equations to a full 
system using something like

====================================================================
In[1]:=
eqns = Table[3 x[i] == 2 x[i+1] + x[i-1], {i,1,3}]

Out[1]=
{3 x[1]==x[0]+2 x[2],3 x[2]==x[1]+2 x[3],3 x[3]==x[2]+2 x[4]}

In[2]:=
moreEqns = Flatten[Union[eqns, {x[0] == 0, x[4] == 1}]]

Out[2]=
{x[0]==0,3 x[1]==x[0]+2 x[2],3 x[2]==x[1]+2 x[3],3 x[3]==x[2]+2 x[4],x[4]==1}

In[3]:=
Solve[%]
======================================================================

But I notice that you are solving a difference equation with a pair
of boundary conditions.  It might be easier to do something like the
following if this is always the case.

====================================================================
In[1]:= x[i_] := r^i

In[3]:= Factor[3 x[i] - 2 x[i+1] - x[i-1]]

                    -1 + i
Out[3]= -((-1 + r) r       (-1 + 2 r))

In[4]:= Solve[% == 0, r]

Solve::ifun: Inverse functions are being used by Solve, so some solutions may
     not be found.

               1                    1/(-1 + i)
Out[4]= {{r -> -}, {r -> 1}, {r -> 0          }}
               2

(* I need to figure out a slick way to get rid of the r^(i-1) term. *)

In[9]:= y[i_] := (C[1] x[i] /. Out[4][[1]]) + (C[2] x[i] /. Out[4][[2]])

In[10]:= y[i]

         C[1]
Out[10]= ---- + C[2]
           i
          2

In[11]:= Solve[{y[0] == 0, y[4] == 1}]

                     16           16
Out[11]= {{C[1] -> -(--), C[2] -> --}}
                     15           15

=======================================================================


Scott Herod
Applied Math
Univ. of Colorado, Boulder



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In article <5jqr2i$hb8 at smc.vnet.net> hxie at gradin.cis.upenn.edu (Hong-liang Xie) writes:
>I am new to Mathematica and I need to solve a system of 
>linear equations whose variables are indexed (i.e., x[1], 
>x[2], x[3]), for example,
>
>       3x[i] = 2x[i+1] + x[i-1] ( 1 <= i <= 3)
>       x[4 ]  = 1
>       x[0]   = 0
>
>The above is a system of 5 linear equations with
>5 variables x[0], x[1], x[2], x[3], x[4].  I can certainly
>rewrite it into 5 equations using 5 variables x0, x1, x2, 
>x3, x4.  However, if the range of i gets bigger, or, worse, 
>if each x has two indexes as in x[i,j], this rewriting could 
>get of hand quickly.  I tried different equation solving 
>functions in Mathematica but with no luck.  I would therefore 
>appreciate help from experts here on how to solve this kind of 
>equations directly.  Thanks a lot!
>
>Hong
>CIS Dept
>Univ of Pennsylvania
>
>
>
>
>
>




  • Prev by Date: Re: linear equations with indexed variables?
  • Next by Date: Re: Help - Axes coordinates values
  • Previous by thread: Re: linear equations with indexed variables?
  • Next by thread: integer linear programming (was:Re: Re: quadratic programming)