File:Mplwp ballistic trajectories velocities.svg

Commons – repozytorium wolnych multimediów
Przejdź do nawigacji Przejdź do wyszukiwania

Rozmiar pierwotny(Plik SVG, nominalnie 600 × 400 pikseli, rozmiar pliku: 29 KB)

Podpisy

Podpisy

Dodaj jednolinijkowe objaśnienie tego, co ten plik pokazuje

Opis

[edytuj]
Opis
English: Plot of a ballistic trajectory with air resistance. The trajectory follows the differential equation with initial conditions .

The parameters are:

  • , ,
  • The initial velocity takes the values , , , ,
The differential equation is solved numerically using Scipy odeint.
Data
Źródło Praca własna
Autor Geek3
SVG rozwój
InfoField
 
Kod źródłowy tego poprawny.
 
Ta grafika wektorowa została stworzona za pomocą mplwp
Kod źródłowy
InfoField

mplwp source code

The plot was generated with mplwp 1.0
#!/usr/bin/python
# -*- coding: utf8 -*-

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
from math import *

code_website = 'http://commons.wikimedia.org/wiki/User:Geek3/mplwp'
try:
    import mplwp
except ImportError, er:
    print 'ImportError:', er
    print 'You need to download mplwp.py from', code_website
    exit(1)

name = 'mplwp_ballistic_trajectories_velocities.svg'
fig = mplwp.fig_standard(mpl)

xlim = 0,2.6; fig.gca().set_xlim(xlim)
ylim = 0,2.6*355/515.; fig.gca().set_ylim(ylim)
fig.gca().xaxis.set_major_locator(mpl.ticker.MultipleLocator(0.4))
fig.gca().yaxis.set_major_locator(mpl.ticker.MultipleLocator(0.4))

from scipy.integrate import odeint
from scipy.optimize import brentq
def ballistic(g, k, xy0, v0, alpha0, tt):
    # use a four-dimensional vector function vec = [x, y, vx, vy]
    def dif(vec, t):
        v = sqrt(vec[2]**2 + vec[3]**2)
        return [vec[2], vec[3], -k*v*vec[2], -g -k*v*vec[3]]
    
    # solve the differential equation numerically
    vec = odeint(dif, [xy0[0], xy0[1], v0*cos(alpha0), v0*sin(alpha0)], tt)
    return vec[:,0], vec[:,1] # return x(tt) and y(tt)

g = 1.0
k = 1.0
alpha0 = pi/4
for v0 in np.linspace(0, 10, 6)[1:]:
    t1 = brentq(lambda t: ballistic(g,k,[0,0],v0,alpha0,[0,t])[1][1],0.1,5)
    t = np.linspace(0, t1, 5001)
    x, y = ballistic(g, k, [0, 0], v0, alpha0, t)
    while len(y) > 1 and y[-2] <= 0.0: x = x[:-1]; y = y[:-1]
    plt.plot(x, y,
        label=ur'$v_0=\,{:.0f}$'.format(v0))

mpl.rc('legend', borderaxespad=1.0)
plt.legend(loc='upper left').get_frame().set_alpha(0.9)
plt.savefig(name)
mplwp.postprocess(name)

Licencja

[edytuj]
Ja, właściciel praw autorskich do tego dzieła, udostępniam je na poniższych licencjach
GNU head Udziela się zgody na kopiowanie, rozpowszechnianie oraz modyfikowanie tego dokumentu zgodnie z warunkami GNU Licencji Wolnej Dokumentacji, w wersji 1.2 lub nowszej opublikowanej przez Free Software Foundation; bez niezmiennych sekcji, bez treści umieszczonych na frontowej lub tylnej stronie okładki. Kopia licencji załączona jest w sekcji zatytułowanej GNU Licencja Wolnej Dokumentacji.
w:pl:Licencje Creative Commons
uznanie autorstwa
Ten plik udostępniony jest na licencji Creative Commons Uznanie autorstwa 3.0.
Wolno:
  • dzielić się – kopiować, rozpowszechniać, odtwarzać i wykonywać utwór
  • modyfikować – tworzyć utwory zależne
Na następujących warunkach:
  • uznanie autorstwa – musisz określić autorstwo utworu, podać link do licencji, a także wskazać czy utwór został zmieniony. Możesz to zrobić w każdy rozsądny sposób, o ile nie będzie to sugerować, że licencjodawca popiera Ciebie lub Twoje użycie utworu.
Możesz wybrać, którą licencję chcesz zastosować.

Zobacz też

[edytuj]

Historia pliku

Kliknij na odpowiedniej dacie/czasie, aby zobaczyć wersję pliku z tamtego okresu.

Data/czasMiniaturaWymiaryUżytkownikOpis
aktualny14:00, 28 wrz 2014Miniatura wersji z 14:00, 28 wrz 2014600 × 400 (29 KB)Geek3 (dyskusja | edycje)ballistic_trajectories_velocities plot by Geek3

Poniższa strona korzysta z tego pliku:

Globalne wykorzystanie pliku

Ten plik jest wykorzystywany także w innych projektach wiki:

Metadane