Fysik 1/Logbog uge 40

Fra Meinertz Wiki

(Forskel mellem versioner)
Skift til: Navigation, Søgning
(Siden blev oprettet: Gruppe 1 består i denne uge af * Henrik Bo Hoffmann Carlsen * Kristian Due Andersen * Jonas Meinertz Hansen == Indledende overvejelser == Vi vil forsøge at simulere vores ka...)
Linje 7: Linje 7:
Vi vil forsøge at simulere vores katapultforsøg, ved at opbygge et system hvor projektiler bliver affyret i retning og hastighed tilsvarende det virkelige forsøg vi lavede. Vi vil f.eks. bruge en form for rand-funktion samt vores usikkerheder fra første forsøg, til at få resultater der ligner dem vi fik fra det fysiske forsøg mest muligt.
Vi vil forsøge at simulere vores katapultforsøg, ved at opbygge et system hvor projektiler bliver affyret i retning og hastighed tilsvarende det virkelige forsøg vi lavede. Vi vil f.eks. bruge en form for rand-funktion samt vores usikkerheder fra første forsøg, til at få resultater der ligner dem vi fik fra det fysiske forsøg mest muligt.
 +
 +
== Det endelige resultat ==
 +
<pre>
 +
# -*- coding: utf-8 -*-
 +
from visual import *
 +
from random import gauss
 +
 +
ball=sphere(pos=(0,0,0),radius=0.05,color=color.blue)
 +
 +
arrowtails="atorigin"
 +
#avec=arrow(color=color.green,shaftwidth=0.1)
 +
#vvec=arrow(color=color.yellow,shaftwidth=0.3)
 +
ball.mass=5
 +
 +
ball.acceleration=vector(0,-9.82,0)
 +
path=curve(radius=0.01,color=color.red)
 +
autoscale=1 #this off auto scaling!
 +
scene.range=(2,1,2) #gives the property range to the scene object
 +
scene.center=(1.5,0,0)
 +
dt=0.0002 #dt is delta t and is 0.1 second if we are using MKS
 +
#loop for 5 seconds:
 +
 +
throws = 25 #hvor mange gange der skal kastes
 +
thrown = 0 # hvor mange gange der er kastet
 +
 +
# til statistik
 +
gennemsnit = 2.768
 +
intervaller =
 +
 +
while thrown < throws:
 +
   
 +
    ball.pos = (0,0,0)
 +
    ball.velocity=vector(gauss(3.71,0.134),gauss(3.71,0.134),0)
 +
 +
    thrown += 1
 +
    t=0 #start at time 0
 +
   
 +
    while ball.pos.y >= 0:
 +
        #rate(1000) #slows animation by 1/arg seconds
 +
        ball.velocity = ball.velocity+ball.acceleration*dt
 +
        ball.pos=ball.pos+ball.velocity*dt
 +
        t=t+dt
 +
        path.append(pos=ball.pos)
 +
        #avec.axis=ball.acceleration
 +
        #vvec.axis=ball.velocity
 +
        #if arrowtails=="onball":
 +
        #    avec.pos=ball.acceleration
 +
        #    vvec.pos=ball.vel
 +
        #if arrowtails=="atorigin":
 +
        #    avec.pos=ball.pos
 +
        #    vvec.pos=ball.pos
 +
 +
    print "----"
 +
    print thrown
 +
    print t
 +
    print ball.pos.x
 +
 +
    totlen += ball.pos.x
 +
</pre>

Versionen fra 28. okt 2009, 11:47

Gruppe 1 består i denne uge af

Indledende overvejelser

Vi vil forsøge at simulere vores katapultforsøg, ved at opbygge et system hvor projektiler bliver affyret i retning og hastighed tilsvarende det virkelige forsøg vi lavede. Vi vil f.eks. bruge en form for rand-funktion samt vores usikkerheder fra første forsøg, til at få resultater der ligner dem vi fik fra det fysiske forsøg mest muligt.

Det endelige resultat

# -*- coding: utf-8 -*-
from visual import *
from random import gauss

ball=sphere(pos=(0,0,0),radius=0.05,color=color.blue)

arrowtails="atorigin"
#avec=arrow(color=color.green,shaftwidth=0.1)
#vvec=arrow(color=color.yellow,shaftwidth=0.3)
ball.mass=5

ball.acceleration=vector(0,-9.82,0)
path=curve(radius=0.01,color=color.red)
autoscale=1 #this off auto scaling!
scene.range=(2,1,2) #gives the property range to the scene object
scene.center=(1.5,0,0)
dt=0.0002 #dt is delta t and is 0.1 second if we are using MKS
#loop for 5 seconds:

throws = 25 #hvor mange gange der skal kastes
thrown = 0 # hvor mange gange der er kastet

# til statistik
gennemsnit = 2.768
intervaller = 

while thrown < throws:
    
    ball.pos = (0,0,0)
    ball.velocity=vector(gauss(3.71,0.134),gauss(3.71,0.134),0)

    thrown += 1
    t=0 #start at time 0
    
    while ball.pos.y >= 0:
        #rate(1000) #slows animation by 1/arg seconds
        ball.velocity = ball.velocity+ball.acceleration*dt
        ball.pos=ball.pos+ball.velocity*dt
        t=t+dt
        path.append(pos=ball.pos)
        #avec.axis=ball.acceleration
        #vvec.axis=ball.velocity
        #if arrowtails=="onball":
        #    avec.pos=ball.acceleration
        #    vvec.pos=ball.vel
        #if arrowtails=="atorigin":
        #    avec.pos=ball.pos
        #    vvec.pos=ball.pos

    print "----"
    print thrown
    print t
    print ball.pos.x

    totlen += ball.pos.x
Personlige værktøjer
Navnerum
Varianter
Handlinger
jonas.meinertz.org
Wiki
Værktøjer