Re: Need help to a beginner.
- To: mathgroup at smc.vnet.net
- Subject: [mg9674] Re: [mg9642] Need help to a beginner.
- From: Daniel Lichtblau <danl>
- Date: Fri, 21 Nov 1997 01:31:11 -0500
- Sender: owner-wri-mathgroup at wolfram.com
Shinichiro Kondo wrote: > > Hi, all. I am quite new to Mathematica, and am using the older version, > v. 2.2. I hope someone will help me. My problem is nothing to do with > homework of a math class, or any sort. I am a physics graduate student, > and for my research project am trying to have an algebraic expression > of potential energy of certain ionic crystalline lattice. The > electrostatic (i.e. Coulomb) energy has the expression of 1/r, where r > is the distance between two charges. > I am still far from getting the answer I want because of this problem I > am facing in the very first stage where I am supposed to be used to > Mathematica. > > First of all, let me explain my problem. It is known, if you expand > 1/Sqrt[1-x], provided that x^2<<1, you have > 1+(1/2)*x+(3/*)*x^2+(5/16)*x^3+.... Now, let's have a similar > expression to this: 1/Sqrt[(a-x)^2+y^2+z^2]. > Suppose x, y and z are cartesian coordinates, and r^2=x^2+y^2+z^2. And a > is some positive constant, and it satisfies a>>r. So factoring the > denominator by a^2 and kicking it out of the Sqrt as a, I can continue > this algebra by my hand, and I should end up with: > (1/a)*(1+x/a-r^2/(2*a^2)+(3*x^2)/(2*a^2)+....) in which I only keep up > to the 2nd order of r/a (and x/a). > > I would like to be able to do this by Mathematica. That is, given this > sort of a reciprocal of a Sqrt of quadratic expression with x, y and z, > I'd like it to expand "approximately" so that a resultant expression > only contain the terms up to a specified order of r/a (thus, x/a, y/a, > and z/a). How can I do this? This kind of expansion goes on forever, > but I don't need many higher order terms. How can I specify the maximum > order that I want to have? > > I will greatly appreciate someone's help to this problem. Meanwhile, I > am trying to find a solution in the manual by myself. If you don't > mind, please send your solution to my email address: shink at iastate.edu > > Thank you for your attention. This may be along the lines you seek. First explicitly rewrite the expression in a convenient form (as you indicate: factor a from denominator), and substitute r^2 for (x^2+y^2+z^2). Then expand as an iterated Taylor series. In[1]:= result = Series[1/a * 1/Sqrt[1-2/a*x+r^2/a^2], {x,0,2},{r,0,2}] 2 2 1 r 3 -2 3 r 3 Out[1]= - - ---- + O[r] + (a - ---- + O[r] ) x + a 3 4 2 a 2 a 2 3 15 r 3 2 3 > (---- - ----- + O[r] ) x + O[x] 3 5 2 a 4 a You can also begin with Series[1/Sqrt[a^2-2*a*x+r^2], {x,0,3},{r,0,3}] which involves less preprocessing, and play around with PowerExpand to make the result more to your liking (it will rewrite Sqrt[a^2] as a, for example). One can partly automate the preprocessing with PolynomialReduce, as below. ee = (a-x)^2+y^2+z^2; In[16]:= newee = Last[PolynomialReduce[ee, x^2+y^2+z^2-r^2, {x,y,z,r}]] 2 2 Out[16]= a + r - 2 a x Then compute Series of expr = 1/Sqrt[newee] Yet another variation that might produce a useful result: newee = 1/a * 1/Sqrt[1-2/a*x+r^2/a^2]; result = newee + O[x]^3 + O[r]^3 In all methods Expand[Normal[result]] will truncate to polynomials and expand into monomials. Daniel Lichtblau Wolfram Research danl at wolfram.com