Jump to content

KAlgebra/Homework/it: Difference between revisions

From KDE Wiki Sandbox
Caig (talk | contribs)
Importing a new version from external source
Caig (talk | contribs)
No edit summary
 
(65 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages />
<languages />
Questa pagina mostra alcuni utilizzi di '''KAlgebra''' in problemi reali. \
Questa pagina mostra alcuni utilizzi di '''KAlgebra''' in problemi reali.


== Combinatorial example==
== Esempio di calcolo combinatorio ==


We have 6 people who want to know how to get around a table with 6 chairs.
Abbiamo 6 persone che vogliono sapere come mettersi attorno a un tavolo con 6 sedie.


We know that 6 people can get around the table with this configuration
Sappiamo che le 6 persone possono posizionarsi attorno al tavolo in questa configurazione:


:{|  
:{|  
Line 18: Line 18:
|}
|}


And so on.
E così via.


We notice that the last item rotates its position by 1, the fifth rotates position by 2, the fourth rotates position by 3, the third rotates position by 4, the second rotates position by 5 and first rotates position by 6. So we can write down a simple formula:
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:


{{Input | 1=6*5*4*3*2*1}}
{{Input | 1=6*5*4*3*2*1}}


Let's write this into '''KAlgebra''' console, and the answer returned is:
Scriviamola nella console di '''KAlgebra''' e la risposta in uscita sarà:
{{Output | 1=<nowiki>(((((1)*2)*3)*4)*5)*6
{{Output | 1=<nowiki>(((((1)*2)*3)*4)*5)*6
=720</nowiki>}}       
=720</nowiki>}}       


This kind of arrangement of things around some position, where the position number is equal to the number of things, is called "permutation".
Questo modo di organizzare le cose spostandole di alcune posizioni, in cui il numero della posizione è uguale al numero delle cose stesse, è chiamato "permutazione".


Let's try to call in '''KAlgebra''' the permutation function:
Proviamo a calcolare in '''KAlgebra''' la funzione di permutazione:


{{Input|1=factorial(6)}} and we get
{{Input|1=factorial(6)}} e otteniamo
{{Output|1=<nowiki>factorial(6)
{{Output|1=<nowiki>factorial(6)
=720</nowiki>}}
=720</nowiki>}}


It's the same result as you can see.
Come puoi vedere è lo stesso risultato.


==Probability example ==
==Esempio di calcolo della probabilità==


Let's roll a dice. We want to know the probability of one face appearing.
Lanciamo un dado. Vogliamo sapere la probabilità di ottenere un certo numero.
        
        
We can define positive probability, the result of the event being favourable to us, and negative probability, the result of the event being unfavourable to us.
Possiamo definire probabilità positiva il risultato dell'evento a noi favorevole e probabilità negativa il risultato sfavorevole.


So you have to pick only one face:
Devi quindi scegliere una sola faccia del dado:


:probability = face picked / total face = 1/6
:probabilità = faccia scelta / facce totali = 1/6


So now we know that when a dice is rolled there is a 1/6 of probability that a face we chose will come up.
Ora quindi sappiamo che quando lanciamo un dado c'è 1/6 di probabilità di ottenere la faccia che abbiamo scelto.


We can set a simple function in '''KAlgebra''' to take this formula in a simple way:
Possiamo impostare una semplice funzione in '''KAlgebra''' per prendere questa formula in modo facile:


{{Input|1=<nowiki>probability:=(favorable,total)->favorable/total</nowiki>}}
{{Input|1=<nowiki>probabilità:=(favorevole,totale)->favorevole/totale</nowiki>}}


== Numerical Theory ==
== Teoria dei numeri ==


Let's say that we want to know the sum of all numbers between a bounded interval, for instance 1 - 100. We have to do the sum of all numbers from 0 to 100 if we don't know the rule to get them.
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''' offers a great facility to this task. Let's write in console:
'''KAlgebra''' offre un'ottima semplificazione per questa operazione. Scriviamo nella console:


{{Input|1= sum(x: x=1..100)}}
{{Input|1= sum(x: x=1..100)}}
      
      
and we get the result:
e otteniamo il risultato:
{{Output|1=<nowiki>sum(x: x=1..100)
{{Output|1=<nowiki>sum(x: x=1..100)
= 5050</nowiki>}}
= 5050</nowiki>}}


The syntax indicate this:
La sintassi indica questo:


:1. Bound x as variable
:1. Limite x come variabile
:2. Take first value of x
:2. Prendere il primo valore di x
:3. Take second value of x and add the previous value of x
:3. Prendere il secondo valore di x e aggiungere il precedente
:4. Take third value of x and add the previous value of x
:4. Prendere il terzo valore di x e aggiungere il precedente
::...
::...
:N. Take the last value of x and add the last value of x
:N. Prendere l'ultimo valore di x e aggiungere l'ultimo.


== Electronic ==
== Elettronica ==


===Example 1===
===Esempio 1===


Let's take a simple circuit a and port with two inputs and one output. To resolve it in '''KAlgebra''' we will write
Prendiamo una semplice porta AND con due ingressi e un'uscita. Per risolverlo in '''KAlgebra''' scriveremo:


{{Input|1=and(variable1, variable2)}}
{{Input|1=and(variabile1, variabile2)}}


from which we will get the and value of the input as output.
da cui otterremo come risultato il valore and di ingresso.


===Example 2===
===Esempio 2===
    
    
We have a simple circuit: a battery of 3V and two electrical resistances (R1 and R2) put on parallel of 3kOhm. We want to get the current circulating in the circuit.
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.


We have first to calculate the value of the electric resistance expressed according to the law:
Dobbiamo prima calcolare il valore della resistenza elettrica espressa secondo la legge:


:TotalResistance = (1/R1 + 1/R2)^-1
:ResistenzaTotale = (1/R1 + 1/R2)<sup>-1</sup>
:Current = Voltage/TotalResistance
:Attuale = Voltaggio/ResistenzaTotale


Let's write a simple function in '''KAlgebra''' to do this:
Scriviamo una semplice funzione in '''KAlgebra''' per farlo:


{{Input|1=totalresistance:=(R1,R2)->(1/R1+1/R2)^-1
{{Input|1=resistenzatotale:=(R1,R2)->(1/R1+1/R2)^-1
current:=(voltage,totalresistance)->voltage/totalresistance}}
attuale:=(voltaggio,resistenzatotale)->voltaggio/resistenzatotale}}


Let's see what we get:
Vediamo che otteniamo:
{{Input|1=current(3, totalresistance(3000, 3000))}}
{{Input|1=attuale(3, resistenzatotale(3000, 3000))}}
{{Output|1=<nowiki>current(3, totalresistance(3 000, 3 000))
{{Output|1=<nowiki>attuale(3, resistenzatotale(3 000, 3 000))
= 0,002</nowiki>}}
= 0,002</nowiki>}}




==Fluid==
==Fluidi==


===Example Problem with Same Material, but Different Volumes and Temperatures===
===Esempio di problema con stesso materiale, ma differenti volumi e temperature===


Now, what if we need to know the final temperature when we mix  40L of 15°C water with 30L of 70°C water?
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?
Using conservation of energy, we know that the initial and final thermal energies are the same, so the final energy is equal to the energy of the first fluid plus the energy of the second fluid(using U for internal energy):<br>
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):<br />
:U(final) = U1 + U2
:U<sub>finale</sub> = U1 + U2


Internal energy is equal to the volumetric heat capacity times volume times temperature:<br>
L'energia interna è uguale alla capacità termica del volume per il volume e per la temperatura:<br />
:U = C*V*T
:U = C*V*T


So C(final)*V(final)*T(final) = C1*V1*T1 + C2*V2*T2
Dunque C<sub>finale</sub>*V<sub>finale</sub>*T<sub>finale</sub> = C1*V1*T1 + C2*V2*T2


And since the heat capacities are all the same and cancel out, and the final volume is the sum of the two initial volumes:<br>
E dato che le capacità termiche sono tutte le stesse e si annullano e che il volume finale è la somma dei due volumi iniziali:<br />
:(V1+V2)*T(final) = V1*T1 + V2*T2
:(V1+V2)*T<sub>finale</sub> = V1*T1 + V2*T2
::or
::o
:T(final) = (V1*T1 + V2*T2)/(V1+V2)
:T<sub>finale</sub> = (V1*T1 + V2*T2)/(V1+V2)


We can then either use this directly in KAlgebra:
Possiamo quindi utilizzare questa direttamente in '''KAlgebra''':
{{Input |<nowiki>(40*15 + 30*70)/(40 + 30)
{{Input |<nowiki>(40*15 + 30*70)/(40 + 30)
</nowiki>}}
</nowiki>}}
{{Output |<nowiki>(40*15+30*70)/(40+30)
{{Output |<nowiki>(40*15+30*70)/(40+30)
=38.5714</nowiki>}}
=38.5714</nowiki>}}
and get the final temperature, or put in a function if we need to repeat the computation:
ed ottenere la temperatura finale o metterla in una funzione se abbiamo bisogno di ripetere il calcolo:
{{Input |<nowiki>finalTemp:=(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>}}


===Example Problem with Different Fluids===
===Esempio di problema con diversi fluidi===


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).
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).
We will need to refer back to the equation:<br />
Avremo bisogno di riprendere l'equazione:<br />
:C(final)*V(final)*T(final) = C1*V1*T1 + C2*V2*T2
:C<sub>finale</sub>*V<sub>finale</sub>*T<sub>finale</sub> = 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):<br />
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):<br />
:C(final) = (C1*V1 + C2*V2)/V(final)
:C<sub>finale</sub> = (C1*V1 + C2*V2)/V<sub>finale</sub>


And plugging this into the previous equation, we get:<br />
E collegando questo nell'equazione precedente otteniamo:<br />
:(C1*V1 + C2*V2)*T(final) = C1*V1*T1 + C2*V2*T2
:(C1*V1 + C2*V2)*T<sub>finale</sub> = C1*V1*T1 + C2*V2*T2
::or
::o
:T(final) = (C1*V1*T1 + C2*V2*T2)/(C1*V1 + C2*V2)
:T<sub>finale</sub> = (C1*V1*T1 + C2*V2*T2)/(C1*V1 + C2*V2)


And either use this formula directly:
E utilizzando questa formula direttamente:
{{Input |<nowiki>(4180*40*15 + 1925*30*70)/(4180*40+1925*30)
{{Input |<nowiki>(4180*40*15 + 1925*30*70)/(4180*40+1925*30)
</nowiki>}}
</nowiki>}}
Line 157: Line 157:
=29.1198</nowiki>}}
=29.1198</nowiki>}}


Or write a function if we want to repeat the calculation:
Oppure scriviamo una funzione se vogliamo ripetere il calcolo:
{{Input |<nowiki>finalTemp2:=(c1,v1,t1,c2,v2,t2)->(c1*v1*t1 + c2*v2*t2)/(c1*v1+c2*v2)
{{Input |<nowiki>TemperaturaFinale2:=(c1,v1,t1,c2,v2,t2)->(c1*v1*t1 +c2*v2*t2)/(c1*v1+c2*v2)
</nowiki>}}
</nowiki>}}


Which we can then use like this:
Che possiamo poi utilizzare così:
{{Input |<nowiki>finalTemp2(4180,40,15,1925,30,70)
{{Input |<nowiki>TemperaturaFinale2(4180,40,15,1925,30,70)
</nowiki>}}
</nowiki>}}
{{Output |<nowiki>finalTemp2(4,180, 40, 15, 1,925, 30, 70)
{{Output |<nowiki>TemperaturaFinale2(4,180, 40, 15, 1,925, 30, 70)
=29.1198</nowiki>}}
=29.1198</nowiki>}}
Screenshot of '''KAlgebra''' after running these computations:
Schermata di '''KAlgebra''' dopo aver eseguito questi calcoli:
[[Image:KAlgebra-Fluids-Example-Screenshot.png|400px|center]]
[[Image:KAlgebra-Fluids-Example-Screenshot.png|400px|center]]


[[Category:Education]]
[[Category:Istruzione/it]]

Latest revision as of 14:15, 30 July 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):

Ufinale = U1 + U2

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

U = C*V*T

Dunque Cfinale*Vfinale*Tfinale = 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)*Tfinale = V1*T1 + V2*T2
o
Tfinale = (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:

Cfinale*Vfinale*Tfinale = 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):

Cfinale = (C1*V1 + C2*V2)/Vfinale

E collegando questo nell'equazione precedente otteniamo:

(C1*V1 + C2*V2)*Tfinale = C1*V1*T1 + C2*V2*T2
o
Tfinale = (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: