Equazioni differenziali

di Anonimizzato9890 il
29 risposte

29 Risposte - Pagina 2

  • Leggi sopra, ho modificato il mio post.
    in y0 tu non hai z e v_z, io ho sbagiato a scrivere.
    prova e vedi che esce.
  • Ti sta dicendo che non conosce la variabile xdoubledot... come se non fosse definita all'interno della funzione.
    io comunque ho provato il codice (copiato esattamente da qui, incollato su matlab) e mi funziona senza dare errore.
  • Puoi anche provare la risoluzione simbolica che se le accolla quelle di secondo grado.
    metti:
    Soluzione = dsolve(equazione1, equazione2, condizione1, condizione2)
    e basta, mi pare.
    per la sintassi corretta guarda qua: http://www.mathworks.it/help/toolbox/symbolic/dsolve.html
  • Giug boh ho provato e ora mi va.

    Posso dirvi la mia idea? poi mi dite se era completamente errata (ovviamente mi da errore)

    keenan sto tentando di capire la tua idea ma premetto che queste sono le mie cose in matlab quindi sono moooolto lenta!
    function dxy= AAAA(t,xy)
    
    a=1;
    b=2;
    c=3;
    d=4;
    x=xy(1);
    xdot=xy(2);
    y=xy(3);
    ydot=xy(4);
    
    xdot=xdot;
    ydot=ydot;
    ydoubledot=a*y+b*xdot;
    xdoubledot=c*x+d*ydot;
    
    dxy=[xdot; xdoubledot ;ydot;ydoubledot]
    
  • Ti dà errore perché hai messo solo tre condizioni iniziali, mentre nella funzione usi anche xy(4)
  • CriV ha scritto:


    keenan sto tentando di capire la tua idea ma premetto che queste sono le mie cose in matlab quindi sono moooolto lenta!
    Tranquilla, ti capisco. Non si ci può discutere con sto tipo...
    Faccio una prova io e ti dico se ha senzo la mia idea. Dammi solo le condizioni iniziali, le equazioni le prendo da prima.
  • Scusa ho scritto male,
    dopo metto

    [T,XY]=ode45('sisedo',[tstart,tend],[0 1 0 1]);

    condizioni iniziali
    y(0)=1
    x(0)=1
    y'(0)=0
    x'(0)=0

    sto provando con la D solve ma mi dice che quelle maledette parentesi non sono bilanciate
  • Quindi così funziona, non dà errore...
  • Aspetta vuoi dire che..
    se scrivi quello che ho scritto io con le condizioni che ti ho scritto a te non da errore???

    se si provo subito con un nuovo mfile e chiamo la funzione in un nome strano!
  • Sì a me funziona... senza nessun errore, copiando la riga che hai scritto tu...
    [T,XY]=ode45('sisedo',[tstart,tend],[0 1 0 1]);

    in caso scrivi qui l'errore che dà...
  • Anzi, ho scritto 'AAAA' dato che era così che avevi chiamato la funzione prima.
  • Okok ora con calma ci riprovo e poi ti faccio sapere.
    Grazie mille cmq in anticipo!

    ah sisi il nome della funzione lo avevo cambiato ma so che basta scriverlo uguale! THANKS
  • Bene, facci sapere!
  • Buon giorno!
    il codice ha funzionato! probabilmente prima avevo fatto qualcosa che non dovevo!

    GRAZIE!!
  • Benissimo! Mi fa molto piacere che funzioni
    A presto
Devi accedere o registrarti per scrivere nel forum
29 risposte