Pagina 1 di 1

calcolo interpolazione

MessaggioInviato: 18 lug 2010, 19:19
da cdileo
Ciao a tutti, ho un datasheet di una centralina auto dove vengono mostrati i valori ti temperatura in base ad un byte, il mio problema e' che non so calcolare i valori intemedi per poterli applicare al mio software.
Vediamo se mi spiego meglio

byte °C

0 125,0
16 125,0
32 125,0
48 78,6
64 59,2
80 47,5
96 37,9
112 29,5
128 22,0
144 14,0
160 6,2
176 -1,8
192 -11,8
208 -28,7
224 -55
240 -55

Il byte e' quello a sx e il suo corrispondente in temperatura e' quello a dx, ora quello che mi servirebbe e' la formula per ricavare la temperatura in modo da poter calcolare i valori interpolati.
Mi potete aiutare e far capire?

Grazie Carmelo

Re: calcolo interpolazione

MessaggioInviato: 18 lug 2010, 21:00
da xyz
Con R:

Codice: Seleziona tutto
# dati
v=c(0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240)
T=c(125.0, 125.0, 125.0, 78.6, 59.2, 47.5, 37.9, 29.5, 22.0, 14.0, 6.2, -1.8, -11.8, -28.7, -55, -55)

# regressione lineare
reg <- lm(f = T ~ v)

# risultato
print(summary(reg))

# coefficienti
print(coefficients(reg))

# grafico punti iniziali
plot(T ~ v, xlab="byte", ylab="temp", type="p", col = "red")
grid()

# grafico retta regressione
abline(reg)


Elaborazione:

Codice: Seleziona tutto
Call:
lm(formula = T ~ v)

Residuals:
    Min      1Q  Median      3Q     Max
-15.649  -8.547   0.722   6.388  25.865

Coefficients:
             Estimate Std. Error t value Pr(>|t|)   
(Intercept) 123.41985    5.67757   21.74 3.46e-12 ***
v            -0.75892    0.04031  -18.83 2.43e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 11.89 on 14 degrees of freedom
Multiple R-squared: 0.962,   Adjusted R-squared: 0.9593
F-statistic: 354.5 on 1 and 14 DF,  p-value: 2.434e-11

(Intercept)           v
123.4198529  -0.7589154


Formula finale:

Temp= 123.4198529 - 0.7589154 * byte

Grafico:
Schermata-Finestra senza titolo.png
Grafico regressione
Schermata-Finestra senza titolo.png (46.41 KiB) Osservato 2620 volte

Re: calcolo interpolazione

MessaggioInviato: 18 lug 2010, 21:46
da RenzoDF
Con Curvexpert
a.gif
a.gif (17.84 KiB) Osservato 2606 volte

con una regressione lineare
b2.gif
b2.gif (11.31 KiB) Osservato 2602 volte

c.gif
c.gif (7.92 KiB) Osservato 2605 volte

d.gif
d.gif (8.77 KiB) Osservato 2608 volte


... ma anche con una polinomiale
e.gif
e.gif (11.92 KiB) Osservato 2604 volte

f.gif
f.gif (8.87 KiB) Osservato 2602 volte

g.gif
g.gif (8.95 KiB) Osservato 2601 volte

Re: calcolo interpolazione

MessaggioInviato: 19 lug 2010, 0:11
da cdileo
sto provando anch'io Curvexpert, e devo dire che non e' cosi' semplice...
ho provato a eliminare alcuni valori ripetuti agli estremi dell'elencoe la cosa sembra che si linearizzi meglio, ma quello che non trovo e' la formula.

32 125,0
48 78,6
64 59,2
80 47,5
96 37,9
112 29,5
128 22,0
144 14,0
160 6,2
176 -1,8
192 -11,8
208 -28,7
224 -55

Re: calcolo interpolazione

MessaggioInviato: 19 lug 2010, 0:18
da RenzoDF
Il procedimento è il seguente

a) dopo aver inserito i dati sulle due colonne
b) premi l'icona con la lente di ingrandimento -> OK
c) clikkando sopra la riga dell'elenco delle curve di regressione ne scegli una ... e con un doppio click si apre la finestra grafica
d) da sopra la finestra un click-destro mouse apri un menu dove: per sistemare il grafico (scale ecc) sceglierai Graph Properties
e) per la funzione e relativi coefficienti sceglierai Information

Re: calcolo interpolazione

MessaggioInviato: 19 lug 2010, 8:33
da cdileo
questo e'quello che mi viene fuori:

Immagine

Immagine

e' giusto? ma la formula finisce con ....

Re: calcolo interpolazione

MessaggioInviato: 19 lug 2010, 9:21
da RenzoDF
cdileo ha scritto:e' giusto? ma la formula finisce con ....


giusto ! ... la formula finisce quando non hai più coefficienti da usare :mrgreen:

Da quanto vedo ... hai scelto una regressione polinomiale di terzo grado, e i coefficienti calcolati saranno quindi quattro; la funzione che approssima i tuoi dati sarà quindi

y(x)=-6,23\cdot 10^{-5}x^{3}+2,52\cdot 10^{-2}x^{2}-3,71\,x+214

Per verificare potresti anche far uso di un altro "nostro" FreeTool, SpeQ, usando il quale, una volta inserita la relazione y(x) potrai poi plottarla o calcolarne dei particolari valori

h.gif
h.gif (11.42 KiB) Osservato 2525 volte

i.gif
i.gif (15.22 KiB) Osservato 2524 volte