Funzione polinomiale: una cosa incredibile!!! help
Ciao a tutti...
ho un grosso problema o meglio un dubbio enorme in seguito ad una cosa che sto facendo per un programma:
dati dei punti (una cinquantina) e facendoli interpolare da una curva (sia usando excel sia usando matlab) ottengo varie funzioni in base al grado che voglio (ho considerato quelle di 4, 5 e 6 grado).
Bene, per fare una prova ho sostituito la x per ottenere la y e cosa salta fuori??? Un valore incredibile, diverso da zero... numeracci per tutte e tre le equazioni!!! Ma com'è possibile? Quale procedimento sbaglio a livello matematico?
aiutatemi per favore!
come posso risolvere altrimenti?
grazie a tutti
ho un grosso problema o meglio un dubbio enorme in seguito ad una cosa che sto facendo per un programma:
dati dei punti (una cinquantina) e facendoli interpolare da una curva (sia usando excel sia usando matlab) ottengo varie funzioni in base al grado che voglio (ho considerato quelle di 4, 5 e 6 grado).
Bene, per fare una prova ho sostituito la x per ottenere la y e cosa salta fuori??? Un valore incredibile, diverso da zero... numeracci per tutte e tre le equazioni!!! Ma com'è possibile? Quale procedimento sbaglio a livello matematico?
aiutatemi per favore!
come posso risolvere altrimenti?
grazie a tutti
Risposte
Il calcolo usato per la funzione polinomiale che tipo di interpolazione usa? Il metodo dei minimi quadrati?
Prova a trascrivere un esempio...se non è complicato.
Se il tutto non dovesse funzionare le interpolazioni polinomiali si fanno anche a mano per polinomi di grado basso e se conosci qualche linguaggio di programmazione puoi scriverti tu un programmino che faccia i conti.
Se il tutto non dovesse funzionare le interpolazioni polinomiali si fanno anche a mano per polinomi di grado basso e se conosci qualche linguaggio di programmazione puoi scriverti tu un programmino che faccia i conti.
Se la funzione interpolante utilizza il metodo dei minimi quadrati è molto probabile che non passi per nessuno dei punti che tu hai inserito. Di conseguenza in corrispondenza di valori noti della x non ti troverai i valori di y che hai inserito.
Ci sono anche altri tipi di interpolaizone polinomiale che passano per i punti inseriti ma hanno l'inconveniente di avere un grado molto elevato (pari al numero di punti a disposizione - 1) e sono parecchio oscillanti...
Ci sono anche altri tipi di interpolaizone polinomiale che passano per i punti inseriti ma hanno l'inconveniente di avere un grado molto elevato (pari al numero di punti a disposizione - 1) e sono parecchio oscillanti...
E in questi casi si ovvia al problema usando algoritmi spline cioè algoritmi che interpolano con funzioni polinomiali a tratti. In generale però non ottieni una funzione con un'unica espressione esplicita.
Non so quale metodo venga utilizzato; so solamente che in excel (grafico con visualizzazzione della funzione) utilizzo la polinomiale che permette di scegliere il grado e con matlab uso il comando polyfit... Con entrambi ho ottenuto gli stessi coefficienti della polinomiale.
Ho provato ad aggiungere in excel dei decimali e il risultato non è + sbagliatissimo ma cmq ancora non 0. Credo quindi di aver capito che excel approssima moltisssssimo e quindi errore+ errore + errore + errore... alla fine viene un risulatato sballato. (es. excel per il numero 2.345457934637347 scrive 2.345458)
Fatemi sapere se può essere giusta questa deduzione per favore... grazie!
Ho provato ad aggiungere in excel dei decimali e il risultato non è + sbagliatissimo ma cmq ancora non 0. Credo quindi di aver capito che excel approssima moltisssssimo e quindi errore+ errore + errore + errore... alla fine viene un risulatato sballato. (es. excel per il numero 2.345457934637347 scrive 2.345458)
Fatemi sapere se può essere giusta questa deduzione per favore... grazie!
Direttamente da matlab.
L'interpolazione, com'era immaginabile, è ai minimi quadrati per cui troverai praticamente sempre (salvo casi fortunatissimi) una differenza tra i tuoi valori sperimentali e quelli forniti dalla funzione polinomiale i cui coefficienti sono generati da POLYFIT.
Ma a cosa ti serve questa interpolazione? Voglio dire, prima di utilizzare algoritmi di interpolazione bisognerebbe avere un minimo di conoscenza teorica dei limiti e degli scopi dei metodi che si usano.
» help polyfit POLYFIT Fit polynomial to data. POLYFIT(X,Y,N) finds the coefficients of a polynomial P(X) of degree N that fits the data, P(X(I))~=Y(I), in a least-squares sense. [P,S] = POLYFIT(X,Y,N) returns the polynomial coefficients P and a structure S for use with POLYVAL to obtain error estimates on predictions. If the errors in the data, Y, are independent normal with constant variance, POLYVAL will produce error bounds which contain at least 50% of the predictions. The structure S contains the Cholesky factor of the Vandermonde matrix (R), the degrees of freedom (df), and the norm of the residuals (normr) as fields. See also POLY, POLYVAL, ROOTS.
L'interpolazione, com'era immaginabile, è ai minimi quadrati per cui troverai praticamente sempre (salvo casi fortunatissimi) una differenza tra i tuoi valori sperimentali e quelli forniti dalla funzione polinomiale i cui coefficienti sono generati da POLYFIT.
Ma a cosa ti serve questa interpolazione? Voglio dire, prima di utilizzare algoritmi di interpolazione bisognerebbe avere un minimo di conoscenza teorica dei limiti e degli scopi dei metodi che si usano.