Equazione esponenziale

milos144
Ho un dubbio: un'equazione di questo
$1 + 5^(2x) = 3^(x + 1)$ dove l'utilizzo dei logaritmi non porta a nulla...perché l'espressione $log(1 + 5^(2x))$ non si puó semplificare, si puó risolvere senza ricorrere al metodo grafico. Grazie

Risposte
Palliit
Magari sbaglio, ma mi sembra che a mano non ci siano alternative al metodo grafico.

@melia
Magari non sbagli. Senza grafici a mano non si fa.

ghira1
"milos144":
Ho un dubbio: un'equazione di questo
$1 + 5^(2x) = 3^(x + 1)$ dove l'utilizzo dei logaritmi non porta a nulla...perché l'espressione $log(1 + 5^(2x))$ non si puó semplificare, si puó risolvere senza ricorrere al metodo grafico. Grazie


Potresti usare un qualche metodo numerico. Per esempio, riscrivi la cosa come:

$x=\log_3(1+5^{2x})-1$

E fai una cosa iterativa.

$x_0=0$ poi $x_n=\log_3(1+5^{2x_{n-1}})-1$ ripetutamente.

Per esempio:

#!/usr/bin/perl

$x=0;

while (1) {
print $x."\n";
$x=(log(1+5**(2*$x))/log(3))-1;
}


stampa:
0
-0.369070246428543
-0.757808061605301
-0.92387986837907
-0.954631051164484
-0.958811534736303
-0.959349962126715
-0.959418806911474
-0.959427601366886
-0.959428724664804
-0.959428868139174
-0.959428886464549
-0.95942888880517
-0.959428889104128
-0.959428889142313
-0.95942888914719
-0.959428889147813
-0.959428889147892
-0.959428889147902
-0.959428889147904
e poi non cambia più.

Verifichiamo con una calcolatrice:

$1+5^{2*-0.959428889147904}=1.045580173$

$3^{-0.959428889147904+1}=1.045580173$

e ci siamo.

Ci sono altri metodi possibili. Se ti accontenti di, diciamo, 3 cifre puoi farlo con 6 giri con una calcolatrice.

ghira1
https://it.wikipedia.org/wiki/Metodo_delle_tangenti

è più veloce:

#!/usr/bin/perl

$x=-1;
while (1) {
print $x."\n";
$f=1+25**$x-3**($x+1);
$f1=log(25)*25**$x-3*log(3)*3**$x;

$x=$x-$f/$f1;
}


-1
-0.958756817288305
-0.959428711260713
-0.959428889147892
-0.959428889147904

ma se parti da 0 non funziona.

-1 non è assurdo come punto di partenza. $1+\frac{1}{25}$ e $3^0$ non sono troppo diversi.

(L'altro metodo, anche partendo da -1, è più lento.)

Questo si può fare con una calcolatrice senza troppa fatica se ti accontenti di 3 cifre. E se non ti bastano 3 cifre, con poco lavoro in più hai troppissime cifre.

ghira1
Se vuoi un metodo anche più veloce, c'è https://en.wikipedia.org/wiki/Halley%27s_method

ghira1
(A scuola abbiamo fatto Newton, iterazione, bisezione e secante. Halley non lo conoscevo prima di leggere la pagina Wikipedia sul metodo di Newton in questi giorni.)

milos144
Grazie mille per i consigli.

ghira1
"milos144":
Grazie mille per i consigli.


Il "metodo grafico" in cosa consiste?

milos144
A scuola abbiamo fatto Newton, iterazione, bisezione e secante....mi puoi consigliare un libro su cui trovare questi procedimenti.
Grazie

ghira1
"milos144":
A scuola abbiamo fatto Newton, iterazione, bisezione e secante....mi puoi consigliare un libro su cui trovare questi procedimenti.
Grazie


Dovrebbe bastare Wikipedia, credo.

ghira1
Tanto per vedere....

La bisezione. Dovrebbe essere il metodo più lento.

#!/usr/bin/perl

$a=-1;
$b=0;

while (1) {
$x=($a+$b)/2;
print $x."\n";
$f=1+25**$x-3**($x+1);
if ($f>0) {
$a=$x;
} else {
$b=$x;
}
}

stampa:

-0.5
-0.75
-0.875
-0.9375
-0.96875
-0.953125
-0.9609375
-0.95703125
-0.958984375
-0.9599609375
-0.95947265625
-0.959228515625
-0.9593505859375
-0.95941162109375
-0.959442138671875
-0.959426879882812
-0.959434509277344
-0.959430694580078
-0.959428787231445
-0.959429740905762
-0.959429264068604
-0.959429025650024
-0.959428906440735
-0.95942884683609
-0.959428876638412
-0.959428891539574
-0.959428884088993
-0.959428887814283
-0.959428889676929
-0.959428888745606
-0.959428889211267
-0.959428888978437
-0.959428889094852
-0.95942888915306
-0.959428889123956
-0.959428889138508
-0.959428889145784
-0.959428889149422
-0.959428889147603
-0.959428889148512
-0.959428889148057
-0.95942888914783
-0.959428889147944
-0.959428889147887
-0.959428889147915
-0.959428889147901
-0.959428889147908
-0.959428889147905
-0.959428889147903
-0.959428889147904
-0.959428889147904

ghira1
E per la completezza... il metodo delle secanti che forse non uso da molto tempo.

#!/usr/bin/perl

$a=-1;
$b=0;

sub f {
my $x=shift;
return 1+25**$x-3**($x+1);
}

while (1) {
$c=$b-(f($b)*($b-$a)/(f($b) - f($a)));
print $c."\n";
$a=$b;
$b=$c;
}


-0.961538461538461
-0.959511999542263
-0.959428819987952
-0.959428889150169
-0.959428889147904
-0.959428889147904

Non male! Temevo molto peggio!

veciorik
C'è un'altra radice in x=0.404774...

ghira1
"veciorik":
C'è un'altra radice in x=0.404774...


Non mi ero nemmeno messo a cercare altre radici, lo ammetto.

milos144
Scusami ghira, ma c'é una qualche applicazione per fare i calcoli che hai fatto? Come dovrei fare per non eseguirli a mano.
Grazie :oops:

ghira1
"milos144":
Scusami ghira, ma c'é una qualche applicazione per fare i calcoli che hai fatto? Come dovrei fare per non eseguirli a mano.


Un qualsiasi linguaggio di programmazione? Un foglio di calcolo?

veciorik
Il tuo programma scolastico quali strumenti prevede ?

ghira1
"milos144":
Scusami ghira, ma c'é una qualche applicazione per fare i calcoli che hai fatto? Come dovrei fare per non eseguirli a mano.

Forse non capisco cosa intendi. I miei messaggi contengono programmi perl. Non sarebbero "applicazioni"? Non ti consiglio necessariamente il perl. Il python sembra molto popolare attualmente. Imparare un qualche linguaggio di programmazione potrebbe esserti utile. O potresti usare un foglio di calcolo come Excel o LibreOffice. O una calcolatrice.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.