Re: linear equations with indexed variables?
- To: mathgroup at smc.vnet.net
- Subject: [mg6930] Re: linear equations with indexed variables?
- From: Daniel Lichtblau <danl>
- Date: Tue, 29 Apr 1997 20:48:12 -0400 (EDT)
- Organization: Wolfram Research, Inc.
- Sender: owner-wri-mathgroup at wolfram.com
Hong-liang Xie wrote: > > 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 You might do it as below. The code can be condensed, but I show it step-by-step to make modification easier. In[10]:= vars = Array[x, 5, 0]; In[11]:= endEqns = {x[0] == 0, x[4] == 1}; In[12]:= middleEqns = Table[3*x[j] == 2*x[j+1] + x[j-1], {j, 3}]; In[13]:= eqns = Join[middleEqns, endEqns]; In[14]:= InputForm[Solve[eqns, vars]] Out[14]//InputForm= {{x[0] -> 0, x[1] -> 8/15, x[2] -> 4/5, x[3] -> 14/15, x[4] -> 1}} Daniel Lichtblau Wolfram Research danl at wolfram.com