KAlgebra/Homework/it: Difference between revisions

    From KDE UserBase Wiki
    (Importing a new version from external source)
    (Importing a new version from external source)
    Line 141: Line 141:
    {{Input |<nowiki>TemperaturaFinale:=(v1,t1,v2,t2)->(v1*t1 + v2*t2)/(v1+v2)</nowiki>}}
    {{Input |<nowiki>TemperaturaFinale:=(v1,t1,v2,t2)->(v1*t1 + v2*t2)/(v1+v2)</nowiki>}}


    Which we can then use like this:
    Che possiamo poi utilizzare così:
    {{Input |<nowiki>finalTemp(40,15,30,70)
    {{Input |<nowiki>TemperaturaFinale(40,15,30,70)
    </nowiki>}}
    </nowiki>}}
    {{Output |<nowiki>finalTemp(40, 15, 30, 70)
    {{Output |<nowiki>TemperaturaFinale(40, 15, 30, 70)
    =38.5714</nowiki>}}
    =38.5714</nowiki>}}



    Revision as of 18:48, 28 April 2011

    Other languages:

    Questa pagina mostra alcuni utilizzi di KAlgebra in problemi reali. \

    Esempio di calcolo combinatorio

    Abbiamo 6 persone che vogliono sapere come mettersi attorno a un tavolo con 6 sedie.

    Sappiamo che le 6 persone possono posizionarsi attorno al tavolo in questa configurazione:

    p1 p2 p3 p4 p5 p6
    p1 p2 p3 p4 p6 p5
    p1 p2 p3 p5 p4 p6
    p1 p2 p3 p5 p6 p4

    E così via.

    Notiamo che l'ultimo elemento si sposta di 1, il quinto di 2, il quarto di 3, il terzo di 4, il secondo di 5 e il primo di 6. Possiamo quindi scrivere una semplice formula:

    6*5*4*3*2*1

    Scriviamola nella console di KAlgebra e la risposta in uscita sarà:

    (((((1)*2)*3)*4)*5)*6
    =720

    Questo modo di organizzare le cose spostandole di alcune posizioni, in cui il numero della posizione è uguale al numero delle cose stesse, è chiamato "permutazione".

    Proviamo a calcolare in KAlgebra la funzione di permutazione:

    factorial(6)

    e otteniamo

    factorial(6)
    =720

    Come puoi vedere è lo stesso risultato.

    Esempio di calcolo della probabilità

    Lanciamo un dado. Vogliamo sapere la probabilità di ottenere un certo numero.

    Possiamo definire probabilità positiva il risultato dell'evento a noi favorevole e probabilità negativa il risultato sfavorevole.

    Devi quindi scegliere una sola faccia del dado:

    probabilità = faccia scelta / facce totali = 1/6

    Ora quindi sappiamo che quando lanciamo un dado c'è 1/6 di probabilità di ottenere la faccia che abbiamo scelto.

    Possiamo impostare una semplice funzione in KAlgebra per prendere questa formula in modo facile:

    probabilità:=(favorevole,totale)->favorevole/totale

    Teoria dei numeri

    Diciamo che vogliamo sapere la somma di tutti i numeri compresi in un dato intervallo, per esempio 1 - 100. Dobbiamo sommare tutti i numeri da 0 a 100 se non conosciamo la regola.

    KAlgebra offre un'ottima semplificazione per questa operazione. Scriviamo nella console:

    sum(x: x=1..100)

    e otteniamo il risultato:

    sum(x: x=1..100)
    = 5050

    La sintassi indica questo:

    1. Limite x come variabile
    2. Prendere il primo valore di x
    3. Prendere il secondo valore di x e aggiungere il precedente
    4. Prendere il terzo valore di x e aggiungere il precedente
    ...
    N. Prendere l'ultimo valore di x e aggiungere l'ultimo.

    Elettronica

    Esempio 1

    Prendiamo un semplice circuito con due ingressi e un'uscita. Per risolverlo in KAlgebra scriveremo:

    and(variabile1, variabile2)

    da cui otterremo come risultato il valore di ingresso.

    Esempio 2

    Abbiamo un semplice circuito: una batteria da 3V e due resistenze da 3kOhm (R1 e R2) messe in parallelo. Vogliamo conoscere la corrente che passa nel circuito.

    Dobbiamo prima calcolare il valore della resistenza elettrica espressa secondo la legge:

    ResistenzaTotale = (1/R1 + 1/R2)^-1
    Attuale = Voltaggio/ResistenzaTotale

    Scriviamo una semplice funzione in KAlgebra per farlo:

    resistenzatotale:=(R1,R2)->(1/R1+1/R2)^-1
    attuale:=(voltaggio,resistenzatotale)->voltaggio/resistenzatotale

    Vediamo che otteniamo:

    attuale(3, resistenzatotale(3000, 3000))
    attuale(3, resistenzatotale(3 000, 3 000))
    = 0,002


    Fluidi

    Esempio di problema con stesso materiale, ma differenti volumi e temperature

    Ora che facciamo se abbiamo bisogno di sapere la temperatura finale quando mescoliamo 40L di acqua a 15°C con 30L di acqua a 70°C? Tenendo conto della conservazione dell'energia sappiamo che le energie termiche iniziali e finali sono le stesse, dunque l'energia finale è uguale all'energia del primo fluido più l'energia del secondo (utilizzando U per l'energia interna):

    U(finale) = U1 + U2

    L'energia interna è uguale alla capacità termica del volume per il volume e per la temperatura:

    U = C*V*T

    Dunque C(finale)*V(finale)*T(finale) = C1*V1*T1 + C2*V2*T2

    E dato che le capacità termiche sono tutte le stesse e si annullano e che il volume finale è la somma dei due volumi iniziali:

    (V1+V2)*T(finale) = V1*T1 + V2*T2
    o
    T(finale) = (V1*T1 + V2*T2)/(V1+V2)

    Possiamo quindi utilizzare questa direttamente in KAlgebra:

    (40*15 + 30*70)/(40 + 30)
    
    (40*15+30*70)/(40+30)
    =38.5714

    ed ottenere la temperatura finale o metterla in una funzione se abbiamo bisogno di ripetere il calcolo:

    TemperaturaFinale:=(v1,t1,v2,t2)->(v1*t1 + v2*t2)/(v1+v2)

    Che possiamo poi utilizzare così:

    TemperaturaFinale(40,15,30,70)
    
    TemperaturaFinale(40, 15, 30, 70)
    =38.5714

    Example Problem with Different Fluids

    Now, suppose the two fluids have different volumetric heat capacities, such as 4180 J/(L*K) for the first liquid (water), and 1925 J/(L*K) for the second liquid (ethanol). We will need to refer back to the equation:

    C(final)*V(final)*T(final) = C1*V1*T1 + C2*V2*T2

    The resultant heat capacity will be the average of the capacities of the first and second fluids, weighted by volume(since it is a volumetric heat capacity rather than mass- or molar-specific):

    C(final) = (C1*V1 + C2*V2)/V(final)

    And plugging this into the previous equation, we get:

    (C1*V1 + C2*V2)*T(final) = C1*V1*T1 + C2*V2*T2
    or
    T(final) = (C1*V1*T1 + C2*V2*T2)/(C1*V1 + C2*V2)

    And either use this formula directly:

    (4180*40*15 + 1925*30*70)/(4180*40+1925*30)
    
    ((4,180*40)*15+(1,925*30)*70)/(4,180*40+1,925*30)
    =29.1198

    Or write a function if we want to repeat the calculation:

    finalTemp2:=(c1,v1,t1,c2,v2,t2)->(c1*v1*t1 + c2*v2*t2)/(c1*v1+c2*v2)
    

    Which we can then use like this:

    finalTemp2(4180,40,15,1925,30,70)
    
    finalTemp2(4,180, 40, 15, 1,925, 30, 70)
    =29.1198

    Screenshot of KAlgebra after running these computations: