Discussione:
Calcolare i valori intermedi di una "curva"
(troppo vecchio per rispondere)
-= Luca =-
2007-12-08 10:40:51 UTC
Permalink
Ciao, mi capita spesso di utilizzare tabelle di valori indicativi NON
lineari come questa:

lunghezza portata

300 22
250 24
200 27
150 31
100 38
75 44
50 54
25 77
10 122


volendo sapere la portata per la lunghezza 173, come potrei fare?
--
^__^
o.g.a.v.o.s. [Onorevoli Grazie A Voi Ohhh Saggi]
Tiziano Marmiroli
2007-12-08 13:44:46 UTC
Permalink
Post by -= Luca =-
Ciao, mi capita spesso di utilizzare tabelle di valori indicativi NON
lunghezza portata
300 22
250 24
200 27
150 31
100 38
75 44
50 54
25 77
10 122
volendo sapere la portata per la lunghezza 173, come potrei fare?
Mai provato ad aggiungere una 'linea di tendenza'?
http://groups.google.it/groups?as_q=equazione+linea+di+tendenza&as_ugroup=microsoft.public.it.office.excel


From: "fernando cinquegrani" <***@xroxxmxxxa.it>
Newsgroups: microsoft.public.it.office.excel
Subject: Valori intermedi grafico
Date: Tue, 4 Oct 2005 12:56:32 +0200
http://www.google.it/groups?threadm=u0ZvUJNyFHA.2932%40TK2MSFTNGP10.phx.gbl
Url breve: http://snurl.com/1uych


Facci sapere se e come hai risolto, grazie.
--
Tiziano Marmiroli
Microsoft MVP - Office System
=- Casa -=
2007-12-09 12:00:45 UTC
Permalink
:-( ummmh mi sà che non ho capito bene come applicare regr.lin / cost /
stat...
potresti farmi l'esempio di come applicarla sui valori indicati?

^__^
Grazie,
Luca
Post by Tiziano Marmiroli
Post by -= Luca =-
Ciao, mi capita spesso di utilizzare tabelle di valori indicativi NON
lunghezza portata
300 22
250 24
200 27
150 31
100 38
75 44
50 54
25 77
10 122
volendo sapere la portata per la lunghezza 173, come potrei fare?
Mai provato ad aggiungere una 'linea di tendenza'?
http://groups.google.it/groups?as_q=equazione+linea+di+tendenza&as_ugroup=microsoft.public.it.office.excel
Newsgroups: microsoft.public.it.office.excel
Subject: Valori intermedi grafico
Date: Tue, 4 Oct 2005 12:56:32 +0200
http://www.google.it/groups?threadm=u0ZvUJNyFHA.2932%40TK2MSFTNGP10.phx.gbl
Url breve: http://snurl.com/1uych
Facci sapere se e come hai risolto, grazie.
--
Tiziano Marmiroli
Microsoft MVP - Office System
Bruno Campanini
2007-12-09 15:01:05 UTC
Permalink
Post by -= Luca =-
Ciao, mi capita spesso di utilizzare tabelle di valori indicativi NON
lunghezza portata
300 22
250 24
200 27
150 31
100 38
75 44
50 54
25 77
10 122
volendo sapere la portata per la lunghezza 173, come potrei fare?
Se ti aspetti di trovare per 173 un valore compreso fra 27 e 31 abbandona
pure la regressione lineare (y = 80.851- 0.248844 x) che con quella
non ci fai niente.

Una curva un po' più adatta è la seguente:
y = 167.5- 5.59529 x + 0.105418 x^2 - 0.00103053 x^3 + 5.30737*10^-6 x^4 -
1.36436*10^-8 x^5 + 1.37639*10^-11 x^6

Però forse ti è più utile un'interpolazione lineare fra i punti 150 e 200
e i corrtispondenti punti 31 e 27 che ti dia 29.16

Allora definito con xVar il range delle ascisse (300, 250, etc),
con yVar quello delle ordinate (22, 24, etc), con X quello
contenente la variabile (173) per la quale vuoi calcolare la funzione:

=INDEX(yVar,MATCH(X,xVar,-1)+1)-(((INDEX(xVar,MATCH
(X,xVar,-1)+1)-X)*(INDEX(yVar,MATCH(X,xVar,-1))-INDEX
(yVar,MATCH(X,xVar,-1)+1)))/(INDEX(xVar,MATCH(X,xVar,-1))
-INDEX(xVar,MATCH(X,xVar,-1)+1)))

Bruno
Bruno Campanini
2007-12-09 15:26:12 UTC
Permalink
Post by Bruno Campanini
Se ti aspetti di trovare per 173 un valore compreso fra 27 e 31 abbandona
pure la regressione lineare (y = 80.851- 0.248844 x) che con quella
non ci fai niente.
y = 167.5- 5.59529 x + 0.105418 x^2 - 0.00103053 x^3 + 5.30737*10^-6 x^4 -
1.36436*10^-8 x^5 + 1.37639*10^-11 x^6
Però forse ti è più utile un'interpolazione lineare fra i punti 150 e 200
e i corrtispondenti punti 31 e 27 che ti dia 29.16
Allora definito con xVar il range delle ascisse (300, 250, etc),
con yVar quello delle ordinate (22, 24, etc), con X quello
=INDEX(yVar,MATCH(X,xVar,-1)+1)-(((INDEX(xVar,MATCH
(X,xVar,-1)+1)-X)*(INDEX(yVar,MATCH(X,xVar,-1))-INDEX
(yVar,MATCH(X,xVar,-1)+1)))/(INDEX(xVar,MATCH(X,xVar,-1))
-INDEX(xVar,MATCH(X,xVar,-1)+1)))
Bruno
Addendum:
Il range xVar deve essere ordinato decrescente e il range X deve
contenere un valore compreso nell'intervallo xVar, escluso l'estremo
inferiore.
Se si vuole comprendere anche questo, occorrerà inserire un ulteriore
limite di poco inferiore all'esistente (per es. 9.999 122)

Bruno
-= Luca =-
2007-12-10 07:54:28 UTC
Permalink
Hello, Bruno!
You wrote on Sun, 9 Dec 2007 16:01:05 +0100:

...
??>> lineari come questa:
??>> lunghezza portata
??>>
??>> 300 22
??>> 250 24
??>> 200 27
??>> 150 31
??>> 100 38
??>> 75 44
??>> 50 54
??>> 25 77
??>> 10 122
??>> volendo sapere la portata per la lunghezza 173, come potrei fare?

BC> Se ti aspetti di trovare per 173 un valore compreso fra 27 e 31

si, mi aspetterei quello :D

BC> abbandona pure la regressione lineare (y = 80.851- 0.248844 x) che con
BC> quella non ci fai niente.

ok :-(

BC> Una curva un po' più adatta è la seguente:
BC> y = 167.5- 5.59529 x + 0.105418 x^2 - 0.00103053 x^3 + 5.30737*10^-6
BC> x^4 - 1.36436*10^-8 x^5 + 1.37639*10^-11 x^6

BC> Però forse ti è più utile un'interpolazione lineare fra i punti 150 e
BC> 200 e i corrtispondenti punti 31 e 27 che ti dia 29.16

BC> Allora definito con xVar il range delle ascisse (300, 250, etc),
BC> con yVar quello delle ordinate (22, 24, etc), con X quello
BC> contenente la variabile (173) per la quale vuoi calcolare la funzione:

BC> =INDEX(yVar,MATCH(X,xVar,-1)+1)-(((INDEX(xVar,MATCH
BC> (X,xVar,-1)+1)-X)*(INDEX(yVar,MATCH(X,xVar,-1))-INDEX
BC> (yVar,MATCH(X,xVar,-1)+1)))/(INDEX(xVar,MATCH(X,xVar,-1))
BC> -INDEX(xVar,MATCH(X,xVar,-1)+1)))

...quì NON mi aspetto di capire... mi accontento di verificare....
con il range 300...10 in B7:B15
con il range 22...122 in C7:C15
e con la variabile 173 in B17
ho applicato questa:
'=INDEX(C7:C15,MATCH(B17,B7:B15,-1)+1)-(((INDEX(B7:B15,MATCH(B17,B7:B15,-1)+
1)-B17)*(INDEX(C7:C15,MATCH(B17,B7:B15,-1))-INDEX(C7:C15,MATCH(B17,B7:B15,-1
)+1)))/(INDEX(B7:B15,MATCH(B17,B7:B15,-1))-INDEX(B7:B15,MATCH(B17,B7:B15,-1)
+1)))
"dovrebbe" essere la formula sopra, sostituita con gli intervalli appena
citati, però mi dà errore, sai dirmi per quale motivo o dove ho sbagliato?
Uso excel 2000 in Italiano

Grazie molto a tutti
^__^

With best regards, -= Luca =-. E-mail: ***@tiscaRTI.it
Bruno Campanini
2007-12-10 09:45:13 UTC
Permalink
"-= Luca =-" <***@tiscaRTI.it> wrote in message news:Ug67j.190458$%***@twister2.libero.it...

[...]
Post by -= Luca =-
...quì NON mi aspetto di capire... mi accontento di verificare....
con il range 300...10 in B7:B15
con il range 22...122 in C7:C15
e con la variabile 173 in B17
'=INDEX(C7:C15,MATCH(B17,B7:B15,-1)+1)-(((INDEX(B7:B15,MATCH(B17,B7:B15,-1)+
1)-B17)*(INDEX(C7:C15,MATCH(B17,B7:B15,-1))-INDEX(C7:C15,MATCH(B17,B7:B15,-1
)+1)))/(INDEX(B7:B15,MATCH(B17,B7:B15,-1))-INDEX(B7:B15,MATCH(B17,B7:B15,-1)
+1)))
"dovrebbe" essere la formula sopra, sostituita con gli intervalli appena
citati, però mi dà errore, sai dirmi per quale motivo o dove ho sbagliato?
Uso excel 2000 in Italiano
Mi pare che in italiano MATCH diventi CONFRONTA, INDEX
diventi INDICE, ma non son sicuro.
Ed inoltre - ma ciò dipende dalle impostazioni di Windows - il separatore
di stringa (in inglese la virgola) diventa punto e virgola.

Bruno
-= Luca =-
2007-12-10 13:33:14 UTC
Permalink
Hello, Bruno!
You wrote on Mon, 10 Dec 2007 10:45:13 +0100:

BC> [...]
??>> ...quì NON mi aspetto di capire... mi accontento di verificare....
??>> con il range 300...10 in B7:B15
??>> con il range 22...122 in C7:C15
??>> e con la variabile 173 in B17
??>> ho applicato questa:
??>> '=INDEX(C7:C15,MATCH(B17,B7:B15,-1)+1)-(((INDEX(B7:B15,MATCH(B17,B7:B1
??>> 5,-1)+ 1)-B17)*(INDEX(C7:C15,MATCH(B17,B7:B15,-1))-INDEX(C7:C15,MATCH(
??>> B17,B7:B15,-1 )+1)))/(INDEX(B7:B15,MATCH(B17,B7:B15,-1))-INDEX(B7:B15,
??>> MATCH(B17,B7:B15,-1) +1))) "dovrebbe" essere la formula sopra,
??>> sostituita con gli intervalli appena citati, però mi dà errore, sai
??>> dirmi per quale motivo o dove ho sbagliato? Uso excel 2000 in Italiano

BC> Mi pare che in italiano MATCH diventi CONFRONTA, INDEX
BC> diventi INDICE, ma non son sicuro.
BC> Ed inoltre - ma ciò dipende dalle impostazioni di Windows - il
BC> separatore di stringa (in inglese la virgola) diventa punto e virgola.

Grazie Bruno, riprovo :D

With best regards, -= Luca =-. E-mail: ***@tiscaRTI.it
-= Luca =-
2007-12-12 16:49:32 UTC
Permalink
Hello, Bruno!
You wrote on Mon, 10 Dec 2007 10:45:13 +0100:

BC> [...]
??>> ...quì NON mi aspetto di capire... mi accontento di verificare....
??>> con il range 300...10 in B7:B15
??>> con il range 22...122 in C7:C15
??>> e con la variabile 173 in B17
??>> ho applicato questa:
??>> '=INDEX(C7:C15,MATCH(B17,B7:B15,-1)+1)-(((INDEX(B7:B15,MATCH(B17,B7:B1
??>> 5,-1)+ 1)-B17)*(INDEX(C7:C15,MATCH(B17,B7:B15,-1))-INDEX(C7:C15,MATCH(
??>> B17,B7:B15,-1 )+1)))/(INDEX(B7:B15,MATCH(B17,B7:B15,-1))-INDEX(B7:B15,
??>> MATCH(B17,B7:B15,-1) +1))) "dovrebbe" essere la formula sopra,
??>> sostituita con gli intervalli appena citati, però mi dà errore, sai
??>> dirmi per quale motivo o dove ho sbagliato? Uso excel 2000 in Italiano

BC> Mi pare che in italiano MATCH diventi CONFRONTA, INDEX
BC> diventi INDICE, ma non son sicuro.
BC> Ed inoltre - ma ciò dipende dalle impostazioni di Windows - il
BC> separatore di stringa (in inglese la virgola) diventa punto e virgola.

Ciao :(

ho messo:

=INDICE(C7:C15,CONFRONTA(B17,B7:B15,-1)+1)-(((INDICE(B7:B15,CONFRONTA(B17,B7
:B15,-1)+1)-B17)*(INDICE(C7:C15,CONFRONTA(B17,B7:B15,-1))-INDICE(C7:C15,CONF
RONTA(B17,B7:B15,-1)+1)))/(INDICE(B7:B15,CONFRONTA(B17,B7:B15,-1))-INDICE(B7
:B15,CONFRONTA(B17,B7:B15,-1)+1)))

ma ancora non và....
mi aiuti?

Grazie
Luca
Bruno Campanini
2007-12-12 17:19:27 UTC
Permalink
Post by -= Luca =-
Ciao :(
=INDICE(C7:C15,CONFRONTA(B17,B7:B15,-1)+1)-(((INDICE(B7:B15,CONFRONTA(B17,B7
:B15,-1)+1)-B17)*(INDICE(C7:C15,CONFRONTA(B17,B7:B15,-1))-INDICE(C7:C15,CONF
RONTA(B17,B7:B15,-1)+1)))/(INDICE(B7:B15,CONFRONTA(B17,B7:B15,-1))-INDICE(B7
:B15,CONFRONTA(B17,B7:B15,-1)+1)))
ma ancora non và....
mi aiuti?
Non so che dirti.
INDICE() e CONFRONTA() sono gli esatti
corrispondenti italiani di INDEX() e MATCH()?

Se sì dovrebbe funzionare come funziona da me.
Che messaggio ricevi?

Bruno
-= Luca =-
2007-12-12 19:11:06 UTC
Permalink
Hello, Bruno!
You wrote on Wed, 12 Dec 2007 18:19:27 +0100:

??>> Ciao :(
??>>
??>> ho messo:
??>>
??>> =INDICE(C7:C15,CONFRONTA(B17,B7:B15,-1)+1)-(((INDICE(B7:B15,CONFRONTA(
??>> B17,B7 :B15,-1)+1)-B17)*(INDICE(C7:C15,CONFRONTA(B17,B7:B15,-1))-INDIC
??>> E(C7:C15,CONF RONTA(B17,B7:B15,-1)+1)))/(INDICE(B7:B15,CONFRONTA(B17,B
??>> 7:B15,-1))-INDICE(B7 :B15,CONFRONTA(B17,B7:B15,-1)+1)))
??>>
??>> ma ancora non và....
??>> mi aiuti?

BC> Non so che dirti.
BC> INDICE() e CONFRONTA() sono gli esatti
BC> corrispondenti italiani di INDEX() e MATCH()?
INDICE:Restituisce un valore o un riferimento a un valore all'interno di una
tabella o di un intervallo. La funzione INDICE() dispone di due sintassi:
matrice e riferimento. La sintassi 1 (matrice) restituisce sempre un valore
o una matrice di valori, mentre la sintassi 2 (riferimento) restituisce
sempre un riferimento.
CONFRONTA:Restituisce la posizione relativa di un elemento in una matrice
che corrisponde a un valore specificato in un ordine particolare. Utilizzare
la funzione CONFRONTA invece di una delle sintassi della funzione CERCA
quando è necessario determinare la posizione di un elemento all'interno di
un intervallo piuttosto che l'elemento stesso.

BC> Se sì dovrebbe funzionare come funziona da me.
BC> Che messaggio ricevi?
Nessun messaggio: dice solo la formula digitata contiene un errore.... :(
Che faccio?



With best regards, -= Luca =-. E-mail: ***@tiscaRTI.it
Bruno Campanini
2007-12-12 23:09:53 UTC
Permalink
Post by -= Luca =-
Nessun messaggio: dice solo la formula digitata contiene un errore.... :(
Che faccio?
Riprendi la formula che ti ho inviato, sostituisci le funzioni inglesi
con quelle italiane, sostituisci i miei range coi tuoi.
Deve andare.
La formula è su tre righe per esigenze di testo in Outlook: l'hai messa
tutta su una riga di Excel?

Bruno
m***@gmail.com
2007-12-12 23:14:35 UTC
Permalink
Post by -= Luca =-
Hello, Bruno!
??>> Ciao :(
??>>
??>>
??>> =INDICE(C7:C15,CONFRONTA(B17,B7:B15,-1)+1)-(((INDICE(B7:B15,CONFRONTA(
??>> B17,B7 :B15,-1)+1)-B17)*(INDICE(C7:C15,CONFRONTA(B17,B7:B15,-1))-INDIC
??>> E(C7:C15,CONF RONTA(B17,B7:B15,-1)+1)))/(INDICE(B7:B15,CONFRONTA(B17,B
??>> 7:B15,-1))-INDICE(B7 :B15,CONFRONTA(B17,B7:B15,-1)+1)))
??>>
??>> ma ancora non và....
??>> mi aiuti?
BC> Non so che dirti.
BC> INDICE() e CONFRONTA() sono gli esatti
BC> corrispondenti italiani di INDEX() e MATCH()?
INDICE:Restituisce un valore o un riferimento a un valore all'interno di una
matrice e riferimento. La sintassi 1 (matrice) restituisce sempre un valore
o una matrice di valori, mentre la sintassi 2 (riferimento) restituisce
sempre un riferimento.
CONFRONTA:Restituisce la posizione relativa di un elemento in una matrice
che corrisponde a un valore specificato in un ordine particolare. Utilizzare
la funzione CONFRONTA invece di una delle sintassi della funzione CERCA
quando è necessario determinare la posizione di un elemento all'interno di
un intervallo piuttosto che l'elemento stesso.
BC> Se sì dovrebbe funzionare come funziona da me.
BC> Che messaggio ricevi?
Nessun messaggio: dice solo la formula digitata contiene un errore.... :(
Che faccio?
Se i tuoi dati hanno generalmente un andamento simile a quello
dell'esempio potrebbe essere utile impiegare un modello esponenziale
anzichè un modello polinomiale di 6° grado o l'interpolazione lineare.
Il modello esponenziale ti può semplificare i calcoli e fornirti
probabilmente una stima più accurata (un polinomio di 6° grado ti darà
sempre una curva che "segue" i tuoi dati, purtroppo tenderà a seguire
anche le variazioni dovute all'effetto del caso e non alla relazione
sottostante tra le due variabili e questo potrebbe pesantemente
distorcere le tue stime).
Applicando ai tuoi dati il modello esponenziale si ottiene una linea
di tendenza che rappresenta la seguente funzione:
portata=389.32 lunghezza ^ (-0.5044)

Per il valore di lunghezza di tuo interesse (173) la portata
risulterebbe pari 28.9

Spero possa esserti utile
Max
m***@gmail.com
2007-12-13 06:59:22 UTC
Permalink
Post by m***@gmail.com
Post by -= Luca =-
Hello, Bruno!
??>> Ciao :(
??>>
??>>
??>> =INDICE(C7:C15,CONFRONTA(B17,B7:B15,-1)+1)-(((INDICE(B7:B15,CONFRONTA(
??>> B17,B7 :B15,-1)+1)-B17)*(INDICE(C7:C15,CONFRONTA(B17,B7:B15,-1))-INDIC
??>> E(C7:C15,CONF RONTA(B17,B7:B15,-1)+1)))/(INDICE(B7:B15,CONFRONTA(B17,B
??>> 7:B15,-1))-INDICE(B7 :B15,CONFRONTA(B17,B7:B15,-1)+1)))
??>>
??>> ma ancora non và....
??>> mi aiuti?
BC> Non so che dirti.
BC> INDICE() e CONFRONTA() sono gli esatti
BC> corrispondenti italiani di INDEX() e MATCH()?
INDICE:Restituisce un valore o un riferimento a un valore all'interno di una
matrice e riferimento. La sintassi 1 (matrice) restituisce sempre un valore
o una matrice di valori, mentre la sintassi 2 (riferimento) restituisce
sempre un riferimento.
CONFRONTA:Restituisce la posizione relativa di un elemento in una matrice
che corrisponde a un valore specificato in un ordine particolare. Utilizzare
la funzione CONFRONTA invece di una delle sintassi della funzione CERCA
quando è necessario determinare la posizione di un elemento all'interno di
un intervallo piuttosto che l'elemento stesso.
BC> Se sì dovrebbe funzionare come funziona da me.
BC> Che messaggio ricevi?
Nessun messaggio: dice solo la formula digitata contiene un errore.... :(
Che faccio?
Se i tuoi dati hanno generalmente un andamento simile a quello
dell'esempio potrebbe essere utile impiegare un modello esponenziale
anzichè un modello polinomiale di 6° grado o l'interpolazione lineare.
Il modello esponenziale ti può semplificare i calcoli e fornirti
Errata corrige: si tratta del modello di potenza
Post by m***@gmail.com
probabilmente una stima più accurata (un polinomio di 6° grado ti darà
sempre una curva che "segue" i tuoi dati, purtroppo tenderà a seguire
anche le variazioni dovute all'effetto del caso e non alla relazione
sottostante tra le due variabili e questo potrebbe pesantemente
distorcere le tue stime).
Applicando ai tuoi dati il modello esponenziale si ottiene una linea
Errata corrige: si tratta del modello di potenza
Post by m***@gmail.com
portata=389.32 lunghezza ^ (-0.5044)
Per il valore di lunghezza di tuo interesse (173) la portata
risulterebbe pari 28.9
Spero possa esserti utile
Max
Bruno Campanini
2007-12-14 13:27:41 UTC
Permalink
<***@gmail.com> wrote in message news:1885c8de-ef6a-4c78-89a1-***@b40g2000prf.googlegroups.com...

Se i tuoi dati hanno generalmente un andamento simile a quello
dell'esempio potrebbe essere utile impiegare un modello esponenziale
anzichè un modello polinomiale di 6° grado o l'interpolazione lineare.
Il modello esponenziale ti può semplificare i calcoli e fornirti
probabilmente una stima più accurata (un polinomio di 6° grado ti darà
sempre una curva che "segue" i tuoi dati, purtroppo tenderà a seguire
anche le variazioni dovute all'effetto del caso e non alla relazione
sottostante tra le due variabili e questo potrebbe pesantemente
distorcere le tue stime).
Applicando ai tuoi dati il modello esponenziale si ottiene una linea
di tendenza che rappresenta la seguente funzione:
portata=389.32 lunghezza ^ (-0.5044)

Per il valore di lunghezza di tuo interesse (173) la portata
risulterebbe pari 28.9

Spero possa esserti utile
Max
=============================================
Penso che per gli usi normali sia più adatta l'interpolazione lineare
fra elementi contigui, anche perché fornisce l'esatto valore
dell'ordinata quando l'ascissa sia uno dei punti noti.

Ma tua formula mi interessa molto, non la conosco, come si calcolano
i due parametri?

Bruno

Loading...