Hola aquí va el código del calculo de la integral
He probado de varias maneras y siempre llego a lo mismo , g no es constante, y apunta no al centro pero si para allí, no permanece con dirección constante para cualquier punto de dentro de la esfera hueca.
Código:
Private Sub Command1_Click()
Const G = 6.67408E-11 ' constante de gravitacion universal
Const Mt = 5.9736E+24 ' masa de la tierra
Const Rt = 6371000 'radio de la tierra
Const Pi = 3.14159265358979
' por algún método de entrada tengo que introducir el radio al que esta centrada la esfera lo introduje con r.text lo puse como Rt/2
'lo mismo con el diámetro de la esfera d.text unos 200000 m
' el angulo fuera del eje entre centro tita.text he probado con 45 y 225 grados , opuesto e inclinados
' el porcentaje respecto al radio de la esfera que me alejo, para tomar la gravedad.... supuse un 90%
paso = 50000 ' cantidad de metros de lado de un cubo, para calcular la gravedad producida por ese cubo
'respecto del punto de análisis, pasos mas chicos son mas precisos, pero tienen mas horas de pc, esto lleva 5 min de calculo
den = Mt / (4 / 3 * Pi * Rt ^ 3) ' densidad de la tierra
gx = 0 ' contadores a cero
gy = 0
gz = 0
' calculo de la posicion del punto de analisis (cdbl convierte texto en numeros)
x = CDbl(d.Text) / 2 * Cos(Pi * CDbl(Tita.Text) / 180) * CDbl(descentro.Text) / 100 + CDbl(r.Text)
y = CDbl(d.Text) / 2 * Sin(Pi * CDbl(Tita.Text) / 180) * CDbl(descentro.Text) / 100
z = 0
'bucles para establecer si el cubo aporta o no gravedad
For a = -Rt To Rt Step paso
For b = -Rt To Rt Step paso
For c = -Rt To Rt Step paso
pt = Sqr(a ^ 2 + b ^ 2 + c ^ 2)
If pt <= Rt Then
corr = a - CDbl(r.Text)
ph = Sqr(corr ^ 2 + b ^ 2 + c ^ 2)
If ph >= CDbl(d.Text) / 2 Then
gx = gx + (a - x) / (Sqr((a - x) ^ 2 + (b - y) ^ 2 + (c - z) ^ 2)) ^ 3
gy = gy + (b - y) / (Sqr((a - x) ^ 2 + (b - y) ^ 2 + (c - z) ^ 2)) ^ 3
gz = gz + (c - z) / (Sqr((a - x) ^ 2 + (b - y) ^ 2 + (c - z) ^ 2)) ^ 3
End If
End If
Next c
Next b
Next a
gx = gx * G * den * paso ^ 3
gy = gy * G * den * paso ^ 3
gz = gz * G * den * paso ^ 3
' presento datos
Label5.Caption = "gx= " & gx
Label6.Caption = "gy= " & gy
Label7.Caption = "gz= " & gz
End Sub












Comentario