Recupero:la funzione salterello

Il forum di Base5, dove è possibile postare problemi, quiz, indovinelli, rompicapo, enigmi e quant'altro riguardi la matematica ricreativa e oltre.

Moderatori: Gianfranco, Bruno

Rispondi
0-§
Livello 6
Livello 6
Messaggi: 454
Iscritto il: ven nov 18, 2005 10:33 pm
Località: Bologna

Recupero:la funzione salterello

Messaggio da 0-§ » mer nov 30, 2005 3:49 pm

Ecco una stranissima funzione ricorsiva,che ho battezzato "funzione salterello".
F(0)=1
e f(N)=f(N-1)°N
Il simbolino ° é alternativamente più,meno,per,diviso.
Cioé partendo da uno si aggiunge uno,si sottrae due,si moltiplica per tre,si divide per quattro,si aggiunge cinque,si sottrae sei ecc.
A occhio direi che la funzione tende a zero.Ma il vero problema é:come si calcola f(x)?Come cambia la successione se cambio l'ordine degli operatori primari?

Si era giunti alla conclusione che la funzione tendeva a meno infinito,ma una formula esatta,non dico esplicita,ancora non é stata trovata.Problema insolubile?Mah,non lo escludo...qualche tentativo però...
Aloha!
Lo scopo principale di una dichiarazione DATA è quello di dare dei nomi alle costanti; anziché inserire ogni volta 3.141592653589793 come valore di \pi, con una dichiarazione DATA si può assegnare tale valore alla variabile PI che può essere poi usata per indicare la costante. Ciò rende anche più semplice modificare il programma, qualora il valore di \pi dovesse cambiare.

-Da un vecchio manuale FORTRAN della Xerox

Pasquale
Livello 11
Livello 11
Messaggi: 2334
Iscritto il: mer mag 25, 2005 1:14 am

Re: Recupero:la funzione salterello

Messaggio da Pasquale » lun ott 03, 2016 6:25 pm

Ecco riesumato un altro vecchio quesito:

DIM y(0 TO 10000)
LET x=0
LET y(x)=1

FOR x=1 TO 10000
IF MOD(x,4)=1 THEN
LET y(x)=y(x-1)+ x
ELSEIF MOD(x,4)=2 THEN
LET y(x)=y(x-1)-x
ELSEIF MOD(x,4)=3 THEN
LET y(x)=y(x-1)*x
ELSE
LET y(x)=y(x-1)/x
END IF
10 IF MOD(x,4)=1 THEN PRINT y(x)
20 !'IF MOD(x,4)=2 THEN PRINT y(x)
30 !'IF MOD(x,4)=3 THEN PRINT y(x)
40 !'IF MOD(x,4)=0 THEN PRINT y(x)
50 !'PRINT y(x)
NEXT X

END

Interessante e strana funzione: nella routine che calcola il valore della funzione per 1 <= x <= 10000 (ho sostituito N con x), ho lasciato funzionante solo la stampa del rigo 10, per porre in evidenza il valore positivo crescente della funzione nel caso in cui sia x Mod 4 = 1.
Negli altri casi il valore è negativo, ma solo per x Mod 4 = 3 il valore assoluto della funzione è maggiore di quello indicato sopra, ovvero cresce più velocemente di quello con valore positivo.
Come interpretare questo "andazzo" della funzione "salterello" ? Potremmo dire che la funzione tende a più e meno infinito? che tende lentamente a più infinito e più velocemente a meno infinito? La velocità della tendenza influisce sulla determinazione della tendenza in un senso solo, dal momento che per qualsiasi valore negativo della funzione ce ne sarà sempre un altro positivo di valore maggiore?
Infine, in matematica come vengono considerati ad esempio \text -\infty^2 e +\infty ? il primo è maggiore del secondo, o il secondo è maggiore del primo, perché positivo?
Dovendo scegliere, opterei per quest'ultima interpretazione.
Cosa ne pensate? Perché?

Per quanto riguarda ilo quesito principale (la formula), al momento nessuna idea.
_________________

\text {     }ciao Immagine ciao
E' la somma che fa il totale (Totò)

Pasquale
Livello 11
Livello 11
Messaggi: 2334
Iscritto il: mer mag 25, 2005 1:14 am

Re: Recupero:la funzione salterello

Messaggio da Pasquale » mar ott 04, 2016 2:50 am

Per quanto possa risultare utile, ecco una formuletta che consente di calcolare il valore di f(n), in funzione di f(n-1), che nella formula indico con A, con questo intendendosi che una formula in grado di calcolare direttamente il valore di f(n) senza altri riferimenti non mi è riuscito di elaborarla.
Inoltre, indico con M il valore del Modulo 4 di n:

f(n) = \frac{AM+A}{n} + \frac{n^2+An-2A}{n}\cdot M + \frac{A-An-3n^2}{n} \cdot {\frac{M^2-M}{2}} + \frac{An^2+6n^2-A}{n} \cdot { \frac{M^3-3M^2+2M}{6}}


Esempio:

se n=13 ed f(8) = -1.71875, allora f(9)=11.28125

se n=3975 ed f(3974)=-795.08371387963, allora f(3975)=-3160457.76267153

Tanto verificabile con la routine di cui sopra e salvo le approssimazioni conseguenti alle divisioni salterellanti 1 ogni 4 valori di n

Ne consegue per il vostro divertimento la seguente nuova routine:

INPUT PROMPT "Inserisci il valore di n -> ":n
INPUT PROMPT "Inserisci il valore di f(n-1) -> ":A
LET M=MOD(n,4)
PRINT
LET x=(a*m+a)/n+(n^2+a*n-2*a)*m/n+(a-a*n-3*n^2)*(m^2-m)/(2*n)+(a*n^2+6*n^2-a)*(m^3-3*m^2+2*m)/(6*n)
PRINT "f(";STR$(n);") =";x
END

Appare evidente che per utilizzare questa routine occorre conoscere il valore di f(n-1) e dunque bisogna utilizzare in prima battuta l'altra routine. Ne consegue che utilizzando l'altra routine, non serve più utilizzare questa e che in sostanza la formula elaborata con un certo impiego di tempo non è servito a nulla, se non a titolo di esercizio e divertimento, come nello spirito di Base5.

Non credo che sia possibile tirar fuori una formula direttamente in funzione di n anzicché di f(n-1), ma tenatar non nuoce, se ci volete provare.

Per quanto riguarda la formula elaborata, pur apparendo abbastanza complicata non è stato difficile impostare il lavoro di ricerca, una volta rimuginato sulla particolarità della funzione salterina :idea:
_________________

\text {     }ciao Immagine ciao
E' la somma che fa il totale (Totò)

Rispondi