Armata

Transkrypt

Armata
Armata
W pozycji (x0,y0)=(0,0) znajduje się armata. Określ prędkość początkową oraz wyznacz tor
pocisku wystrzelonego z armaty w chwili t0=0, w taki sposób, by po zadanym czasie T pocisk
uderzył w cel o podanych współrzędnych (xT,yT).
Równanie ruchu pocisku dla chwili czasu t > t0 dane jest wzorem:
x''(t) = -c x'(t)R(t)
y''(t) = -c y'(t)R(t) - g,
gdzie g, c - parametry podane na wejściu (oznaczające odpowiednio przyspieszenie
grawitacyjne i współczynnik aerodynamicznego oporu, tym razem opór proporcjonalny do
kwadratu prędkości), zaś R(t)= sqrt([x'(t)]2+ [y'(t)]2).
Wejście
W pierwszej linii podana jest liczba testów (około 100). Każdy z testów składa się z pięciu liczb
g, c, T, xT, yT oddzielonych spacjami. Wszystkie jednostki są zgodne. Można założyć, że: T > 0,
xT2+ yT2 > 0, c >= 0, g >= 0; wartości bezwzględne liczb podanych na wejściu nie przekraczają
100.
Wyjście
Dla każdego zestawu testowego należy wypisać w pierwszej linii wartości x'(0), y'(0), oddzielone
spacją. W kolejnych floor(10T) liniach należy wypisać wartości x(t), y(t) dla kolejnych chwil czasu
t=0.1,0.2,0.3,...,floor(10T)/10. Przez floor(x) rozumiemy tu największą liczbę całkowitą niewiększą
od x (proszę zwrócić uwagę na przypadek gdy T ma dokładnie jedną cyfrę po przecinku).
Do obliczenia wyniku należy użyć nieliniowej metody strzałów, z dobieraniem prędkości
początkowej metodą stycznych. Równania różniczkowe można rozwiązywać np. metodą R-K
ze zmiennym krokiem.
Wartości wypisywane na wyjściu nie będą przekraczały 103. Dopuszczalny błąd bezwzględny
wyniku wynosi 10-3.
Przykład
Wejście:
2
8.2 0.0 1.0 1.5 0.4
10.0 0.3 1.0 1.5 0.4
Wyjście:
1.5000 4.5000
0.15000 0.40900
0.30000 0.73600
0.45000 0.98100
0.60000 1.14400
0.75000 1.22500
0.90000
1.05000
1.20000
1.35000
1.50000
1.22400
1.14100
0.97600
0.72900
0.40000
2.4677 7.1468
0.22331 0.59978
0.41288 1.01586
0.58160 1.29114
0.73715 1.44840
0.88424 1.49954
1.02488 1.45061
1.15848 1.30688
1.28321 1.07636
1.39739 0.76996
1.50000 0.40000

Podobne dokumenty