Equazioni differenziali a coefficienti non costanti

di Anonimizzato9724 il
473 risposte

473 Risposte - Pagina 8

  • No, non per forza.
  • giug ha scritto:


    No, non per forza.
    ok!
    lui se lo accolla così come l'ho scritto.


    Ora se io voglio prendere le ultime coordinate di ogni particella e farle diventare condizioni iniziali per un altra equazione differenziale mi basta scrivere

    for i=1:n

    y0=T(end,:,i)

    risolvi
    end

    giusto?
  • Yessss
  • Altra domanda:

    io a questo punto voglio selezionare le particelle e ammazzare quelle che non entrano nel diaframma, quindi faccio un if:

    x=T(end,1,i)
    if x>raggio
    uccidi la particella
    end

    come faccio a uccidere?
  • Mmm... mi stai chiedendo come uccidere una particella... (?!?!)
    (vuoi cancellare una riga dalla matrice?)
  • Sì.
    penso che se perdo una particella devo trasformare la matrice T(righe, colonne, particelle)
    in T(righe, colonne, particelle -1) però devo eliminare quella particella, non una acaso....
    e devo decrementare il contatore anche, quindi devo fare:

    for....
    ....

    if condizione è vera

    n=n-1
    T=

    end

    end (del for)

    questo ciclo lo devo fare all'interno del for, non a parte, giusto'?
  • Dovresti provare così:
    T(:,:,particella_da_uccidere)=[];
    poi decrementi il contatore:
    i=i-1
    considera che anche di questo (del cambio dell'indice del contatore all'interno del ciclo) matlab non sarà contentissimo, ma puoi farlo.
  • È incazzoso sto matlab....

    meglio che gli faccio fare un altro for con l'if di dentro...
  • Anzi, no, il contatore per continuare lo prendo dalla profondità di T
    meglio no?
  • Credo sia uguale.
  • Secondo me non funziona bene quello che ho fatto....
  • Perché?
  • Perchè non mi ammazza le particelle....
  • Secondo me devi prima provare "fuori" dal tuo codice.
    Fatti una matricina posticcia con le tre dimensioni e poi fai un ciclo che cancelli qualche riga... poi la adatti al resto del codice.
  • L'errore è prima, quando assegno T(:,:,i)=ys

    nel workspace mi rimane l'ultimo ys, ma in T non c'è niente uguale a ys
Devi accedere o registrarti per scrivere nel forum
473 risposte