Re: symbolic evaluation

*To*: mathgroup at smc.vnet.net*Subject*: [mg87045] Re: symbolic evaluation*From*: Albert Retey <awnl at arcor.net>*Date*: Sun, 30 Mar 2008 01:15:40 -0500 (EST)*References*: <fsl267$g9p$1@smc.vnet.net>

Hi, > Thank you all for your answers, but they all result in Mathematica "solving" > the equation and giving the answer 2, which is not what I need. > What I need is for Mathematica to transpose the formula giving as > out put x = 14/7. I'm really wondering why you need Mathematica to do that :-) > I beginning to believe that mathematica can't do it > because the designer didn't put that capability in it. Being a full blown programming language, there isn't too much that it can't do, you just need to tell it what you want... > This must be a hard concept for a computer to do. the problem here is that mathematica knows about rationals, and that 2 is a simpler and mathematically fully equivalent form of 14/7. > It just seems simple to me. What's wrong with > "out[1]= {{x -> 14/2}}" Which output I can't seem to get. nothing wrong with it, but in just every case I can think of, it makes sense to simplify this. For all but the most trivial cases you would end up with incredible large fractions. Also many of the internals of mathematica require expressions to be turned into some standard form, e.g. to recognize that two expressions are equal. So basically I think it is for practical and performance reasons that simplifying rationals is automatic. If you want mathematica to not use it's internal knowledge about rationals, you could try to mask the fact that it deals with integers, e.g. by turning them into strings: Solve[7x==14 /. i_Integer:>ToString[i],x] For a real application (still wondering what that would be...) using a more sophisticated way to mask numbers is probably even better: In[25]:= reseq=Equal@@Solve[7 x==14/.i_Integer:>HoldForm[i],x][[1,1]] Out[25]= x==14/7 then when the need arises you can switch back to the normal behaviour: In[26]:= ReleaseHold[reseq] Out[26]= x==2 If I could convince you that mathematica probably can do what you need but you don't understand the details I would strongly suggest to read as much from the documentation as you can digest, but at least look at: tutorial/Evaluation (type this into the navigation bar of the documentation center). Maybe it would also help to describe in more details what exactly you are trying to do, my guess is that your actual problem is somewhat more complicated than what you have posted, otherwise the use of mathematica would be a terrible waste of money and time (cpu and yours) hth, albert