Integrering i Python

Her kan du stille spørsmål vedrørende problemer og oppgaver i matematikk på høyskolenivå. Alle som har kunnskapen er velkommen med et svar. Men, ikke forvent at admin i matematikk.net er spesielt aktive her.

Moderatorer: Vektormannen, espen180, Aleks855, Solar Plexsus, Gustav, Nebuchadnezzar, Janhaa

Svar
Tor Olav
Fibonacci
Fibonacci
Innlegg: 4
Registrert: 04/03-2013 13:25
Sted: Lunde Telemark

Hei. Sitter med ei oppgave her eg ikkje får til. har fått funksjonen
f(t)=exp(-t)*sin(2*Pi*t)

Oppgava går ut på å lage eit plot av den integrerte funksjonen og den dobbel integrerte funksjonen.

Eg har laget dette programmet:

from scitools.all import *

def dydt(t):
return (exp(-t)*sin(2*pi*t))

a=0.0
b=4.0
N=50
dt=(b-a)/N
time=linspace(a,b,N+1)
yTrue=exp(-time)*sin(2*pi*time)
y=zeros(len(time))
y[0]=0

for i in range(0,len(time)-1,1):
y[i+1]=y+dt*dydt(time)

plot(time,yTrue,'k',time,y,'k--')



---------------------------------------------------------------------------------

Og når eg da plotter dette, så får eg opp plot for den funksjonen eg har gitt.(sjekket med maple)

Noen inteligente der ute som kan hjelpe meg videre? Står bom fast her, og kan på ingen måte skryte på meg noe kunnskap med Python.

på Forhånd takk :)

-Tor Olav-
Gustav
Tyrann
Tyrann
Innlegg: 4558
Registrert: 12/12-2008 12:44

Er meningen at du skal integrere funksjonen numerisk med python? Eller er det tillatt å bruke innebygde funksjoner? (quad i scipy f.eks.)
Nebuchadnezzar
Fibonacci
Fibonacci
Innlegg: 5648
Registrert: 24/05-2009 14:16
Sted: NTNU

Har brukt python ekstremt lite, med litt googling antar jeg at
om du laster inn pakken integrate fra scipy burde ting fungere greit.

Kode: Velg alt

from scipy import integrate 
http://stackoverflow.com/questions/1197 ... tion-array

Noe slikt burde funke, ellers kan du bare bruke Rieman-summer om funksjonen din er rimelig pen.
"Å vite hva man ikke vet er og en slags allvitenhet" - Piet Hein
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
Tor Olav
Fibonacci
Fibonacci
Innlegg: 4
Registrert: 04/03-2013 13:25
Sted: Lunde Telemark

beklager litt tynn beskrivelse tidligere, er meiningen å gjøre det numerisk, med Eulers metode.

det er har fått til til nå er:

from scitools.all import *

def dvdt(t):
return (exp(-t)*sin(2*pi*t))

a = 0.0
b = 4.0
N = 50
dt=(b-a)/N
time=linspace(a,b,N+1)
#yTrue=exp(-time)*sin(2*pi*time)
v = zeros(len(time)); v[0] = 0
x = zeros(len(time)); x[0] = 0

for i in range(0,len(time)-1,1):
x[i+1] = x + dt*v
v[i+1] = v + dt*dvdt(time)

plot(time,x,'k--')
figure()
plot(time,v,'k--')



Har her utviklet eit "program" som viser hastigheten med hensyn på tiden. da har eg igjen å integrere ein gang til for å få den til å vise for posisjonen.
dan
Dirichlet
Dirichlet
Innlegg: 188
Registrert: 25/09-2010 16:38

Eulers metode bruker du vel for å løse difflikninger. Bruk heller trapesmetoden eller noe liknende
Tor Olav
Fibonacci
Fibonacci
Innlegg: 4
Registrert: 04/03-2013 13:25
Sted: Lunde Telemark

enda litt manglende info frå min side, det skal brukes euler
Brahmagupta
Guru
Guru
Innlegg: 628
Registrert: 06/08-2011 01:56

Å løse differensialligningen er jo det samme som å integrere i dette tilfellet, selv foretrekker jeg å gjøre som du har gjort her.

Programmet ditt løser diff. ligningen F''(t) = f(t) for F og F'(t), hvor x tilsvarer F og F'(t) tilsvarer v. Du har altså integrert funksjonen to ganger allerede og trenger ikke å gjøre det igjen! Hvis akselerasjonen a= f(t) så har du funnet både hastighet og posisjon.
Tor Olav
Fibonacci
Fibonacci
Innlegg: 4
Registrert: 04/03-2013 13:25
Sted: Lunde Telemark

når eg kjører gjennom funksjonen og får opp plottene, så får eg ein med "svingninger" og eit der den begynner litt "rart", før den "retter" seg ut og blir lineær. noe eg da leser at blir hastigheten, etter som den vil bli konstant når akselrasjonen avtar.
Svar