Where on earth do I weigh the most?

For a homogeneous sphere, only the mass closer to the center than you are contributes to the force of gravity. If you’re 1 km deep inside a homogeneous Earth, the force of the 1 km shell of mass farther from the center of the Earth than you are cancels out, and doesn’t contribute to gravity. So the mass you’re losing is essentially 6371^3 - 6370^3 = 121750000.

You’re thinking of a spherical cap, right? Note that the big, horrible-looking formula is for an n-dimensional hyperspherical cap, and the three dimensional version is given in smaller type in the preceding paragraph. As long as you’re dealing with the earth being heterogeneous, it’s reasonable to model it as its smallest enclosing sphere, and treat the air within as a region of (much) lower density.

Given a density function f varying over a sphere, what does the integral for the gravitational pull at a given point x look like? There are various optimization techniques that may be appropriate depending on the exact nature of that function.

ETA: My earlier answer would be correct for any homogeneous bounded set in R[sup]3[/sup], but I wasn’t considering the heterogeneity of the earth. Since that is important, the answer is not so cut and dry.

In fact, it doesn’t even need to be homogeneous, just spherically symmetric (which the Earth is, to a good approximation: The density variation depends only on radius).

Here’s a USGS site with densities of each of the Earth’s layers. There are numbers for the top and bottom of each layer. For a first cut, one could assume linear variation with radius within each layer.

On a treadmill, with Opal?

I programmed this up in Matlab. I scaled the radii to get 6378.2 km for the Earth’s radius, and scaled the total mass to get 5.977E27 for its total mass. These were both less than 0.4 percent differences.

I get 9.804 m/s^2 at the Earth’s surface, and a maximum of 10.439 m/s^2 at 3468 km from the center, near the core/mantle boundary, pretty close to what Blaster Master said above.

If you model a planet as a set of nested finite-thickness shells each with uniform density, then the point of strongest field will always be at one of the shell boundaries. Of course, in the real planet, there’s continual variation, but uniform shells is probably a pretty good approximation.

At this point in the thread, I guess “Death Valley” would be a pretty unsophisticated answer, huh? :slight_smile:

Can you please post or email your code? I meant to do it today, but didn’t get around to it. I’m quite interested in what the graph looks like, especially.

If you’re not familiar with Matlab, something like a . b* means element-wise multiplication of two arrays. Similarly, a.^3 is an array with cubes of all the elements of a.


function [grav, massgram] = earthgrav(radkm)
%
%   Gives Earth's gravity as function of radius from center.
%

%
%   Assumes spherical Earth.  Use kilometers, grams.
%
radEarth = 6.3782E+3;
radscale = radEarth/6401
massEarth = 5.977e+27;
massscale = massEarth / 5.994233729607057e+027
Ggrav = 6.67300e-14;
%
%  Data from http://pubs.usgs.gov/gip/interior/
%  Not sure why max radius is 6401.
%
nlayer = 5;
a = [0, 1221, 3480, 5651, 6371] * radscale;
b = [1221, 3480, 5651, 6371, 6401] * radscale;
%
%   Density in gm/cm^3
%
d0 = [13.1, 12.2, 5.6, 4.4, 2.9];
d1 = [12.8, 9.9, 4.4, 3.4, 2.2];
%
%   Assume linear variation in density to do the integrals.
%
alpha = (a .* d1 - b .* d0) ./ (a-b);
beta = (d1 - d0) ./ (b-a);
a3 = a.^3;
a4 = a.*a3;
b3 = b.^3;
b4 = b.*b3;
radkm3 = radkm^3;
radkm4 = radkm * radkm3;

massgram = 0;
for i = 1:nlayer
  if (radkm >= b(i))
    massgram = massgram + 0.25 * beta(i) * (b4(i) - a4(i)) + ...
                              alpha(i) * (b3(i) - a3(i)) / 3.0;
  elseif (radkm > a(i))
    massgram = massgram + 0.25 * beta(i) * (radkm4 - a4(i)) + ...
                              alpha(i) * (radkm3 - a3(i)) / 3.0;
  end
end
%
%   1.0E+15 to convert km^3 to cm^3.
%
massgram = massscale * massgram * 4 * pi * 1.0E+15;
grav = Ggrav * massgram / (radkm*1000)^2;


Thanks, ZenBeam. Would you mind sharing your function file, also?

Wait, that’s not true. You’d still weigh more, just in all directions equally.

If you weigh the same in all directions equally, then you don’t weigh anything. What you’re saying there is like me claiming that I’m not currently just sitting here, but running a marathon in all directions simultaneously.

Man! The guys and gals here never fail to produce spectacular answers!

So much fun to see. :slight_smile:

Function file?

If you’re referring to the first line, it’s just the Matlab syntax for a function that takes one argument, and returns two values called grav and massgram. You can ignore the second, it was just so I could get the scale factor. To get gravity at the Earth’s surface, you could call it like this.

gravity = earthgrav(6378.2)

I should also mention that I assumed the density varied as (alpha + r * beta) for doing the integrals to get the mass, in case you were wondering what alpha and beta are.

Not true. Post-orbital weightlessness is a function of having no single gravitational pull of significant strength. True, your basically weigh nothing, but you are “weightless” in that you have essentially no weight in any direction.

At the core of the earth, ignoring heat and pressure, you would still face crushing gravity, just from all directions. Any attempt to move would require you to fight against all that “force.”

Ok, wait a sec. You’d be in freefall, but you’d still be under high gravity and would weigh a lot in that sense, except you wouldn’t. Alright, it doesn’t really happen in pratice because the pressure and heat would crush anything short of neutronium you could put there. Geez, this gets weird.

And what would cause this “crushing” gravity to be greater than what we experience at the surface of the earth?

(In fact, it’s a lot less that at the surface - like zero.)

I have a training tomorrow, but I’ll fiddle around with it on Friday, since I don’t have MatLab on my home computer. It was giving me an error on line 35, though:

radkm3 = radkm^3;
radkm4 = radkm * radkm3;
saying radkm was never previously defined. I’ve always gotten confused with the function command; I thought it pulled the function from a .m file of the name in the parenthesis.

Would you mind if I sent you a PM if I can’t figure it out?

Wait, never mind. I’m just being stupid, apparently.