Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Dimensione firmware compilato per 8 bit oppure per 16 bit

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

2
voti

[21] Re: Dimensione firmware compilato per 8 bit oppure per 16 bi

Messaggioda Foto UtentePietroBaima » 16 dic 2015, 11:31

alla prima iterazione s vale zero, ed è giusto che sia così, ma la formula è:

Codice: Seleziona tutto
s=s*x/p+a[k++]


che significa che s, alla prima iterazione, verrà aggiornata al valore di a[k], essendoci quel +a[k++], poi k verrà incrementato, poi ci sarà un'altra iterazione dove s non sarà più zero.

Ho provato il codice anche sul sito che ti ho consigliato e funziona, non so, forse hai qualche problema col tuo compilatore. Potresti, se vuoi, anche postare il tuo codice qui, posso dargli un' occhiata.

Ciao,
Pietro.
Generatore codice per articoli:
nomi
Sul forum:
[pigreco]=π
[ohm]=Ω
[quadrato]=²
[cubo]=³
Avatar utente
Foto UtentePietroBaima
90,7k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 12207
Iscritto il: 12 ago 2012, 1:20
Località: Londra

0
voti

[22] Re: Dimensione firmware compilato per 8 bit oppure per 16 bi

Messaggioda Foto Utentelelerelele » 16 dic 2015, 12:02

Si, ho provato anche io sul sito e funziona, (non avevo dubbi), ma non capisco perché.

provo a risolvere

il primo ciclo
s=0*x/p+a[k++] = (0/p) +a(k) = a(k)

quindi il secondo ciclo avrà il valore iniziale a(k).

giusto?

Ho trovato la definizione di polinomio, su wikipedia, proverò a leggermi il tutto per vadere se arrivo a capire.

grazie di tutto, appena posso provo ad inserire il codice proposto poi Vi farò sapere.

cordiali saluti.
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5509
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

1
voti

[23] Re: Dimensione firmware compilato per 8 bit oppure per 16 bi

Messaggioda Foto UtentePietroBaima » 16 dic 2015, 12:18

lelerelele ha scritto:giusto?

Si', k vale 0 alla prima iterazione e quindi usi a[0], cioe' il coefficiente di grado piu' alto.
Poi il ciclo ricomincia usando quel valore di s nella formula e k viene incrementato ad 1, eccetera eccetera...

Cosi' prevede l'algoritmo.

Se hai ulteriori problemi non esistare a chiedere.

Ciao e buon coding :D

Pietro
Generatore codice per articoli:
nomi
Sul forum:
[pigreco]=π
[ohm]=Ω
[quadrato]=²
[cubo]=³
Avatar utente
Foto UtentePietroBaima
90,7k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 12207
Iscritto il: 12 ago 2012, 1:20
Località: Londra

4
voti

[24] Re: Dimensione firmware compilato per 8 bit oppure per 16 bi

Messaggioda Foto UtentePietroBaima » 16 dic 2015, 23:20

lelerelele ha scritto:Ho trovato la definizione di polinomio, su wikipedia, proverò a leggermi il tutto per vadere se arrivo a capire.


Adesso che ho un attimo, mi sono messo a cercarti qualcosa su questi metodi, e ho trovato questo documento, che mi sembra scritto in un modo accettabile, anche se e' meno approfondito rispetto al metodo di Orchard completo. Puoi leggerlo dopo aver visto le cose di base, anche se non saprei valutarti perche' non ho idea delle tue conoscenze.

Ciao e buono studio :D
Pietro

PS: nessuno che si avventuri nella soluzione del problema che ho dato qualche post fa?
Generatore codice per articoli:
nomi
Sul forum:
[pigreco]=π
[ohm]=Ω
[quadrato]=²
[cubo]=³
Avatar utente
Foto UtentePietroBaima
90,7k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 12207
Iscritto il: 12 ago 2012, 1:20
Località: Londra

0
voti

[25] Re: Dimensione firmware compilato per 8 bit oppure per 16 bi

Messaggioda Foto Utentepaofanello » 16 dic 2015, 23:44

Intanto ti ringrazio moltissimo, è un argomento che mi interessa davvero molto. Non so perché ma tutto ciò che è approssimazioni con polinomi, metodi numerici e altre cose che semplificano mi affascinano (anche se per ora non ho avuto tempo per approfondire l'argomento, quindi per ora rimango abbastanza ignorante).

PietroBaima ha scritto:vedi i vari Bessel, Chebishev, Butterworth

Mettendo in conto che quando avrò tempo darò un'occhiata alla forma di questi polinomi, è un caso che abbiano lo stesso nome di filtri elettronici attivi? :D

PietroBaima ha scritto:a[]={0.00001,2,89,234}, se poniamo p=-2, abbiamo il termine di ordine 3 diviso per un milione, quello di ordine 2 diviso per diecimila, quello di ordine 1 diviso per cento. (
Per conservare l'uguaglianza il vettore a[] va scritto quindi cosi':
a[]={10,20000,8900,234}

Se ho capito bene, tu saprai che il primo termine verrà nelle iterazioni diviso per 1 milione, quindi lo moltiplichi prima del calcolo per lo stesso numero: ottieni perciò lo stesso risultato, lavorando con un vettore più bilanciato. Giusto?

PietroBaima ha scritto:Osservo che la non linearita' della funzione f(x) e' moderata.

Io mi sarei già fermato ad un'approssimazione lineare vedendo il grafico :mrgreen:

Le approssimazioni che raggiungi sono veramente ottime :ok:
Spero di non aver dimenticato nulla... come ultima cosa ti ringrazio ancora per la pazienza e competenza iOi
Sono argomenti che sicuramente approfondirò!

P.S.
PietroBaima ha scritto: nessuno che si avventuri nella soluzione del problema che ho dato qualche post fa?

Io sta sera ci ho provato e qualcosa di fretta ho trovato, ma non capisco come scriverlo in maniera generale, e soprattutto che implicazione possa avere... se poi avrò tempo ti assicuro che provo a scrivere il risultato!

EDIT: ho avuto l'illuminazione prima di andare a dormire. Quando ho tempo la scrivo!
Piuttosto che chiedere qualcosa a me, chiedila a Mara Maionchi. E' più competente.
Avatar utente
Foto Utentepaofanello
2.280 8 13
Expert
Expert
 
Messaggi: 532
Iscritto il: 7 lug 2015, 21:01

1
voti

[26] Re: Dimensione firmware compilato per 8 bit oppure per 16 bi

Messaggioda Foto Utentelelerelele » 17 dic 2015, 10:46

PietroBaima ha scritto:Adesso che ho un attimo, mi sono messo a cercarti qualcosa su questi metodi, e ho trovato .....anche se non saprei valutarti perche' non ho idea delle tue conoscenze.

Ti ringrazio per il link, me lo studierò nel fine settimana, sperando di avere sufficiente tempo.

Le mie conoscenze in ambito matematico sono molto limitate, a livello di scuole superiori, ramo elettrotecnico, poi se posso aggiungere che ci servivano molto i logaritmi e gli integrali, non abbiamo manco fatto una lezione su questi!!!!! che dire.

Intanto ti saluto e ti ringrazio.
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5509
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

1
voti

[27] Re: Dimensione firmware compilato per 8 bit oppure per 16 bi

Messaggioda Foto UtentePietroBaima » 17 dic 2015, 11:11

paofanello ha scritto:Intanto ti ringrazio moltissimo, è un argomento che mi interessa davvero molto. Non so perché ma tutto ciò che è approssimazioni con polinomi, metodi numerici e altre cose che semplificano mi affascinano.

E' un argomento in cui la letteratura matematica abbonda! :D

paofanello ha scritto:Mettendo in conto che quando avrò tempo darò un'occhiata alla forma di questi polinomi, è un caso che abbiano lo stesso nome di filtri elettronici attivi? :D

No, non è un caso, anche nel caso dei filtri bisogna approssimare delle funzioni e lo si fa con dei polinomi perché le funzioni di trasferimento delle reti elettriche a parametri concentrati sono polinomiali.
Se invece tu avessi delle reti a parametri distribuiti le funzioni potrebbero essere trascendenti (seno, coseno, ecc..). Questo succede perché si può dimostrare che l'ordine polinomiale in un circuito a parametri distribuiti non è finito, quindi, in sostanza, hai tutti i termini di uno sviluppo di Taylor di {seno, coseno...}.


paofanello ha scritto:Se ho capito bene, tu saprai che il primo termine verrà nelle iterazioni diviso per 1 milione, quindi lo moltiplichi prima del calcolo per lo stesso numero: ottieni perciò lo stesso risultato, lavorando con un vettore più bilanciato. Giusto?

Precisamente.

paofanello ha scritto:Le approssimazioni che raggiungi sono veramente ottime :ok:

Ti ringrazio, ma il metodo non è mio. Io l'ho solo applicato al caso specifico.
Fra l'altro è sovradimensionato rispetto alla precisione della misura.
Quello di cui volevo discutere,però, era del metodo numerico.

paofanello ha scritto:come ultima cosa ti ringrazio ancora per la pazienza e competenza
Sono argomenti che sicuramente approfondirò!

Se hai bisogno di una mano te ne posso prestare una.

paofanello ha scritto:EDIT: ho avuto l'illuminazione prima di andare a dormire. Quando ho tempo la scrivo!

Se riesci a risolverlo ti spiego a cosa serve. ;-)
Generatore codice per articoli:
nomi
Sul forum:
[pigreco]=π
[ohm]=Ω
[quadrato]=²
[cubo]=³
Avatar utente
Foto UtentePietroBaima
90,7k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 12207
Iscritto il: 12 ago 2012, 1:20
Località: Londra

2
voti

[28] Re: Dimensione firmware compilato per 8 bit oppure per 16 bi

Messaggioda Foto UtentePietroBaima » 17 dic 2015, 11:14

lelerelele ha scritto:Ti ringrazio per il link, me lo studierò nel fine settimana, sperando di avere sufficiente tempo.

Nessun problema.
Però ti suggerisco una cosa, un po' controcorrente.
Prima di studiare la teoria prova a implementare il programma nel tuo micro, giusto per capire come funziona. ;-)
Generatore codice per articoli:
nomi
Sul forum:
[pigreco]=π
[ohm]=Ω
[quadrato]=²
[cubo]=³
Avatar utente
Foto UtentePietroBaima
90,7k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 12207
Iscritto il: 12 ago 2012, 1:20
Località: Londra

2
voti

[29] Re: Dimensione firmware compilato per 8 bit oppure per 16 bi

Messaggioda Foto Utentepaofanello » 17 dic 2015, 13:14

PietroBaima ha scritto:Se riesci a risolverlo ti spiego a cosa serve. ;-)

A me viene così... non so però se sia giusto...

s_n=\sum\limits_{i=0}^n a_{n-i}\ x^{n-i} 10^{0.5[n(n-1)-i(i-1)]p}
Piuttosto che chiedere qualcosa a me, chiedila a Mara Maionchi. E' più competente.
Avatar utente
Foto Utentepaofanello
2.280 8 13
Expert
Expert
 
Messaggi: 532
Iscritto il: 7 lug 2015, 21:01

4
voti

[30] Re: Dimensione firmware compilato per 8 bit oppure per 16 bi

Messaggioda Foto UtentePietroBaima » 18 dic 2015, 2:51

Ottimo!
E' giusto! =D> =D>

Se osservi quella espressione, trovi che ha una parte che non dipende da i, quindi la puoi raccogliere e portare fuori dalla somma, mentre ha una parte che dipende non più da i ma dal suo quadrato.

Si usa in questo modo:

Quando devi trovare delle approssimazioni polinomiali di funzioni che oscillano molto hai bisogno di polinomi di grado elevato (anche x^100, può capitare).
Il problema di polinomi così grado così alto è il loro condizionamento, come abbiamo visto, ma anche che il polinomio approssima così bene la funzione che si mette a inseguire il ... rumore!
Questo problema viene chiamato overfitting.
Il rumore può essere dovuto alla misura oppure essere rumore numerico dovuto alla approssimazione di macchina (precisione finita di calcolo).
Senza contare che se la funzione ha un salto oppure una variazione rapida, rispetto al resto della funzione, il polinomio si mette ad oscillare molto, prima di tornare a seguire fedelmente la funzione.

Il problema si risolve dividendo il polinomio in due o più parti, che seguono diverse zone della funzione, che viene divisa in pattern.
Un pattern potrebbe essere l'intorno di una variazione brusca, dove conviene tenere il polinomio ad un grado basso, un altro pattern potrebbe essere una zona dove la funzione oscilla molto e quindi è necessario alzare il grado del polinomio, ecc...
Il problema che sorge ora è che tutti questi polinomi, ragionevolmente, convergono nella zona di approssimazione, ma in genere divergono altrove.
Se vogliamo sommarli dobbiamo quindi moltiplicarli per una funzione esponenziale (tipo Gaussiana, per esempio) che renda il polinomio significativo nella zona di approssimazione e nullo altrove. (un polinomio che diverge moltiplicato per un esponenziale che tende a zero è al limite sempre nullo, se di grado finito).

Anche la funzione esponenziale viene approssimata con polinomi (con i dovuti accorgimenti sul grado del polinomio approssimante, che deve essere ampiamente superiore a quello che approssima, per potersi continuare a comportare da esponenziale). Il prodotto dei polinomi si valuta, praticamente sempre, facendone la convoluzione.

Gli esponenziali portano quindi ad avere coefficienti che scendono con il fattoriale.
Un termine lineare non bilancia più il vettore dei coefficienti in modo corretto, uno quadratico ci riesce molto meglio.

Volevo parlarne perché in modellistica questa è una tecnica molto usata, soprattutto con le spline e per approssimare funzioni incasinogene.
Viene chiamata IRFk-kriging.

Ciao,
Pietro.
Generatore codice per articoli:
nomi
Sul forum:
[pigreco]=π
[ohm]=Ω
[quadrato]=²
[cubo]=³
Avatar utente
Foto UtentePietroBaima
90,7k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 12207
Iscritto il: 12 ago 2012, 1:20
Località: Londra

PrecedenteProssimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Google [Bot] e 9 ospiti