Springen naar inhoud

[wiskunde] maple


  • Log in om te kunnen reageren

#1

ottocruyt

    ottocruyt


  • 0 - 25 berichten
  • 15 berichten
  • Gebruiker

Geplaatst op 15 november 2008 - 12:41

Ik heb met maple een differentiaalvergelijking opgelost

restart:
> g:=9.81;massa:=50;k:=0.0022;
> vgl1:=massa*diff(v(t),t)=massa*g-k*v(t)**2;
> opl1:=dsolve({vgl1,v(0)=0},{v(t)},numeric);
g := 9.81


massa := 50


k := 0.0022


/d \ 2
vgl1 := 50 |-- v(t)| = 490.50 - 0.0022 v(t)
\dt /


opl1 := proc(x_rkf45) ... end proc

Nu moet ik de afgelegde weg berekenen (tot) op tijdstip 15, wat dus wil zeggen de bepaalde integraal van 0->15 van die oplossing. Maar nu is het probleem dat maple

int(opl1,t=0..15);

blijkbaar niet kan oplossen, iemand een idee hoe je die integraal met maple kunt berekenen?

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Burgie

    Burgie


  • >250 berichten
  • 582 berichten
  • Ervaren gebruiker

Geplaatst op 15 november 2008 - 13:42

Laat het derde argument, 'numeric' dus, in je 'dsolve'-commando eens achterwege. Nu moet het lukken.

#3

ottocruyt

    ottocruyt


  • 0 - 25 berichten
  • 15 berichten
  • Gebruiker

Geplaatst op 15 november 2008 - 15:31

Wel ja de opdracht is net dat we dat wel met numerieke waarden moeten oplossen. Tenzij er een andere manier is om de afgelegde weg te berekenen?

#4

ToonC

    ToonC


  • 0 - 25 berichten
  • 2 berichten
  • Gebruiker

Geplaatst op 16 november 2008 - 01:01

Dag otto,

hehe, kheb ook die opdracht
wel ik vind het ook niet echt direct.
ik heb zo wat zitten proberen met het als een array op te slaan met stapjes van 1, dat is wel gelukt maar dan krijg ik weer die inhouden van die array er niet uit zoals normaal via opl1[1..15]; of hoe dan ook, omdat er zogezegd 2 arrays in elkaar zitten en daar kan ik dan weer nie mee werken.
mijn bedoeling was dus om die 15 uitkomsten gewoon op te tellen en dan krijg je iets dat min of meer op de integraal lijkt, maar wel veel minder nauwkeurig.
maar het zou in principe moeten lukken als je dat nu met stapjes van 0.1 of zelfs 0.01 kan laten doen en dan elke uitkomst *0.1 of *0.01 te doen en dan op te tellen.
maar ik kom er nu ook effe niet uit.
laat me iets weten alsge derachter komt

ik heb ook ergens in die help files gelezen dat er een soort type=.. bestaat waarvoor die ook ineens een derde kolom berekend met de afgeleide van die functie dus alsje opl1(15); zou doen dan geeft die de snelheid op 15s en ook de versnelling op 15s (afgeleide van snelheid), mss bestaat er ook wel een type die de integraal geeft in een derde kolom
heb ik nu nog niet echt tegengekomen.

grtz Toon (ook uit A3:p)

#5

Burgie

    Burgie


  • >250 berichten
  • 582 berichten
  • Ervaren gebruiker

Geplaatst op 16 november 2008 - 02:41

Wel ja de opdracht is net dat we dat wel met numerieke waarden moeten oplossen. Tenzij er een andere manier is om de afgelegde weg te berekenen?


Tik eens "? dsolve/numeric" in je maple venster, en doorblader eens de betreffende help file.

Ik heb het als volgt ingegeven:
restart:
g:=9.81;massa:=50;k:=0.0022;
vgl1:=massa*diff(x(t),t,t)=massa*g-k*diff(x(t),t)**2;
opl1:=dsolve({vgl1,D(x)(0)=0,x(0)=0},{x(t)},numeric,range=0..15);
opl1(15);
Snap je dit?

Veranderd door Burgie, 16 november 2008 - 02:41


#6

ottocruyt

    ottocruyt


  • 0 - 25 berichten
  • 15 berichten
  • Gebruiker

Geplaatst op 16 november 2008 - 11:53

wel, nee:

Ik snap niet waarom je in de vergelijking de afgeleide van v(t) mag vervangen door de 2e orde afgeleide van de positie?
Daarenboven, als je opl1(15) ingeeft, geeft hij dan niet een waarde op dat punt? terwijl de som van alle waarden er voor er toch ook nog bij moet (~integraal)?

je bekomt in ieder geval wel de juiste oplossing.

#7

Burgie

    Burgie


  • >250 berichten
  • 582 berichten
  • Ervaren gebruiker

Geplaatst op 16 november 2008 - 13:37

wel, nee:

Ik snap niet waarom je in de vergelijking de afgeleide van v(t) mag vervangen door de 2e orde afgeleide van de positie?
Daarenboven, als je opl1(15) ingeeft, geeft hij dan niet een waarde op dat punt? terwijl de som van alle waarden er voor er toch ook nog bij moet (~integraal)?

je bekomt in ieder geval wel de juiste oplossing.

Wel, zoals je waarschijnlijk wel weet is snelheid de eerste afgeleide van de positie naar de tijd. Ik vervang dit hier enkel om gebruik te maken van de "dsolve/numeric"-functie; de numerische oplossing kun je immers niet zomaar integreren... daarom is het ook numerisch. Dit doet echter niet af aan de oplossing.
De oplossing van deze differentiaalvergelijking is uiteraard de positie x(t). Aangezien ik nu echter een extra initiŽle conditie x(0)=0 heb meegegeven bij het oplossen van de differentiaalvergelijking, zal opl1(15) inderdaad de afgelegde weg op tijdstip t=15 voorstellen.

#8

ottocruyt

    ottocruyt


  • 0 - 25 berichten
  • 15 berichten
  • Gebruiker

Geplaatst op 16 november 2008 - 14:37

Dankjewel, ik begin het te begrijpen (dat van de afgeleide begrijp ik).
Alleen die initiŽle conditie: betekent dan dat hij vanaf dan alles wat er bij komt er bij optelt?
ik begrijp niet goed wat die initiŽle conditie verandert aan het geheel.

#9

ToonC

    ToonC


  • 0 - 25 berichten
  • 2 berichten
  • Gebruiker

Geplaatst op 16 november 2008 - 14:47

welja er is gewoon ťťn extra conditie, namelijk die van x(0)=0. Als deze niet 0 zou zijn dan zou je gewoon de positie hebben.
maar de afgelegde weg is hetzelfde als de positie indien x(0)=0 met de functie stijgend voor het interval.(wat hier het geval is)
Dx(0)=0 is hetzelfde als v(0)=0 wat we in begin al als conditie hadden.

Veranderd door ToonC, 16 november 2008 - 14:49


#10

Burgie

    Burgie


  • >250 berichten
  • 582 berichten
  • Ervaren gebruiker

Geplaatst op 16 november 2008 - 14:54

Dankjewel, ik begin het te begrijpen (dat van de afgeleide begrijp ik).
Alleen die initiŽle conditie: betekent dan dat hij vanaf dan alles wat er bij komt er bij optelt?
ik begrijp niet goed wat die initiŽle conditie verandert aan het geheel.


Ik gaf 2 initiŽle condities op:
* D(x)(0) = 0 - Dit is niets anders dan de beginsnelheid v gelijk aan 0 m/s stellen, net zoals jij ook aangaf in je code.
* x(0) = 0 - Deze geeft aan dat de beweging start op positie x(0) = 0 m, en x(t) is dan uiteraard de afgelegde weg na t seconden. Als je bvb. initiŽle conditie x(0) = 10 m zou stellen, dan zou x(t) niet de afgelegde weg voorstellen maar de absolute positie. Na 15 seconden in zou de persoon zich in het punt x(0) + x(15) bevinden, maar zou slechts een afstand x(15) - x(0) hebben afgelegd.

Ik hoop dat dit wat duidelijker is.

#11

ottocruyt

    ottocruyt


  • 0 - 25 berichten
  • 15 berichten
  • Gebruiker

Geplaatst op 16 november 2008 - 17:11

Ja, zo begrijp ik het.
Het probleem was eigenlijk, en dat heeft Toonc goed verduidelijkt, dat je eigenlijk gewoon de positie x(t) neemt, met x(0)=0, maar dan moet je er inderdaad van uitgaan dat de functie stijgend is gedurende het interval.

Bedankt voor alle moeite!

#12

Burgie

    Burgie


  • >250 berichten
  • 582 berichten
  • Ervaren gebruiker

Geplaatst op 16 november 2008 - 17:17

Ja, zo begrijp ik het.
Het probleem was eigenlijk, en dat heeft Toonc goed verduidelijkt, dat je eigenlijk gewoon de positie x(t) neemt, met x(0)=0, maar dan moet je er inderdaad van uitgaan dat de functie stijgend is gedurende het interval.

Bedankt voor alle moeite!

Ahja, het stijgend zijn ben ik vergeten te vermelden, maar dat beschouwde ik als triviaal. Goed opgemerkt van ToonC.

Geen probleem, zolang je er maar wat aan had!

Veranderd door Burgie, 16 november 2008 - 17:18






0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures