Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Software per interpolazione dati

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

0
voti

[11] Re: Software per interpolazione dati

Messaggioda Foto Utenteg.schgor » 20 dic 2009, 22:30

Normalmente viene usata il 2 dimensioni (x.y). Non so se in qualche modo possa essere estesa
a 4 (interpolazioni multiple?).
Avatar utente
Foto Utenteg.schgor
57,8k 9 12 13
G.Master EY
G.Master EY
 
Messaggi: 16971
Iscritto il: 25 ott 2005, 9:58
Località: MILANO

0
voti

[12] Re: Software per interpolazione dati

Messaggioda Foto UtenteRenzoDF » 21 dic 2009, 0:19

g.schgor ha scritto:Normalmente viene usata il 2 dimensioni (x.y). Non so se in qualche modo possa essere estesa
a 4 (interpolazioni multiple?).


Per la richiesta del post non è sufficiente, qui si tratta di un' interpolazione o meglio, se i dati sono sovrabbondanti, di una regressione multivariata.
...della serie Vandermonde e compagni :mrgreen:
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55

2
voti

[13] Re: Software per interpolazione dati

Messaggioda Foto Utentexyz » 21 dic 2009, 1:54

Genesis760 ha scritto:L'espressione matematica dovrebbe avere una forma del tipo
x= (a*y^b)/(c*z^d * w^e)

Si chiama Regressione non lineare:

http://it.wikipedia.org/wiki/Regressione_nonlineare

Possono essere calcolate con un software open source "R":

http://www.r-project.org/

il packages che si usa in questo caso si chiana "nls":

http://sekhon.berkeley.edu/stats/html/nls.html
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[14] Re: Software per interpolazione dati

Messaggioda Foto UtenteRenzoDF » 21 dic 2009, 12:34

xyz ha scritto:
Si chiama Regressione non lineare:
...
Possono essere calcolate con un software open source "R":
...
il packages che si usa in questo caso si chiana "nls": ...


... ma dai, ... è così semplice :?:

... a dire il vero veniva richiesta una interpolazione, e non una regressione, si può fare anche quella con i software che hai linkato ?

...e, visto che sei esperto nel campo, posso farti una richiesta ... "banale":

mi interpoleresti questi quatto punti ?

(1, 2, 3, 4.9), (3, 5, 2, 2.6), (5, 4, 2, 3.7), (4, 1, 4, 7.8 ).

(in realtà ne avrei nove ... ma... )

Grazie 1000
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55

1
voti

[15] Re: Software per interpolazione dati

Messaggioda Foto UtenteIsidoroKZ » 21 dic 2009, 13:13

Direi che la soluzione sia questa f(x,y,z)=173.3359145\frac{x^{-0.02553118025}}{y^{1.639587402}\, \, z^{2.211445154}}

Se aggiungi gli altri punti mi complichi la vita :)
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Avatar utente
Foto UtenteIsidoroKZ
121,2k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 21059
Iscritto il: 17 ott 2009, 0:00

0
voti

[16] Re: Software per interpolazione dati

Messaggioda Foto UtenteRenzoDF » 21 dic 2009, 13:18

Isidoro non si smentisce mai :!: =D>

... ormai è la nostra "punta di Diamante" :-({|=

ma ...

Gradivo una risposta da XYZ


che vedo in linea ... ma ... "non favella" ....why ? :-k

BTW
Anche una più semplice
f(x,y,z)=0.31111\,x~-~0.\text{47778}\,y~+~\text{1}.\text{48889}\,z~+~\text{1}.0\text{7778} :mrgreen:
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55

0
voti

[17] Re: Software per interpolazione dati

Messaggioda Foto UtenteIsidoroKZ » 21 dic 2009, 13:34

Pero` questa non ha la forma indicata dall'OP!
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Avatar utente
Foto UtenteIsidoroKZ
121,2k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 21059
Iscritto il: 17 ott 2009, 0:00

0
voti

[18] Re: Software per interpolazione dati

Messaggioda Foto UtenteRenzoDF » 21 dic 2009, 13:39

Dato che come al solito è diventato un tutorial interno a Electroportal .... andiamo avanti con i 9 punti


ma per semplificare i calcoli abbandoniamo \mathbb{R}^{4} e indietreggiamo in \mathbb{R}^{3} :D

I punti sono

(1, 1, 3.2), (1, 2, 4.4), (1, 3, 6.5), (2, 1, 2.5), (2, 2, 4.7), (2, 3, 5.8 ), (3, 1, 5.1), (3, 2, 3.6), (3, 3, 2.9).

e senza restrizioni sul tipo di funzione interpolante :!:

Sotto ai coraggiosi :mrgreen:
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55

0
voti

[19] Re: Software per interpolazione dati

Messaggioda Foto UtenteRenzoDF » 21 dic 2009, 13:40

IsidoroKZ ha scritto:Pero` questa non ha la forma indicata dall'OP!


hai ragione ma era più semplice da calcolare ... a mezzogiorno :mrgreen:
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55

2
voti

[20] Re: Software per interpolazione dati

Messaggioda Foto Utentexyz » 21 dic 2009, 14:55

RenzoDF ha scritto:Gradivo una risposta da XYZ stavo rileggendo tutto il thread per capire meglio i dati di input, quelli di out e soprattutto la funzione interpolante


Stavo rileggendo tutto il thread per capire i dati di input, quelli di outpu e soprattutto la funzione interpolante.

In parole povere, se vuoi trovare i migliori parametri di una funzione interpolante si chiama regressione, se vuoi trovare dei nuovi punti data una funzione interpolante si chiama interpolazione.

Programma usato per i calcoli R.

I dati di partenza:
Codice: Seleziona tutto
x=c(1,3,5,4)
y=c(2,5,4,1)
z=c(3,2,2,4)

Ii dati d'uscita:

Codice: Seleziona tutto
out=c(4.9,2.6,3.7,7.8)


Usando la funzione di IsidoroKZ:

Codice: Seleziona tutto
nls(out ~ a1*x^i/(y^j*z^k), start = list(a1=1,i=1,j=1,k=1), algorithm = "port")

Nonlinear regression model
  model:  out ~ a1 * x^i/(y^j * z^k)
   data:  parent.frame()
       a1         i         j         k
173.33591  -0.02553   1.63959   2.21145
residual sum-of-squares: 3.353e-30


Usando la funzione proposta da te:

Codice: Seleziona tutto
nls(out ~ a1*x+b1*y+c1*z+d1, start = list(a1=1,b1=1,c1=1,d1=0), algorithm = "port")
Nonlinear regression model
  model:  out ~ a1 * x + b1 * y + c1 * z + d1
   data:  parent.frame()
     a1      b1      c1      d1
0.3111 -0.4778  1.4889  1.0778
residual sum-of-squares: 7.514e-28


In generale comunque non è facile, l'algoritmo può non convergere in questo caso bisogna esaminare i risultati parziali per aiutare a trovare la soluzione (se esiste).
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

PrecedenteProssimo

Torna a Programmi applicativi: simulatori, CAD ed altro

Chi c’è in linea

Visitano il forum: Google [Bot] e 11 ospiti