[MatLab] sistemi

dRic
Salve io ho questo codice molto semplice:

function f = portate(lv)

    global x y z F
    
    f(1) = F*z(1) - lv(1)*x(1) - lv(2)*y(1);
    f(2) = F - lv(1) - lv(2);

end


che "chiamo" con

 soluzioni = fsolve(@portate, x0) 


lv(1) e lv(2) hanno dei significati fisici particolare ed è per questo che non posso permettermi di confonderle. In particolare lv(1) è la portata di un liquido e lv(2) è la portata di un vapore. Quando chiamo fsolve che mi restituisce il vettore "soluzioni" come faccio a capire se soluzione(1) = lv(1) o solzione(1) = lv(2) ?? Mi sono riuscito a spiegare?

Grazie in anticipo

Risposte
apatriarca
Mi dispiace ma non ho capito che cosa stai cercando di fare.. lv(1) e lv(2) cambiano ad ogni chiamata di portate e così come vedo il codice direi che è sempre soluzione(1) = lv(1) e soluzione(2) = lv(2). Mi sto perdendo qualcosa?

dRic
Io non so bene come funzioni MatLab... studio ingegneria e non ho mai avuto un esame di programmazione e quindi ho copiato qua e là esempi di esercizi per capire un po' qualcosa. Non ho ben capito con che concetto il vettore soluzione è associato al vettore f della funzione. Volevo solo conferma di questo, anche se è una stupidaggine, perché in un problema del genere non avevo modo di capire "a ragionamento" se i risultati si riferissero al fluido o al vapore. In porche parole se lv(1) per me è il fluido allora soluzione(1) corrisponderà al valore finale di lv(1) (fluido), giusto?

dRic
Cioè, non è che per caso soluzione(1) può essere il valore finale di lv(2) e quindi riferirsi al vapore??

apatriarca
fsolve trova un vettore soluzioni per cui portate(soluzioni) = 0. Le componenti non cambiano: la prima componente della soluzione corrisponderà alla prima componente passata alla funzione, la seconda alla seconda e così via..

dRic
Ok perfetto, grazie mille. Ero molto titubante su questo argomento e non sapevo mai se i risultati fosse corretti o invertiti!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.