Ciao a tutti
Devo calcolare il reciproco di un numero x senza poter usare la divisione ma ho a disposizione solo
-somma
-sottrazione
-moltiplicazione
-e^x
secondo voi e' possibile approssimare la funzione
y(x)=1/x
con una funzione esponenziale nella forma tipo
y(x)=e^-x
considerato che
e^-x=1/e^x ?
grazie mille
Approssimare 1/x con funzione esponenziale
Moderatori: PietroBaima,
Ianero
43 messaggi
• Pagina 1 di 5 • 1, 2, 3, 4, 5
0
voti
0
voti
x ha una dinamica di 40dB, puoi offsettarla a piacere
Ad esempio tra 0.01 e 1, oppure tra 1 e 100.
Ad esempio tra 0.01 e 1, oppure tra 1 e 100.
0
voti
Il problema è di natura teorica o pratica? Che errore massimo relativo puoi permetterti? Se il problema è di natura pratica, il primo metodo che mi viene in mente è quello di stimare i coefficienti di un modello esponenziale usando la stima ai minimi quadrati. Questo si basa sulla possibilità di disporre in partenza di un insieme di punti che seguono la relazione che vuoi approssimare, cioè 1/x. Se spieghi meglio quello che vuoi fare sono sicuro che altri utenti sapranno indicarti altri metodi.
mark
0
voti
Il problema è di natura pratica, devo fare un modello di calcolo mantenendolo il più possibile leggero e di facile implementazione.
L'informazione principale è un intervallo di tempo che deve essere convertito in frequenza istantaneamene ad ogni ciclo.
Questo blocco occorre per estrarre il valore medio di un segnale ad onda quadra a frequenza variabile per poter fare una analisi a piccolo segnale di stabilità di un anello retroazionato.
L'unica opzione attualmente verificata è un elemento non lineare definito per punti, veloce e leggero, ma l'imprecisione si riflette sui risultati, il compromesso non è semplice.
La funzione esponenziale potrebbe essere una alternativa valida se di facile implementazione utilizzando modelli semplici come generatori capacità e resistenze.
L'informazione principale è un intervallo di tempo che deve essere convertito in frequenza istantaneamene ad ogni ciclo.
Questo blocco occorre per estrarre il valore medio di un segnale ad onda quadra a frequenza variabile per poter fare una analisi a piccolo segnale di stabilità di un anello retroazionato.
L'unica opzione attualmente verificata è un elemento non lineare definito per punti, veloce e leggero, ma l'imprecisione si riflette sui risultati, il compromesso non è semplice.
La funzione esponenziale potrebbe essere una alternativa valida se di facile implementazione utilizzando modelli semplici come generatori capacità e resistenze.
0
voti
Non so se ho capito bene e se dico una stupidaggine, ma non sarebbe possibile contare la durata di un periodo e convertire la durata in un periodo in frequenza tramite una look up table di associazione tra periodo e frequenza?
"Ogni cosa va resa il più possibile semplice, ma non ANCORA più semplice" (A. Einstein)
-
clavicordo
20,2k 6 11 12 - G.Master EY
- Messaggi: 1235
- Iscritto il: 4 mar 2011, 14:10
- Località: Siena
0
voti
Questo è un metodo trogloditico che funziona per valori di x non troppo distanti da uno.
Può essere migliorato parecchio
Può essere migliorato parecchio
- Codice: Seleziona tutto
#include <stdio.h>
int main()
{
const int imax=10000;
float xinv=1;
const float eps=0.001; //three digits
float x=0.1; //numero di cui calcolare l'inverso
for (int n=0;n<imax;n++)
{
if ((x*xinv)<1) xinv+= eps/(x*xinv);
else xinv-=eps*(x*xinv);
}
printf("x=%f 1/x=%f err=%f",x,xinv,x*xinv);
return 0;
}
-
PietroBaima
89,1k 7 12 13 - G.Master EY
- Messaggi: 12044
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
0
voti
clavicordo ha scritto:Non so se ho capito bene e se dico una stupidaggine, ma non sarebbe possibile contare la durata di un periodo e convertire la durata in un periodo in frequenza tramite una look up table di associazione tra periodo e frequenza?
si e' quello che viene fatto attualmente
0
voti
Su che processore operi ed in che linguaggio?
Che errore è ammesso?
In ultima analisi quanto tempo impiega la divisione attualmente disponibile e quanto tempo si ha a disposizione?
Perché un'esponenziale è più veloce di una divisione sulla tua macchina?
Il numero di partenza è intero o floating point? Single o double?
Che errore è ammesso?
In ultima analisi quanto tempo impiega la divisione attualmente disponibile e quanto tempo si ha a disposizione?
Perché un'esponenziale è più veloce di una divisione sulla tua macchina?
Il numero di partenza è intero o floating point? Single o double?
43 messaggi
• Pagina 1 di 5 • 1, 2, 3, 4, 5
Chi c’è in linea
Visitano il forum: Nessuno e 2 ospiti