Student Support Forum > General > > "factor inside root"

 Post Reply: Name: Email Address: Please send email when my message is replied to. Url (optional): Subject: Message: view original message? Attachment (optional): Please answer this: 1+3 =

 Original Message (ID '296172') By Bill Simpson: The usual method of doing something like this is to use patterns and a replacement rule, like this: In[1]:= a*Sqrt[b]/.u_*Sqrt[v_]->Sqrt[u^2*(v)] Out[1]= Sqrt[a^2*b] That looks for something times square root of something else and replaces it with square root of something squared times something else Now we try it with your example In[2]:= 1.01792*10^-40 Sqrt[(2.6336*10^72+4.80538*10^77 kx^2+8.76809*10^82 kx^4+4.80538*10^77 ky^2+3.65593*10^83 kx^2 ky^2+8.76809*10^82 ky^4-9.61076*10^77 kz^2+3.65593*10^83 kx^2 kz^2+3.65593*10^83 ky^2 kz^2+8.76809*10^82 kz^4)]/.u_*Sqrt[v_]->Sqrt[u^2*(v)] Out[2]= 1.01792*10^-40 Sqrt[(2.6336*10^72+4.80538*10^77 kx^2+8.76809*10^82 kx^4+4.80538*10^77 ky^2+3.65593*10^83 kx^2 ky^2+8.76809*10^82 ky^4-9.61076*10^77 kz^2+3.65593*10^83 kx^2 kz^2+3.65593*10^83 ky^2 kz^2+8.76809*10^82 kz^4)] Was there an error? We got back exactly the original. That would happen if the pattern didn't match. But it also can happen when Mathematica thinks it should rearrange an expression they way it wants to. Try a slight variation of that rule with a Hold that tries to block Mathematica from doing some rearrangement. In[3]:= 1.01792*10^-40 Sqrt[(2.6336*10^72+4.80538*10^77 kx^2+8.76809*10^82 kx^4+4.80538*10^77 ky^2+3.65593*10^83 kx^2 ky^2+8.76809*10^82 ky^4-9.61076*10^77 kz^2+3.65593*10^83 kx^2 kz^2+3.65593*10^83 ky^2 kz^2+8.76809*10^82 kz^4)]/.u_*Sqrt[v_]->Hold[Sqrt[u^2*(v)]] Out[3]= Hold[Sqrt[1.01792*^-40^2*(2.6336*10^72+4.80538*10^77 kx^2+8.76809*10^82 kx^4+4.80538*10^77 ky^2+3.65593*10^83 kx^2 ky^2+8.76809*10^82 ky^4-9.61076*10^77 kz^2+3.65593*10^83 kx^2 kz^2+3.65593*10^83 ky^2 kz^2+8.76809*10^82 kz^4)]] That shows it did the replacement. But there is still that Hold and you can't use that result until you ReleaseHold to get a normal expression. So In[4]:= ReleaseHold[%] Out[4]= 1.01792*10^-40 Sqrt[(2.6336*10^72+4.80538*10^77 kx^2+8.76809*10^82 kx^4+4.80538*10^77 ky^2+3.65593*10^83 kx^2 ky^2+8.76809*10^82 ky^4-9.61076*10^77 kz^2+3.65593*10^83 kx^2 kz^2+3.65593*10^83 ky^2 kz^2+8.76809*10^82 kz^4)] And Mathematica again thinks it knows what should be done and factors your constant out of the Sqrt. Usually, when you are trying to get Mathematica to do something that it really doesn't want to do, you will find it difficult. Please check this carefully to make certain I have not made any errors.