Supponiamo che tu abbia una ricorrenza
estende su reali positivi.
T(n)={T(n−nc)+T(nc)+f(n)1n > 2otherwise
Cosa possiamo fare con questa funzione? Bene, non molto a meno che non ci sovrapponiamo alcune strutture. Vengo da uno sfondo di analisi numerica, che è pavimentato con ricette numeriche che in qualche modo funzionano anche quando il problema sottostante non è abbastanza regolare (non importa, gettiamo ancora il metodo di Newton nelle sue differenze divise) o troppo complicato da analizzare (ordina di come questo problema). La mia reazione istintiva nei confronti di questi problemi è quella di fare un presupposto fatto a mano, incrociare le dita e sperare per il meglio. In questo caso, sembra dare limiti relativamente buoni.
In particolare, voglio formulare due ipotesi principali. Una di queste ipotesi è più o meno priva di fondamento, ma senza di essa non andremo molto lontano. L'altro ha un'intuizione visiva piuttosto piacevole che si spera si possa grok, ma è ancora più ondulata di ogni altra cosa.
- Presumo che sia "smooth-ish". È abbastanza facile vedere che T ( n ) non è differenziabile ovunque. In realtà, non è nemmeno continua, dal momento che per f ( n ) = log ( n ) e c = 1T(n)T(n)f(n)=log(n)c=12lim n → 2 + T ( n ) = 2 + ln 2 n ↦ √limn→2−T(n)=1limn→2+T(n)=2+ln2 n↦n- √n↦n−−√ T(n)n2nnT(n)n↦n−n−−√T(n)n2da qualche parte nella sua traiettoria. Sono molte discontinuità, potrebbe persino dare una spinta alla funzione di Dirichlet per i suoi soldi. Se stiamo arrivando al punto in cui stiamo confrontando i comportamenti di una funzione con quello dell'esempio prototipico di una funzione ininterrotta dal nulla, non è ridicolo provare a sostenere che è "liscio"? Bene, si scopre che in pratica, gli effetti di queste discontinuità diminuiscono asintoticamente, al punto che il tuo grafico sembra quasi regolare quando tende all'infinito! Pertanto, propongo di posare i forconi e di guardare dall'altra parte in questa circostanza. In particolare, assumerò che in qualsiasi punto di interesse sufficientemente lontano dall'origine,nnT(n)è differenziabile, o almeno approssimativamente differenziabile in alcuni quartieri.
- Assumerò anche una posizione di levigatezza ancora più forte quando è sufficientemente lontano. Supponiamo che sia una funzione sublineare tale che (per esempio ), quindi la derivata fa non varia in modo significativo quando è abbastanza lento. Intuitivamente, man mano che aumenta, la dimensione relativa del vicinato diminuisce (poiché la sua dimensione è solo , che cresce molto più lentamente di ). Alla fine, la dimensione di questo quartiere diventa così insignificante (rispetto aα ( n ) n > α ( n ) n c T ′ ( ξ ∈ ( n - α ( n ) , n ) α ( n ) n ( n - α ( n ) , n ) α ( n ) n n T ( n )nα(n)n>α(n)ncT′(ξ∈(n−α(n),n)α(n)n(n−α(n),n)α(n)nn) che il tasso di variazione di all'interno di questo vicinato non cambia più in modo così drammatico.T(n)
Ora, entrambe queste proprietà sono assunte e non ho idea di come procedere dimostrando effettivamente in modo rigoroso. Ma come ho detto prima, incrociamo le dita e speriamo nel meglio.
Cominciamo con la relazione di ricorrenza:
Ora, suppongo che sia abbastanza regolare nell'intervallo tra e . Facendo appello a uno dei nostri strumenti analitici classici, il teorema del valore medio, ci dà
Inoltre, quando è sufficientemente grande, assumiamo che sia approssimativamente lo stesso durante questo intervallo, e quindi prenda anche il valore di una qualsiasi delle differenze finite all'interno di questo intervallo. Questo allora significa che
Tn-ncnT(n)-T(n- n c )
T(n)T(n)−T(n−nc)ncT(n)−T(n−nc)nc=T(n−nc)+T(nc)+f(n)=T(nc)+f(n)=T(nc)+f(n)
Tn−ncnnT′(ξ)T′(ξ)≈T(n)-T(n-ϵ)T(n)−T(n−nc)nc=T′(ξ∈(n−nc,n)).
nT′(ξ)ϵ=1 n c ( T ( n ) - T ( n - 1 ) )T′(ξ)≈T(n)−T(n−ϵ)ϵ ϵ<nc
In particolare, prendi per ottenerne uno approssimazione della differenza divisa in due fasi
Possiamo telescopare questo per ottenere
ϵ=1 T(n)≈n∑kT(kc)nc(T(n)−T(n−1))T(n)−T(n−1)≈T(nc)+f(n)≈T(nc)+f(n)nc
T(n)≈∑knT(kc)kc+∑knf(k)kc
perturbante rivela che ha due fasi asintotiche, a seconda della natura asintotica di .T(n)T(n)f(z)
Quando ( è più veloce di ), allora domina la somma giusta e abbiamo che spesso può essere approssimato con l'integrale .f(n)=o(nc)fncT(n)=Θ(∑knf(k)kc)∫nf(x)xcdx
Quando , la somma di sinistra domina la destra. Qui, dobbiamo analizzare la somma
dove .f(n)=ω(nc)
(∑knT(kc)kc)+Fc(n)
Fc(n)=∫nf(x)xcdx
In virtù dell'argomento smoothness, possiamo ancora una volta considerare questo come una somma di Riemann ancorata a sinistra, approssimando l'integrale . Applicare un teorema del valore medio simile sull'integrale dà
Possiamo semplicemente andare avanti e approssimarlo con , che dà l'approssimazione
per alcune costanti che limitano la serie.∫nT(xc)xcdx
∑kT(kc)kc≈∫nf(xc)xcdx=nT(ξ<nc)ξc
nT(nc)ncT(n)≤nMT(nc)nc+Fc(n)
M
Supponiamo ora di avere la sequenza iterata dove , quindi possiamo usare questa sequenza per telescopare la disuguaglianza di cui sopra per ottenere:
Ancora una volta, possiamo legare il termine di una costante per scoprire che
dove . Semplificando un po 'e fondendo insieme alcuni dei termini (in particolare, sappiamo che(n,nc,nc2,nc3,…,nck)nck<2
T(n)≤n(∑ik−1MinciFc(nci)+Mknck)(*)
Fc(nci)T(n)=O(Fc(n)+nFc(nc)(Mn−c+M2n−c2+⋯+Mkn−ck))
k=logc(log(2)log(n))Mn−cn−ckè una costante), otteniamo
T(n)=O(nkFc(n)Mk)
Tuttavia, questo limite è relativamente lento e dovresti fare riferimento a ogni volta che è possibile.(*)
Essere consapevoli del fatto che in nessun modo questo è rigoroso. Non ho fornito alcun supporto che questo dovrebbe funzionare al di là di alcune approssimazioni goffe. Tuttavia, se hai solo bisogno di una rapida ipotesi asintotica per motivi di analisi informale, allora puoi effettivamente vedere che questo schema funziona bene (per valori abbastanza grandi di , di solito ) nella pratica.nn>10
Ad ogni modo, per tutte le scelte di e che ho provato, il seguente calcolo
dove
sembra dare buone approssimazioni . Questa tecnica generalizza anche a ricorrenze della forma
che può essere approssimato con
dovecf
T^(n)F(n)=n∑klogclogn2MknckF(nck)=∑knf(k)kc
M≈∑kT(kc)kcnT(nc)nc
T(n)=T(n−α(n))+T(β(n))+f(n)
αk(n)=α(k⋯(α(n)))#β(n)n,β(n),β(β(n)),…,β#β(n)(n)12T^(n)F(n)=n∑k#β(n)Mkαk(n)F(βk(n))=∑knf(k)α(k)
αk(n)=α(⋯k(α(n)))e indica il numero di elementi della sequenza tale che l'ultimo termine sia compreso tra e .
#β(n)n,β(n),β(β(n)),…,β#β(n)(n)12