Approssimare 1/x con funzione esponenziale
Moderatori: PietroBaima,
Ianero
43 messaggi
• Pagina 3 di 5 • 1, 2, 3, 4, 5
0
voti
Se però illustri come hai fatto rendi questo thread utile anche ad altri in futuro.
-
PietroBaima
86,8k 7 12 13 - G.Master EY
- Messaggi: 11677
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
0
voti
Posto che ormai ha poco senso fare cose del genere, un modo veloce e approssimato per il calcolo di 1/x può sfruttare Newton Raphson e il modo di rappresentare un numero floating point ricordando che log x^y = y log x. Si approssima il logaritmo e si fa un giro con Newton Raphson più o meno così:
costa 2 moltiplicazioni e 1 somma
- Codice: Seleziona tutto
float inv_fast(float x) {
union { float f; int i; } v; //in C è permesso type punning
float w, sx; // w serve solo per gli ordini superiori
sx = (x < 0) ? -1:1;
x = sx * x;
v.i = (int)(0x7EF4Fb9d - *(uint32_t *)&x); // serve stdint.h
w = x * v.f; // se iterazione singola di N-R può essere messo alla successiva
v.f = v.f * (2 - w); // Una iterazione di N-R, Err = -3.36e-3 * 2^(-floor(log2(x)))
// v.f = v.f * ( 4 + w * (-6 + w * (4 - w))); // Seconda iterazione, Err = -1.13e-5 * 2^(-floor(log2(x)))
// v.f = v.f * (8 + w * (-28 + w * (56 + w * (-70 + w *(56 + w * (-28 + w * (8 - w))))))); // Terza Iterazione, Err = +-6.8e-8 * 2^(-floor(log2(x)))
return v.f * sx;
}
costa 2 moltiplicazioni e 1 somma
1
voti
PietroBaima ha scritto:Se però illustri come hai fatto rendi questo thread utile anche ad altri in futuro.
Credevo di dover risolvere un problema che non esiste.
Pensavo di dover estrarre il valore medio da un segnale rettangolare per poter misurare modulo e fase.
Invece il simulatore è in grado di farlo da solo per qualsiasi tipo di segnale.
L'unica trasformazione necessaria è convertite lo stimolo sinusoidale in un jitter se si vuole misurare il guadagno ad anello in un punto in cui io segnale è rettangolare.
Come ben spiegato qui https://ieeexplore.ieee.org/document/4766277
3
voti
Francamente mi sembrava strano che il calcolo di un inverso impiegava meno temo di un esponenziale. Per l'esponenziale di solito si usa per il calcolarlo l'algoritmo CORDIC.
Comunque per i posteri utilizzando le regressioni non lineari e partendo dal più semplice modello che rispetti i vincoli:

Per trovare i coefficienti
,
e
che approssima meglio
ho utilizzato il programma R, questo è lo script di calcolo con un range a caso per altri range basta cambiare i valori:
il valore dei coefficienti trovati:
Il grafico, in blu
e in rosso tratteggiato il modello con l'esponenziale:
Comunque per i posteri utilizzando le regressioni non lineari e partendo dal più semplice modello che rispetti i vincoli:

Per trovare i coefficienti




- Codice: Seleziona tutto
x <- seq(0.5, 5, 0.1)
y <- 1 / x
plot(x, y, type="o", col="blue", xlab="x", ylab="1/x")
model<-nls(y ~ a + b * exp(-c*x), start=list(a=1, b=1, c=1))
print(summary(model))
lines(x, predict(model), col="red", lty=2, lwd=3)
il valore dei coefficienti trovati:
- Codice: Seleziona tutto
Formula: y ~ a + b * exp(-c * x)
Parameters:
Estimate Std. Error t value Pr(>|t|)
a 0.25210 0.01027 24.55 <2e-16 ***
b 3.18816 0.11192 28.48 <2e-16 ***
c 1.36780 0.04804 28.47 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.04295 on 43 degrees of freedom
Number of iterations to convergence: 8
Achieved convergence tolerance: 6.92e-06
Il grafico, in blu

1
voti
dadduni ha scritto:No, scusami tu non mi sono spiegato per nulla bene.
Mi interesserebbe qualcosa su approssimazioni di funzioni mirata allefficienza del calcolo numerico
Figurati.
Uno straclassico è il Rivlin, datato ma ancora godibile. Arriva fino all’approssimazione con funzioni razionali.
Theodore J. Rivlin, An Introduction to the approximation of functions, Dover pubs
Ben più spesso è il Timan, datato ma ancora pesante come quando lo si studia per la prima volta.
A.F. Timan, Theory of approximation of functions of a real variable, macmillan
Poi se vuoi farti male, ma tanto male ci sono tutti i libri di Boris Obsieger (ATTENZIONE: contiene matematica russa) cioè i vari numerical methods I-II-III-IV… (n+1).
Buono studio!
-
PietroBaima
86,8k 7 12 13 - G.Master EY
- Messaggi: 11677
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
0
voti
Mi scuso con tutti se disturbo inserendomi con un piccolo OT da ignorantissimo della materia ma spinto da pura curiosità:
@
PietroBaima
perché metti questo avviso?
C'è differenza tra la matematica russa rispetto a quella del resto del mondo?
La matematica non è un linguaggio universale?
Max
@

PietroBaima ha scritto:(...) ATTENZIONE: contiene matematica russa (...)
perché metti questo avviso?
C'è differenza tra la matematica russa rispetto a quella del resto del mondo?
La matematica non è un linguaggio universale?

Disapprovo quello che dite, ma difenderò fino alla morte il vostro diritto di dirlo [attribuita a Voltaire]
Sapere sia di sapere una cosa, sia di non saperla: questa è conoscenza. [Confucio, "I colloqui"]
Sapere sia di sapere una cosa, sia di non saperla: questa è conoscenza. [Confucio, "I colloqui"]
-
Max2433BO
16,0k 4 10 13 - G.Master EY
- Messaggi: 4065
- Iscritto il: 25 set 2013, 16:29
- Località: Universo - Via Lattea - Sistema Solare - Terzo pianeta...
2
voti
E’ una segnalazione semiseria.
I libri di matematica russi (specialmente quelli della editrice MIR) sono particolarmente completi, ma particolarmente ostici.
I matematici russi hanno sempre brillato per la loro competenza e serietà.
Quando cadde la cortina di ferro e finalmente i matematici esteri poterono confrontarsi con i matematici russi scoprirono che molti risultati da loro trovati erano stati trovati in modo indipendente dai matematici russi, con alcuni casi in cui… i matematici russi avevano fatto di più !!
Si vede proprio che l’inverno russo è lungo e duro da superare.
(Sì, le donne le avevano, ma erano troppo impegnate a calcolare tabelle di integrali)
Mi ricordo che c’erano diverse bancarelle che svendevano i libri ingialliti della editrice MIR di analisi, calcolo superiore e di matematica in genere e io li compravo perché li trovavo belli e completi.
Erano scritti in russo, che io non conosco, ma le parole erano così poche che si poteva tranquillamente seguire il filo del discorso dalle formule.
Avevo imparato a riconoscere qualche carattere in cirillico, utilizzato per indicare i se e i solo se, ma non mi ricordo più tanto bene.
I libri di matematica russi (specialmente quelli della editrice MIR) sono particolarmente completi, ma particolarmente ostici.
I matematici russi hanno sempre brillato per la loro competenza e serietà.
Quando cadde la cortina di ferro e finalmente i matematici esteri poterono confrontarsi con i matematici russi scoprirono che molti risultati da loro trovati erano stati trovati in modo indipendente dai matematici russi, con alcuni casi in cui… i matematici russi avevano fatto di più !!
Si vede proprio che l’inverno russo è lungo e duro da superare.
(Sì, le donne le avevano, ma erano troppo impegnate a calcolare tabelle di integrali)
Mi ricordo che c’erano diverse bancarelle che svendevano i libri ingialliti della editrice MIR di analisi, calcolo superiore e di matematica in genere e io li compravo perché li trovavo belli e completi.
Erano scritti in russo, che io non conosco, ma le parole erano così poche che si poteva tranquillamente seguire il filo del discorso dalle formule.
Avevo imparato a riconoscere qualche carattere in cirillico, utilizzato per indicare i se e i solo se, ma non mi ricordo più tanto bene.
-
PietroBaima
86,8k 7 12 13 - G.Master EY
- Messaggi: 11677
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
0
voti
Ti ringrazio
PietroBaima
Per caso tra questi c'è qualcuno dei testi che citi?
Max


PietroBaima ha scritto:(...) Sì, le donne le avevano, ma erano troppo impegnate a calcolare tabelle di integrali (...)

PietrBaima ha scritto:(...) Mi ricordo che c’erano diverse bancarelle che svendevano i libri ingialliti della editrice MIR di analisi, calcolo superiore e di matematica in genere e io li compravo perché li trovavo belli e completi (...)
Per caso tra questi c'è qualcuno dei testi che citi?

Disapprovo quello che dite, ma difenderò fino alla morte il vostro diritto di dirlo [attribuita a Voltaire]
Sapere sia di sapere una cosa, sia di non saperla: questa è conoscenza. [Confucio, "I colloqui"]
Sapere sia di sapere una cosa, sia di non saperla: questa è conoscenza. [Confucio, "I colloqui"]
-
Max2433BO
16,0k 4 10 13 - G.Master EY
- Messaggi: 4065
- Iscritto il: 25 set 2013, 16:29
- Località: Universo - Via Lattea - Sistema Solare - Terzo pianeta...
43 messaggi
• Pagina 3 di 5 • 1, 2, 3, 4, 5
Chi c’è in linea
Visitano il forum: Nessuno e 4 ospiti