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