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