|
From: Richard F. <fa...@be...> - 2014-02-15 20:55:34
|
On 2/15/2014 11:00 AM, Mark wrote: > On 02/15/2014 05:28 PM, Richard Fateman wrote: >>> Given the two simultaneous equations: >>> sin(y) = 0 >>> sin(x-y) = sin(y) >>> will Maxima solve them using a single input command, calling just a >>> single one of its built in functions? >> So far as I can tell, there is no single current built-in function >> that will solve this problem. > Ok. Simple question. Simple answer. Thanks. > > The rest of you answer seems not completely Maxima related, but was kind > of fun too. > >> Let me ask you an analogous question. Can you make a sandwich with a >> single piece of >> bread using your standard method of making a sandwich with two pieces >> of bread? >> >> (My) answer: No. But I can make a sandwich by folding a single >> piece of bread or cutting it in half, etc. > (My) answer: Yes. With so many competing bakeries around, why starve > from less lunch? Go and get yourself the second piece of bread everyone > else is enjoying already. > >>> If so, which built in function? >> Why must all tasks be solved by a single built-in function? Why not a >> combination? > That's a simple one: because when humble-me turns to a CAS I expect the > CAS to tell me the solution - not vice versa. > >> For example, if >> you took the inputs, converted them to exponentials you could make >> some headway. e.g. >> to_poly_solve(exponentialize([(sin(x-y)-sin(y)=0),sin(y)=0],[exp(-%i*x),exp(-%i*y)]); >> > That's the same point I already made in my question: there are many ways > to solve such kind of equations with several in-between-steps. Your's is > one. The one I gave is another one. As you know, I could 'map' the > asin() function to the list of equations and then call 'solve' which can > also be written in one line. > >>> But that's not what I'm looking for. >> No, apparently what you want is to have a somewhat longer and in some >> cases slower >> program that spends some more time looking for trivial solutions. > No. Totally misunderstood. I think not. > What I want from a CAS is a 'solve' command that I can rely on to do the > simple things right, before I apply it to a case where neither I nor you > can just guess the solution. Such a program would necessarily be longer and in some cases slower. Sometimes it would be MUCH slower because the search for a trivial solution that appears only after a non-trivial simplification can require lots of time. How much time do you wish to spend on (for example) radcan() or trigsimp() or ... as part of solve()? > > Actually there is an analogous question I have to you: > There is a grad student wanting to joint a project of your's. So you > tell the student that you have one piece of bread and that you take > another piece of bread and that you place it on top of the first one. > Now you ask the student: how many pieces of bread do I have on the > stack? The student answers: I cannot solve this. If I had a computer that was programmed to do X and I asked it to do Y different from X, and it said "I cannot solve this" I would probably not complain. I might actually be happy that it could provide that information, as opposed to crashing or not returning. I expect human graduate students to have a more "flexible program" so to speak. If you want to write an artificial-intelligence style mathematician simulator, you could look at the history of this kind of research, and perhaps look at the claims for Wolfram Alpha. There are interesting efforts to have a computer solve "word problems". Maybe not so much for "bread problems." RJF |