2010-10-05 28 views
6

Ich versuche zu lösen (finden sie eine geschlossene Lösung zu), um diese (Risk Chancenberechner) Rekursion:Rezidiv der Form lösen 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 

rSolve Funktion des Mathematica nicht (ich arbeite bin sicher, dass ich die richtige Syntax bin mit, da ich folge die Zwei-Variablen-Beispiele bei http://reference.wolfram.com/mathematica/ref/RSolve.html).

In der Tat wird rSolve nicht einmal löst diese „einfacher“ Rekursion:

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 

Gibt es grundsätzlich schwer, etwas über diese Art von Beziehung Wiederholung der Lösung oder Mathematica nur flockig zu sein?

Das genaue Beispiel verwende ich:

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

Der Rückgabewert ist die gleiche wie meine Eingabe, bis zu einem gewissen Zahl Jonglieren.

Auf der doc Seite, es ist unter „Scope“ und „Partial Difference Equations“

+0

@ user354134 Können Sie Ihre Syntax und die exakten Beispiele, die Sie verfolgen, posten? Ich finde die entsprechenden Probleme in der Mathematica-Hilfe nicht - Tnx! BTW ... tnx zu denen, die diese Frage wieder geöffnet haben! –

+0

Fertig wie angefordert. – barrycarter

+0

Nicht sicher, es hilft, aber "p [n, m]/n^(m-2)" scheint in n für alle Werte von m linear zu sein, aber mit einem Nicht-0-Schnittpunkt. – barrycarter

Antwort

0

Haftungsausschluss dann: Ich weiß, nur einen wenig linearen Algebra und etwas Kalkül. Ich weiß nichts über Wolfram.

Es könnte sein, dass etwas grundsätzlich schwer ist. Die Beispiele, mit denen Sie verlinkt haben, sind einfacher als Ihre. Zum Beispiel, schauen Sie sich dieses Beispiel:

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

ganz a [m, n] sind auf einer geraden Linie, m + n = k für eine Konstante k. Wie gesagt, du kennst ein [10,5]. Daraus können Sie ein [11,4], ein [12,3] usw. berechnen. Aber sie sind alle auf einer geraden Linie. Aus diesem Grund enthält die Ausgabe eine Funktion von m + n. Sie könnten neu schreiben es mit nur einer Variablen und erhalten den gleichen Effekt:

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

Alle Beispiele in dieser Verbindung auf einer geraden Linie sind, auch. Für jedes a [m, n], das du wissen musst, ist n immer eine Funktion von m. Alles in dieser Form ist mit linearen Algebra-Matrizen einfach zu lösen. (Lassen Sie mich wissen, wenn Sie wissen wollen, wie man diese macht.)

Für Ihre ist das jedoch nicht der Fall. Dein dehnt sich aus wie ein Baum, nicht wie eine Linie. Ich denke, dass die die Schwierigkeit sein könnte.

Es erinnert mich irgendwie an den Unterschied zwischen partiellen Derivaten und Gesamtderivaten. Das könnte ein guter Ausgangspunkt sein.

+0

Nicht sicher, dass dies überhaupt hilft, aber: "p [n-1, m + 1] -p [n, m] == p [n, m-2] - p [n-3, m]" gilt, und lässt mich fragen, ob mn irgendwie der Schlüssel hier ist. – barrycarter

+2

Diese sind immer noch nicht in einer geraden Linie wie alle anderen Beispiele. Warum brauchst du es trotzdem? Nur eine persönliche Herausforderung? Wenn Sie es tatsächlich berechnen müssen, könnten Sie nur 100x100 Ergebnisse memotieren. – Eyal

1

... nur meine zwei Cent, aber ist dieses System von Gleichungen nicht fehlerhaft? d.h .:

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

Zum Beispiel wollen wir versuchen, p [N, 2] zu berechnen:

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

Ich denke, Sie meinen Punkt. Es wird nie eine Ausgangsbedingung für eine gerade m erreichen. Das Gleiche gilt für:

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

Auf der gegenüberliegenden, der Anfangszustand p[1,m] == 0 nie verwendet werden. Vielleicht würde das Hinzufügen einer Definition für p [n, 0] oder p [n, 2] Ihr Problem lösen, indem Sie es klar definieren.

+0

OK, aber wo du P [N, 0] sagst, ist das nicht gleich 1 nach meinen obigen Bedingungen? Ich bin mir ziemlich sicher, dass diese Rekursion funktioniert, da ich sie in Mathematica berechnen kann, wenn auch nicht in geschlossener Form. – barrycarter

+0

In Ihrer ursprünglichen Aufgabe, sind M & n One-basiert? Wenn sie auf Eins basieren, gibt es keine Regel zur Berechnung von P [3,2], da sowohl die erste als auch die dritte Regel versuchen, sich auf P [3,0] zu beziehen. Wenn sie nullbasiert sind, ist der Wert von P [3,0] undefiniert. – user434507

+0

Was passiert auch, wenn Sie versuchen, p [3,1] zu berechnen? ... sollte es versuchen, dem Pfad p [3, m] oder p [n, 1] zu folgen? ... beides führt zu unterschiedlichen Lösungen. Ein Wert, mehrere Pfade ... problematisch. Ihr Problem ist in vielerlei Hinsicht schlecht definiert. – dagnelies

Verwandte Themen