Re: Calcoli con grandezze fisiche e unità di misura

From: Soviet_Mario <Soviet.Mario_at_CCCP.MIR>
Date: Wed, 02 Feb 2011 11:37:02 +0100

Il 02/02/2011 00:44, Tommaso Russo, Trieste ha scritto:
> Elio Fabri ha scritto:
>
>> Tommaso Russo ha scritto:

dunque, purtroppo lo stiamo perdendo ... :-)

CUT

>
>>> Basta imporre che gli argomenti di sin, cos, tang ecc. *debbano*
>>> essere grandezze fisiche esprimenti angoli e i loro output debbano
>>> essere invece numeri puri: mentre, al contrario, per asin, acos, atan
>>> ecc. si richiede che l'input debba essere un numero puro e l'output
>>> sara' invece un angolo.
>> Mai detto niente del genere!

peccato, mi sarebbe stato agevole da implementare

>
> No, no: *questo lo dico io*.


>> Per me gli argomenti delle funzioni citate *debbono essere numeri puri*.
>
> OK, e questa e' la tua posizione. Considerare solo funzioni analitiche
> R->R.

Houston abbiamo un problema. Quella scrittura non mi dice
niente. Anche il termine "applicazione" per me ha il solo
significato di "eseguibile", "programma"


> Io invece dico quanto sopra
>
> 1) per poter dare un significato a espressioni che trovo scritte spesso,
> come Sen(30�) oppure (piu' raro) Tan(pi/2 rad)

dunque, nel programma le scritture saranno di tipo in
apparenza solo matematico. Sin(X) e stop. Ma X avr�
associata una descrizione a parte, indipendente dall'uso
sintattico, come a dire dei metadati, che saranno
confrontati (match) coi tipi attesi per l'operatore
(unario), e il verdetto dipender� dal match o non match

Tratter� dimensionalmente i "gradi" sempre come angoli a
prescindere dall'unit� di misura. Potrei mettere un piccolo
convertitorino che trasforma il valore numerico di un angolo
in gradi in quello espresso in radianti, applicando la
costante PURA pigrecocentottantesimi

> (anche se chi scrive
> cosi' di solito lo scrive per rimarcare che l'argomento *non* e' dato in
> gradi). E' chiaro che chi le scrive non pensa ad un'applicazione R->R,
> ma piuttosto ad un operatore unario che associa ad ogni elemento
> dell'insieme degli angoli un numero in R.
>
> 2) perche' adottare (*sempre*) questa convenzione, in un programma per
> elaboratore come quello progettato da Soviet_Mario, consente
> un'ulteriore controllo di correttezza: se gli operatori unari che sta
> scrivendo Mario accettano in input una coppia (numero reale, unita' di
> misura) allora l'implementazione puo' verificare che l'input sia
> corretto (vedi sotto).

il senso � quello, ma sintatticamente non implemento coppie.
I metadati sono etichette visualizzabili solo a parte, in
una lista con elenco di dati (variabili, risultati, dati
iniziali ed accessori o intermedi). Ma nelle scritture di
calcolo i dati vengono visualizzati solo come numeri
(nemmeno come simboli, perch� non faccio un corso di
informatica e i ragazzi andrebbero in crash).

Il controllo che dici ovviamente si fa lo stesso, perch�
internamente il dato � rappresentato in molti modi : il
TESTO immesso, il VALORE acquisito a sistema (non
necessariamente uguale, ma solo il pi� vicino
approssimabile), le unit� di misura, un fattore di scala (se
si usano prefissi e suffissi moltiplicatori, tipo mL kg mm
km etc). Questi ultimi, essendo solo fattori adimensionali,
al momento del calcolo vengono inglobati nel valore, senza
problemi

>
>
>>> L'espressione analitica di, p.es., sin(a) (dove a e' la *grandezza
>>> fisica* angolo, non il numero reale x) sara' allora
>>>
>>> sin(a) = a/1rad - (a/1rad)^3/3! + (a/1rad)^5/5! ...
>>>
>>> ovviamente, se a e' misurato in gradi, a 1 rad bisogna sostituire
>>> (180/pi)�.
>> Invece secondo me si puo' scrivere "sin(a)" solo se "a" e' un numero
>> puro, quindi non un angolo.
>> Secondo me andrebbe introdotta una costante universale, con la
>> dimensione di un angolo, che chiamo rho: la sua misura e' 1 rad.
>> Se "a" e' un angolo, si dovrebbe quindi scrivere sin(a/rho).
>
> Alla fine arriviamo alla stessa formula. La differenza e' che per me
> Sen(a) (maiuscola per distinguerlo da sin) e' un'applicazione {a:a e' un
> angolo} -> R, mentre per te sin(x) e' R->R.

E qui l'abbiamo perso (io).
Concretamente devo implementare un'unica scrittura per le
funzioni, che siano analitiche, trascendenti o quel che si
vuole, ma devo scrivere un "coso" usabile da studenti anche
e soprattutto sin dalla prima (cio� il momento in cui perdi
l'occasione di imparare che controllare le dimensioni � una
cosa importante)

> Quindi Sen(a) = sin(a/rho)
> (io ho scritto 1rad al posto di rho, intendendo la stessa cosa). La tua
> visione parte dal presupposto che sin sia una funzione R->R; io sarei
> piu' elastico.
>
> Al posto di Mario definirei quattro funzioni (o una funzione con quattro
> tipi di input ammessi):
>
> Sen(x,1) = sin(x) (R->R)
> Sen(x,rad) = sin(x/1) (angoli in radianti->R)
> Sen(x,�) = sin(x*pi/180.00) (angoli in gradi->R)
> Sen(x,gon) = sin(x*pi/200.00) (angoli in gradi centesimali->R)
> Sen(x,qualsiasi altra cosa) -> errore.

Allora, cio' che scrivi dopo la virgola sar� nascosto nei
metadati e visibile solo nella scheda del DATO.
Cmq ... ,1 cosa significa ? � un numero puro ?
tutti gli angoli sono convertiti a rad.

in definitiva che faccio, accetto come argomenti SIA angoli
SIA numeri puri (e la funzione mi caccia fuori lo stesso
valore numerico) ? Diciamo di si. E il valore che esce � un
numero puro sempre ? Su questo si � raggiunto l'accordo ?



> ...
CUT pendolo

>
> infatti: per questo mi lasciano in dubbio i problemi risolti con
> l'analisi dimensionale rivolti ai principianti o al largo pubblico, mi
> sembra dicano: "vedete com'e' facile?" quando non lo e'.
>
Dunque, non so, ma non mi pare che questo controllo
dimensionale che devo fare coincida con l'analisi
dimensionale. Diciamo solo che i ragazzi devono usare
formule, non inventate da loro, ma date per buone, e
nell'infilarci dentro gli opportuni valori devono stare
attenti a che i dati abbiano le dimensioni attese. Questo
dovrebbe potersi fare.

P.S. dolorosamente osservo che la mia antica spina nel
fianco dei logaritmi dimensionali e le costanti di
equilibrio sono cascate nel vuoto.
Ora vi pregherei di darmi qualche parere. Ho il timore che
molti abbiano eccome delle opinioni, ma non si vogliano
esporre. Non credo che questo costituisca reato anche quando
non sia condivisa o universalmente accettata, lol.
Cio� mica � un lavoro scientifico. Devo solo fare delle
scelte sui controlli da fare, ma alla fine � un programma
didattico e qualche forzatura (spero la migliore grazie a
voi) la devo pur fare per rendere le cose commestibili ai
ragazzi.

Mi autocito e rilancio un sample che avevo messo in un post
di risposta a Giorgio Pastore :

<QUOTE>

Ah ... per� rimane da chiarire il discorso dei logaritmi
delle costanti di equilibrio, che sono funzioni delle conc.
molari. Anche ammettendo che le moli siano adimensionali (e
non lo ammetto cmq), resta il fatto che ci siano al denom.
dei volumi, e quelli adimensionali non lo sono di sicuro.

Es.

4 NH3 + 3 O2 --> 2 N2 + 6 H2O

Keq = [N2]2 + [H2O]6 / [NH3]4 + [O2]3
[Keq] = [mol/L]^((6+2)-(4+3)) = [mol/L]1

Ln(Keq) = -DG�/RT

il secondo membro � adimensionale
il primo DEVE diventarlo
l'argomento del logaritmo non lo � ...
che azz��_at_@##??!! succede ?

</QUOTE>

E anche se non ho voglia di indagare troppo, ho il sospetto
che non sia il solo caso di questo problema.

Diamo quindi per tacito che per trigonometriche dirette
possa accettare in input angoli (convertiti a rad) e numeri
puri, e che l'output (lo ammetto, per me sorprendentemente)
sia sempre adimensionale a prescindere (� proprio questa
invarianza nell'output con input dimensionalmente diversi
che mi perplime ... Tommaso Russo definisce due distinte
serie, una italica con la maiuscola, l'altra latina (?) con
la minuscola, ma non � una strada percorribile). Dovendo
implementare una sola serie mi regolo come segue. Alla fine
basta dichiararlo, la responsabilit� � mia.

Con le trig. inverse accetto in input solo numeri puri, e
come output ho SEMPRE angoli. Anche qui ok, faccio cos�,
anche se dentro non mi sembra l'esatto inverso di sopra,
perch� mi aspetterei un possibile duplice output, o angolo o
adimensionale (quando l'uno e quando l'altro trascende la
mia fantasia cmq ... non mi piace la non simmetria di
comportamento, tutto qui).

Con le iperboliche non ho capito troppo bene. Tantomeno con
le loro inverse.

Come dicevo mi resta anche la spina nel fianco dei logaritmi
ed esponenziali, perch� mi pare che esista almeno una
formula (tra l'altro un pilastro della termodinamica, la
legge di Guldberg Waage) che "pare" (dico pare per cautela,
ma a me sembra certo) avere dei logaritmi con argomento
dimensionato.

Uffi
Ciao e grazie del vespaio (che non pensavo di sollevare)
Soviet
Received on Wed Feb 02 2011 - 11:37:02 CET

This archive was generated by hypermail 2.3.0 : Fri Nov 08 2024 - 05:10:30 CET