Advertisement
Guest User

Untitled

a guest
Mar 30th, 2020
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.30 KB | None | 0 0
  1. import numpy as np
  2.  
  3.  
  4. # oppgave a) er å skrive innholdet i denne klassen
  5. class Integrator:
  6.     # Merk: time_start skal være 0 og trengs derfor ikke som parameter
  7.     def __init__(self, delta_time, time_end):
  8.         # Fyll inn kode for å sette egenskapene delta_time og time_end her
  9.         self.delta_time = delta_time
  10.         self.time_end = time_end
  11.  
  12.     def integrate(self, function, initial_condition_vector):
  13.         # Fyll inn kode for å gjøre selve integreringen, som beskrevet i avsnittet
  14.         # "numerisk integrasjon" her.
  15.  
  16.         # Finn ut hvor lang vektoren er ved å sjekke hvor mange elementer som er i første element.
  17.         dimensjoner = len(initial_condition_vector[0])
  18.         # Finn ut hvor mange steg
  19.         antall_steg = self.time_end / self.delta_time
  20.         tidssteg = 0
  21.         # Lag matrise antall_steg x dimensjoner av initial vector
  22.         matrise = np.empty([antall_steg, dimensjoner])
  23.         matrise[tidssteg] = initial_condition_vector
  24.        
  25.         for i in range(antall_steg):
  26.             tidssteg += 1
  27.             matrise[tidssteg] = function.evaluate((tidssteg*self.delta_time), matrise[tidssteg - 1])
  28.        
  29.         return matrise
  30.            
  31.  
  32.  
  33. # Oppgave b) og c) er å skrive to versjoner av denne klassen. Versjonene
  34. # skal begge være implementasjoner av grensesnittet "Evaluate"
  35.  
  36. # B)
  37. class BasisKulebane:
  38.     # Denne skal ta flere parametere enn self, sjekk oppgave b) og c)
  39.     # for de to ulike funksjonsklassene. De ulike funksjonsklassene tar
  40.     # ulike parametre til konstruktøren.
  41.     def __init__(self, tyngdekraft, starttilstand):
  42.         # Fyll inn kode for å sette egenskapene
  43.         self.tyngdekraft = tyngdekraft
  44.         self.starttilstand = starttilstand # [x_posisjon, y_posisjon, x_fart, y_fart]
  45.  
  46.     # Denne funksjonen skal regne ut og returnere en endringsvektor basert på
  47.     # tilstandsvektoren. Bruk formelen oppgitt i oppgaven.
  48.     # Merk at parameteren "tidspunkt" egentlig er unødvendig
  49.     # i denne oppgaven, og er med siden eksemplet er hentet fra et mer komplekst
  50.     # eksempel.
  51.     def evaluate(self, tidspunkt, tilstandsvektor):
  52.         x_fart = self.starttilstand[2] # Farten er konstant (ingen luftmotstand)
  53.         y_fart = self.starttilstand[3] * tidspunkt
  54.         return [x_fart, y_fart, 0, self.]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement