Re: solving equations
- To: mathgroup at smc.vnet.net
- Subject: [mg108468] Re: solving equations
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Fri, 19 Mar 2010 02:47:23 -0500 (EST)
On 3/18/10 at 4:33 AM, arbiadr at gmail.com (Maria Davis) wrote: >I want to solve an equation system saved in the file named >"equations.txt". My aim is to obtain the expression of >source.outputP.TP in terms of the variables: channel.TP, consumer.TP >and producer.TP >This file "equations.txt" contains the following equations: <contents snipped> >I have used an other file containing the variables which must be >eliminate this file "variables.txt" contains: <contents snipped> >The code I have used for solving this problem is: >dots = ReadList["C:\projet\variablesTP.txt", Record, >RecordSeparators -> {}] nodots = StringReplace[dots[[1]], >StringExpression[pre : LetterCharacter, ".", post1 : >LetterCharacter, ".", post2 : LetterCharacter] :> StringJoin[pre, >"\[Bullet]", post1, "\[Bullet]", post2]]; >qq = ReadList[StringToStream[nodots], Expression]; I assume your intent here was to take variables such as source.outputP and convert them into something Mathematica accepts as a variable. If so, the code above doesn't do this and is overly complex. If you execute the code above then do In[4]:= Head[qq[[1, 1]]] Out[4]= Dot you will see what you have created for source.outputP is not a symbol (at least this is the result I get using Mathematica version 7.0 on Mac OS 10.6.2). Since something with head Dot is a dot product from Mathematica's perspective there is an obvious problem. Similarly, after running your code to read the file containing the variables In[8]:= Head[First@qq1] Out[8]= Dot The file of equations can be read into Mathematica as equations by doing the following: In[9]:= eqns = ToExpression[StringReplace[#, "." -> "ZZ"]] & /@ ReadList["C:\projet\variablesTP.txt", Record]; In[10]:= Head[eqns[[1, 1]]] Out[10]= Symbol similarly the file of variables can be read into Mathematica as variables by doing: In[11]:= vars = ToExpression[StringReplace[#, "." -> "ZZ"]] & /@ ReadList["C:\projet\equationTP.txt", Record]; In[12]:= Head[First@vars] Out[12]= Symbol verifying both the list of equations and variables are as they need to be for Mathematica. Here, I've replaced all of the dots which cause a problem with "ZZ". Since this particular string doesn't appear in any of your variables, the end result could be converted back to a string and the ZZ replaced with a "." restoring your naming scheme. But ... Now after reading the files In[13]:= Reduce[eqns, vars] Out[13]= False which means there is no solution to the equations as written.