2010-10-05 7 views
6

Próbuję rozwiązać (znaleźć rozwiązanie zamkniętej formy) tę Kalkulator ryzyka (OR) równanie rekurencyjne:Rozwiąż powtarzalność formy p [n, m] == p [n, m-2] + p [n-1, m-1] + 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 

funkcja RSolve Mathematica nie działa (jestem pewien, że używam właściwą składnię z , ponieważ Obserwuję dwa zmienne przykłady pod adresem http://reference.wolfram.com/mathematica/ref/RSolve.html).

W rzeczywistości RSolve nie będzie nawet rozwiązać ten „prostszy” rekursji:

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 

jest coś fundamentalnie trudno o rozwiązywaniu tego typu równanie rekurencyjne lub jest Mathematica prostu łuszcząca?

Dokładna przykład używam:

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}] 

Zwracana wartość jest taka sama jak mojego wejścia, aż do pewnego numeru żonglerki.

Na stronie doc, to pod „Zakres”, a następnie „równań różnicę”

+0

@ user354134 Czy możesz opublikować swoją składnię i dokładne przykłady, które obserwujesz? Nie znajduję odpowiednich problemów w pomocy Mathematica - Tnx! BTW ... tnx do tych, którzy ponownie otworzyli to pytanie! –

+0

Zrobione ponownie. – barrycarter

+0

Nie jestem pewien, czy to pomaga, ale "p [n, m]/n^(m-2)" wydaje się liniowe w n dla wszystkich wartości m, ale z przechwyceniem nie-0. – barrycarter

Odpowiedz

0

Disclaimer: Wiem tylko trochę algebry liniowej i jakiś rachunek. Nic nie wiem o Wolframie.

Możliwe, że jest w tym coś fundamentalnie ciężkiego. Przykłady, z którymi łączysz się, są łatwiejsze niż twoje. Na przykład, wygląd w tym przykładzie:

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

Wszystkie A [m, n] są w linii prostej, m + n = K o pewnej stałej K. Tak jak powiedz, że znasz [10,5]. Z tego można obliczyć [11,4], [12,3] itd. Ale wszystkie są na linii prostej. Dlatego wyjście zawiera pewną funkcję m + n. Można ponownie zapisać go z tylko jednej zmiennej i uzyskać ten sam efekt:

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

Wszystkie przykłady w tym linkiem znajdują się na linii prostej, too. Dla każdego [m, n], które musisz znać, n jest zawsze funkcją m. Wszystko z tej formy jest łatwe do rozwiązania za pomocą macierzy liniowych algebry. (Daj mi znać, jeśli chcesz wiedzieć, jak to zrobić.)

Dla Ciebie jednak tak nie jest. Twoja rozwija się jak drzewo, a nie jak linia. Myślę, że , że może być trudność.

To przypomina mi różnicę między pochodnymi cząstkowymi a pochodnymi całkowitymi. To może być dobry punkt wyjścia.

+0

Nie jestem pewien, czy to pomaga, ale: "wstrzymuje p [n-1, m + 1] -p [n, m] == p [n, m-2] - p [n-3, m]", i zastanawia mnie, czy w tym przypadku mn jest kluczem. – barrycarter

+2

Te wciąż nie są w linii prostej, jak wszystkie inne przykłady. Dlaczego i tak tego potrzebujesz? Tylko osobiste wyzwanie? Jeśli rzeczywiście chcesz go obliczyć, możesz po prostu zapamiętać wyniki 100x100. – Eyal

1

... tylko moje dwa centy, ale czy ten układ równań nie jest wadliwy? tj .:

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

Na przykład, spróbujmy obliczyć p [n, 2]:

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

Chyba masz mój punkt widzenia. Nigdy nie osiągnie stanu początkowego nawet dla m. samo dla:

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

na przeciwległym, nigdy nie będzie używany Początkowy stan p[1,m] == 0. Być może dodanie definicji p [n, 0] lub p [n, 2] rozwiąże problem, czyniąc go dobrze zdefiniowanym.

+0

OK, ale gdzie mówisz P [N, 0], nie jest równa 1 przez moje warunki powyżej? Jestem pewien, że ta rekurencja działa, ponieważ mogę ją obliczyć w Mathematica, choć nie w formie zamkniętej. – barrycarter

+0

W swoim pierwotnym zadaniu są oparte na M & N? Jeśli są one oparte na jednej podstawie, to nie ma reguły, aby obliczyć P [3,2], ponieważ zarówno pierwsza, jak i trzecia reguła próbują odnosić się do P [3,0]. Jeśli są oparte na zera, to wartość P [3,0] jest niezdefiniowana. – user434507

+0

Co się stanie, jeśli spróbujesz obliczyć p [3,1] ??? ... czy powinien podążać ścieżką p [3, m] lub p [n, 1]? ... oba prowadzą do różnych rozwiązań. Jedna wartość, kilka patów ... problematycznych. Twój problem jest źle określony na wiele sposobów. – dagnelies