Re: FullSimplify Hang?
- To: mathgroup at smc.vnet.net
- Subject: [mg62257] Re: FullSimplify Hang?
- From: ted.ersek at tqci.net
- Date: Thu, 17 Nov 2005 17:03:51 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Igor Touzov wanted to abort FullSimplify when it takes too long, and see what was the simplest expression it found before aborting. Andrzej Kozlowski had a approach that would work if not for the fact that it's very slow. I think I changed Andrzej's approach to make it useful. Consider expr below. ------------------------------- In[1]:= expr=TrigExpand[Sin[5x]-Sin[7x]+Cos[3y]] In[4]:= ls=Hold[]; FullSimplify[expr, ComplexityFunction->( ((ls=Hold@@{ls,#});LeafCount[#])& ) ] Out[5]= Cos[3 y]+Sin[5 x]-Sin[7 x] ------------------- If FullSimplify takes to long make the menu selection (Kernel | Abort evaluation). Then the code below can be used to see what progress FullSimplify has made. ------------------- In[6]:= ls=List@@Union[Flatten[ls]]; (* Use values for variables that make expr numeric. *) (* I use arbitrary precision for better reliability. *) ls=Select[ls,((#==N[expr])/.{x->2.5`25,y->2.5`25})&]; ls=Sort[ls,LeafCount[#1]<LeafCount[#2]&]; (*User FullSimplify to double check*) ls=Select[ls,(FullSimplify[#-expr==0]&)] Out[6]= (* Get a list of expressions FullSimplify could have returned. *) (* The list is sorted by LeafCount. *) ------------------------ It can also help a lot to make intelligent use of Together, Apart, Cancel, Collect, TrigExpand, TrigToExp, Developer`TrigToRadicals, and similar functions before using Simplify or FullSimplify. Regards, Ted Ersek