1 votos

¿Cómo se grafica la aceleración?

He escrito un código java para el cálculo de algunos datos de tipo aceleración y etc. Ahora estoy tratando de graficar esos datos para poder sacar datos específicos sobre una línea de tiempo. Los valores que he recibido a través de mi programa matemático son puramente precisos con varios medios diferentes de comprobación de errores. No necesito ayuda para la programación en java. Lo que necesito es una técnica de graficación precisa para poder obtener los datos apropiados.

http://physicsforidiots.com/wp/wp-content/ql-cache/quicklatex.com-f80733c4cb4c6cb9bdef0e44fe176cab_l3.svg

fórmula de aceleración

El eje x en eso es la variable de tiempo. El eje y debería ser la distancia, pero estoy obteniendo números totalmente falsos. Sé que puedo estar fuera de mi comprensión de cómo sería gráfico.

    double D = Double.parseDouble(txtDistance.getText());
    double T = Double.parseDouble(txtTime.getText());
    double IV = Double.parseDouble(txtIVelocity.getText());
    double M = Double.parseDouble(txtMass.getText());

    double hd = Distance(D);
    double ht = Time(T);

    //2.0*(xt/th-v_i)/th
    //double A = (2 * (hd - ht * IV)) / (ht * ht);
    double A = 2 * (hd/ht - IV)/ht;     
    double PG = (A / 9.8) * 100;

    //IV + A * ht
    //double V = hd / ht;
    double V = IV + A * ht;
    double PL = (V / 299792458) * 100;
    double MPH = V * 2.236936;

    double F = M * A;
    double LBT = F * 0.224809;

    DecimalFormat df = new DecimalFormat("####0.0000");

    txtVelocity.setText(String.valueOf(df.format(V)));
    txtPLight.setText(String.valueOf(df.format(PL)));
    txtMph.setText(String.valueOf(df.format(MPH)));

    txtAcceleration.setText(String.valueOf(df.format(A)));
    txtPGForce.setText(String.valueOf(df.format(PG)));

    txtThrust.setText(String.valueOf(df.format(F)));
    txtLBThrust.setText(String.valueOf(df.format(LBT)));

Como puedes ver, estoy introduciendo la distancia, el tiempo, la velocidad inicial y la masa. Y a cambio, calcula y muestra la velocidad final, el porcentaje de velocidad de la luz, las millas por hora, la aceleración, el porcentaje de fuerza G, la confianza en newtons y las libras de empuje.

Datos de la muestra:

Distancia: 160934400 Km (algo más de una UA) Tiempo: 40 horas Velocidad inicial: 3070 m/s (órbita terrestre geosíncrona) Masa: 54431 Kg

La nave comienza en la órbita terrestre y acelera durante el 50% de la distancia y desacelera durante el 50% de la distancia. Esto se calcula con 72000 segundos y 80467200000 metros.

Muestra de respuesta:

Velocidad final: 1117600,0000 m/s Porcentaje de luz: 0,3728 Millas por hora: 2499999,6736 mph (para la comprensión humana de la velocidad para el lector) Aceleración: 30,9592 m/s^2 Porcentaje de fuerza G: 315,9099 % Empuje: 315,9099 N Lbs Empuje: 378834.2788 Lbs (de nuevo para la comprensión humana)

Sé que estos números son tan precisos como pueden ser utilizando las ecuaciones de aceleración constante publicadas anteriormente. Sé que estos números son extremos, pero es una novela de ciencia ficción.

El propósito de todo esto es que estoy escribiendo una novela de ciencia ficción y tengo una línea argumental y una línea temporal. Necesito varias velocidades, basadas en el tiempo y la aceleración, etc. Tengo un programa adicional que tomará estos datos y los graficará para que pueda hacer clic en los puntos para obtener los datos apropiados que necesito en el momento dado de la historia.

¿Cuál es el medio apropiado para graficar eso de manera que pueda obtener números precisos que tengan sentido para mi historia cuando usted, potencial lector, lea el libro?

Como dato adicional para obtener números aún más precisos, necesito saber cómo modificar mis ecuaciones para tener en cuenta la interferencia gravitacional en la aceleración, etc.

He pasado la última semana, más de 80 horas trabajando en esto para que mi libro sea lo más preciso posible. Dicho esto, sería casi imposible para mí incluir todo mi trabajo sobre este tema. Cualquier ayuda que esté dispuesto a ofrecerme para que pueda avanzar con esta novela será muy apreciada.

1voto

Floris Puntos 54054

Estoy más familiarizado con la creación de gráficos en Python que en el lenguaje que estás utilizando. El siguiente fragmento de código produce el gráfico que pides:

import numpy as np
import matplotlib.pyplot as plt

# sci fi velocity graph
D = 160934400000     # m
v_i = 3070           # m/s
total_time = 40*3600 # seconds: 40 hours

# to cover half the distance in half the time, we solve
# x(t) = x(0) + v_0*t + 0.5*a*t*t
# x(0) = 0
# x(t) = D/2
# t = total_time / 2 = th
th = total_time / 2
xt=D/2
a = 2.0*(xt/th-v_i)/th

print 'acceleration needed is %.2f m/s^2'%a
# this prints out 30.96 m/s^2 - encouraging

# calculate position during acceleration phase - every second:
tm = 20*3600 # time at mid point
x=[]
for t in range(0,tm+1):
    x.append(v_i*t + 0.5 * a * t * t)

xm = x[-1] # position at mid point

for t in range(tm+1, 2*tm):
    x.append((v_i + tm*a)*(t-tm) - 0.5 * a * (t - tm) * (t - tm) + xm)

time = np.arange(0,2*tm)/3600.0

plt.close('all')
plt.figure()
plt.plot(time, np.array(x)/1000)
plt.xlabel('time (hr)')
plt.ylabel('position (km)')
plt.show()

v_t = np.diff(x)
plt.figure()
plt.plot(np.array(x[:-1])/1000,v_t/1000)
plt.xlabel('position (km)')
plt.ylabel('velocity (km/s)')
plt.show()

plt.figure()
plt.plot(time[:-1], v_t/1000)
plt.xlabel('time (hr)')
plt.ylabel('velocity (km/s)')
plt.show()

Esto produce el siguiente gráfico:

enter image description here

También se puede trazar la velocidad en función del tiempo:

enter image description here

O en función de la posición:

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X