Equazioni differenziali a coefficienti non costanti

di il
473 risposte

473 Risposte - Pagina 20

  • Re: Equazioni differenziali a coefficienti non costanti

    giug ha scritto:


    Sì, numerate da 1 a 5, poi Coll e poi Sorgente
    dovrebbero essere giuste.
  • Re: Equazioni differenziali a coefficienti non costanti

    Nello script che ti ho mandato ho messo gli angoli uguali a zero e passa tutto, si vedono bene i tre fascetti.
    Quindi potrebbe esserci una ragione fisica per cui non passano se dò una certa divergenza angolare, solo che non so se la mia idea è realistica o no. Devo parlarne con qualcuno...
  • Re: Equazioni differenziali a coefficienti non costanti

    A chi le hai mandate? a me non è arrivato niente...
  • Re: Equazioni differenziali a coefficienti non costanti

    giug ha scritto:


    A chi le hai mandate? a me non è arrivato niente...
    a nessuno, avevo dimenticato di inviare.

    Puoi controllare anche un'altra cosa:
    forse c'è un errore verso la 79, dove calcolo le proiezioni della velocità.
    
    for i=1:n              
             K_ion=normrnd(Ein_s,Ein_s/10);
             Etot_ion(i)=K_ion+((m_ions*uma1)/uma);  % ho tutto in MeV
             betasquare_ion(i)=1-(((m_ions*uma1)/(uma*Etot_ion(i)))^2);
             v_ion(i)=sqrt(betasquare_ion(i)*c^2);
                      
             %angular spread  
             %A = -0.0575; B = 0.0575;
             
             %A=-0.08; B=0.08;
             A=0; B=0;
             angolo = A + (B-A) * rand(1); %random number in [A,B]
             
             teta=angolo; %angolo nel piano zy
             fi=angolo; %angolo con l'asse x
                      
             %%%%Componente z della velocità
             v_z= v_ion*cosd(teta)*cosd(fi);
              
             %calcolo la componente x              
             v_x= v_ion*sind(teta);
             
              %calcolo la componente y 
              v_y=v_ion*cosd(teta)*sind(fi);
    
    non dovrebbe essere v_z(i)=v_ion(i)*...
    e cosìper le altre due?
  • Re: Equazioni differenziali a coefficienti non costanti

    Probabilmente v_ion(i) sì, perché un vettore... quindi tu vuoi moltiplicare per l'i-esimo elemento.
    il v_z invece non è necessario, perché se non ti interessa "salvarlo" perché è una variabile intermedia, non c'è bisogno che ti costruisci il vettore. Di volta in volta viene sovrascritto il numero e basta.
  • Re: Equazioni differenziali a coefficienti non costanti

    Allora, per il plot credo che tutti i problemi derivino dalla cmap.
    Adesso sono un po' a corto di fantasia, quindi non mi viene in mente niente di meglio di questo (da mettere alla riga 477:
    j=1;
        for i = 1:3:length(a)
        set(a(i),'Color', cmap(j,:));
        j=j+1;
        end
  • Re: Equazioni differenziali a coefficienti non costanti

    giug ha scritto:


    Probabilmente v_ion(i) sì, perché un vettore... quindi tu vuoi moltiplicare per l'i-esimo elemento.
    il v_z invece non è necessario, perché se non ti interessa "salvarlo" perché è una variabile intermedia, non c'è bisogno che ti costruisci il vettore. Di volta in volta viene sovrascritto il numero e basta.

    Se gli dico v_ion(i) si incazza, ora mi ricordo... dice:
    "??? Error using ==> horzcat
    CAT arguments dimensions are not consistent."

    invece per come è adesso v_z e gli altri li fa vettori.
    Con divergenza angolare nulla, il vettore v_ion = v_z e v_x=v_y=0, come dovrebbe essere, quindi, per qualche strano motivo è giusto.
  • Re: Equazioni differenziali a coefficienti non costanti

    giug ha scritto:


    Allora, per il plot credo che tutti i problemi derivino dalla cmap.
    Adesso sono un po' a corto di fantasia, quindi non mi viene in mente niente di meglio di questo (da mettere alla riga 477:
    j=1;
        for i = 1:3:length(a)
        set(a(i),'Color', cmap(j,:));
        j=j+1;
        end
    cosa è a?

    ho capito, è questo:
    a=get(l, 'children');
  • Re: Equazioni differenziali a coefficienti non costanti

    1keenan ha scritto:


    ho capito, è questo:
    a=get(l, 'children');
    Esatto.
  • Re: Equazioni differenziali a coefficienti non costanti


    Traiettoria fascio con 3 stati di carica senza divergenza angolare
    Traiettoria fascio con 3 stati di carica senza divergenza angolare

    Grandiosa giug, sei la numero 1.
    Grazie.
    C'è solo che la i colori li mette al contrario...

    Ti faccio vedere il risultato in allegato.

    Mi avevi scritto qualcosa di simile quando volevo mantenere fisse le dimensioni degli asterischi nella legenda...
    Allegati:
    Sul rivelatore
    Sul rivelatore
  • Re: Equazioni differenziali a coefficienti non costanti

    1keenan ha scritto:




    C'è solo che la i colori li mette al contrario...
    Ho sistemato così:
    
        l=legend(legendtext, 'Location', 'NorthEast'); 
        a=get(l, 'children');
        j=s;
        for i = 1:3:length(a)
            set(a(i),'Color', cmap(j,:));
            j=j-1;
        end
        set(a(1:3:end),'MarkerSize', 10);
    % %     
    
  • Re: Equazioni differenziali a coefficienti non costanti

    1keenan ha scritto:


    Se gli dico v_ion(i) si incazza, ora mi ricordo... dice:
    "??? Error using ==> horzcat
    CAT arguments dimensions are not consistent."

    invece per come è adesso v_z e gli altri li fa vettori.
    Con divergenza angolare nulla, il vettore v_ion = v_z e v_x=v_y=0, come dovrebbe essere, quindi, per qualche strano motivo è giusto.
    Allora, non so se il risultato è equivalente, o se come stai facendo accumuli qualche errore... perché dal punto di vista del codice non va tanto bene... sembra un errore.
    horzcat vuol dire che non riesce a fare la concatenazione orizzontale, perché a questo punto r0 è una matrice mentre v0 un vettore riga.
    Quindi:
    r0=zeros(1,3);
    cioè non devi inizializzare la matrice con tutti zeri, ma solo la riga corrente.
    E poi, dato che y0 così è diventato un vettore devi cambiare anche questa, togliendo l'indicizzazione a y_sorgente:
    [t,ys] = ode23t(f,tspan,y_sorgente,options);

    Vedi se ti fila...
  • Re: Equazioni differenziali a coefficienti non costanti

    Sembra che fili, però non so se ci sono differenze, almeno non apparenti.
    In ogni caso quello che dici tu per me è vangelo, maestra, quindi correggo e sono più sicuro
  • Re: Equazioni differenziali a coefficienti non costanti

    Controlla di avere lo stesso risultato prima... concettualmente mi sembra che sia più corretto.
  • Re: Equazioni differenziali a coefficienti non costanti

    Effettivamente qualcosa cambia.
    Faccio una matrice dove salvo le traiettore e poi le confronto tra quelle fatte con i due metodi...
    c'è un modo più corretto per verificare sta cosa?
Devi accedere o registrarti per scrivere nel forum
473 risposte