2010-10-05 4 views
6

Sto provando a risolvere (trovare una soluzione in forma chiusa a) questo (odds Risk calculator) recidiva relazione:Risolvi la ricorrenza della forma p [n, m] == p [n-2, m]

p[n,m] == 2890/7776*p[n,m-2] + 2611/7776*p[n-1,m-1] + 2275/7776*p[n-2,m], 
p[n,1] == 855/1296 + 441/1296*p[n-1,1], 
p[3,m] == 295/1296*p[3,m-2] + 420/1296*p[2,m-1], 
p[2,m] == 55/216, 
p[1,m] == 0 

funzione RSolve di Mathematica non funziona (sono sicuro che sto utilizzando la sintassi giusta , dal momento che sto seguendo gli esempi a due variabili su http://reference.wolfram.com/mathematica/ref/RSolve.html).

Infatti, RSolve non sarà nemmeno risolvere questo ricorsione "semplice":

p[n,m] == p[n,m-2] + p[n-1,m-1] + p[n-2,m], 
p[0,m] == 1, 
p[1,m] == 1, 
p[n,1] == 1, 
p[n,0] == 1 

C'è qualcosa di fondamentalmente duro a risolvere questo tipo di relazione recidiva o è Mathematica solo di essere traballante?

L'esempio esatto che sto usando:

RSolve[{ 
p[n,m] == p[n,m-2] + p[n-1,m-1] + p[n-2,m], 
p[0,m] == 1, 
p[1,m] == 1, 
p[n,1] == 1, 
p[n,0] == 1 
}, p[n,m], {n,m}] 

Il valore di ritorno è lo stesso come il mio ingresso, fino a un certo numero di giocoleria.

Nella pagina doc, è sotto "Ambito di applicazione" e quindi "equazioni alle differenze parziali"

+0

@ user354134 Potresti pubblicare la tua sintassi e gli esempi esatti che stai seguendo? Non trovo i problemi equivalenti nell'aiuto di Mathematica- Tnx! A proposito ... a quelli che hanno riaperto questa domanda! –

+0

Fatto come riqestato. – barrycarter

+0

Non è sicuro che aiuti, ma "p [n, m]/n^(m-2)" sembra essere lineare in n per tutti i valori di m, ma con un'intercetta non 0. – barrycarter

risposta

0

Disclaimer: io conosco solo un po 'di algebra lineare e qualche calcolo. Non so nulla di Wolfram.

Potrebbe essere che ci sia qualcosa di fondamentalmente difficile a riguardo. Gli esempi a cui ti sei collegato sono tutti più facili dei tuoi. Per esempio, a questo esempio:

RSolve[a[m + 1, n] - 3/4 a[m, n + 1] == 0, a[m, n], {m, n}] 

Tutto il un [m, n] sono su una linea retta, m + n = k per una costante k. Come dire, conosci un [10,5]. Da questo puoi calcolare [11,4], [12,3], ecc. Ma sono tutti su una linea retta. Ecco perché l'output include alcune funzioni di m + n. Si potrebbe riscrivere con una sola variabile e ottenere lo stesso effetto:

RSolve[{a[m + 1] - 3/4 a[m] == 0, m+n=k}, a[m], {m, n}] 

Tutti gli esempi in quel collegamento sono su una linea retta, anche. Per ogni a [m, n] che devi sapere, n è sempre una funzione di m. Qualsiasi cosa di quella forma è facile da risolvere con matrici di algebra lineare. (Fatemi sapere se volete sapere come fare quelli.)

Per il vostro, tuttavia, questo non è il caso. La tua si espande come un albero, non come una linea. Penso che quello potrebbe essere la difficoltà.

Mi ricorda la differenza tra derivate parziali e derivate totali. Potrebbe essere un buon punto di partenza.

+0

Non sono sicuro che questo sia d'aiuto, ma: "p [n-1, m + 1] -p [n, m] == p [n, m-2] - p [n-3, m]" contiene, e mi chiedo se mn sia la chiave qui in qualche modo. – barrycarter

+2

Quelli ancora non sono in linea retta come tutti gli altri esempi. Perché ne hai bisogno comunque? Solo una sfida personale? Se hai effettivamente bisogno di calcolarlo, puoi semplicemente memoizzare i risultati 100x100. – Eyal

1

... solo i miei due centesimi, ma questo sistema di equazioni non è difettoso? cioè .:

p[n,m] == 2890/7776*p[n,m-2] + 2611/7776*p[n-1,m-1] + 2275/7776*p[n-2,m] 

Per esempio, proviamo a calcolare p [N, 2]:

p[N,2] = 2890/7776*p[N,0] + ... 
     = 2890/7776*2890/7776*p[N,-2] + ... 
     = ... p[N,-4] + ... 

Credo che hai avuto il mio punto. Non raggiungerà mai una condizione iniziale per un valore pari a m.Lo stesso vale per :

p[3,m] == 295/1296*p[3,m-2] + ... 

Al contrario, non verrà mai utilizzato la condizione iniziale p[1,m] == 0. Forse aggiungere una definizione per p [n, 0] o p [n, 2] risolverebbe il tuo problema rendendolo ben definito.

+0

OK, ma dove dici P [N, 0], non è uguale a 1 secondo le mie condizioni sopra? Sono abbastanza sicuro che questa ricorsione funzioni, dal momento che posso calcolarla in Mathematica, anche se non in forma chiusa. – barrycarter

+0

Nel tuo compito originale, sono m & n one-based? Se sono a base uno, allora non esiste una regola per calcolare P [3,2], perché sia ​​la prima che la terza regola cercano di riferirsi a P [3,0]. Se sono a base zero, il valore di P [3,0] non è definito. – user434507

+0

Inoltre, cosa succede se provi a calcolare p [3,1] ??? ... dovrebbe provare a seguire il percorso p [3, m] o p [n, 1]? ... entrambi portano a soluzioni diverse. Un valore, diversi percorsi ... problematici. Il tuo problema è mal definito in molti modi. – dagnelies