KAlgebra/Homework/it: Difference between revisions
No edit summary |
No edit summary |
||
Line 83: | Line 83: | ||
{{Input|1=and(variabile1, variabile2)}} | {{Input|1=and(variabile1, variabile2)}} | ||
da cui otterremo come risultato il valore and di ingresso. | |||
da cui otterremo come risultato il valore di ingresso. | |||
===Esempio 2=== | ===Esempio 2=== |
Revision as of 16:35, 29 April 2011
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 una semplice porta AND con due ingressi e un'uscita. Per risolverlo in KAlgebra scriveremo:
and(variabile1, variabile2)
da cui otterremo come risultato il valore and 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
Esempio di problema con diversi fluidi
Ora supponiamo che due fluidi abbiano differenti capacità termiche per volume come 4180 J/(L*K) per il primo liquido(acqua) e 1925 J/(L*K) per il secondo (etanolo).
Avremo bisogno di riprendere l'equazione:
- C(finale)*V(finale)*T(finale) = C1*V1*T1 + C2*V2*T2
La capacità termica risultante sarà la media delle capacità del primo e del secondo fluido, ponderata per il volume(dato che si tratta di capacità termica per volume piuttosto che di quella specifica per la massa o per le moli):
- C(finale) = (C1*V1 + C2*V2)/V(finale)
E collegando questo nell'equazione precedente otteniamo:
- (C1*V1 + C2*V2)*T(finale) = C1*V1*T1 + C2*V2*T2
- o
- T(finale) = (C1*V1*T1 + C2*V2*T2)/(C1*V1 + C2*V2)
E utilizzando questa formula direttamente:
(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
Oppure scriviamo una funzione se vogliamo ripetere il calcolo:
TemperaturaFinale2:=(c1,v1,t1,c2,v2,t2)->(c1*v1*t1 +c2*v2*t2)/(c1*v1+c2*v2)
Che possiamo poi utilizzare così:
TemperaturaFinale2(4180,40,15,1925,30,70)
TemperaturaFinale2(4,180, 40, 15, 1,925, 30, 70) =29.1198
Schermata di KAlgebra dopo aver eseguito questi calcoli: