solve mit Intervallen? < MuPad < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 15:50 Mi 24.09.2008 | Autor: | Forty |
Aufgabe | PT1_obs = PT1_real + (1 - PT1_real)* PT2_real * PT3_real*(1/7) + (1 - PT1_real)* (1 - PT2_real)* PT3_real*(2/8) + (1 - PT1_real)* PT2_real* (1 - PT3_real)* (2/8) + (1 - PT1_real)* (1 - PT2_real)* (1 - PT3_real)*(3/9)
PT2_obs = PT2_real + (1 - PT2_real)* PT1_real * PT3_real*(1/7) + (1 - PT1_real)* (1 - PT2_real)* PT3_real*(2/8) + (1 - PT2_real)* PT1_real* (1 - PT3_real)* (2/8) + (1 - PT1_real)* (1 - PT2_real)* (1 - PT3_real)*(3/9)
PT3_obs = PT3_real + (1 - PT3_real)* PT1_real * PT2_real*(1/7) + (1 - PT1_real)* (1 - PT3_real)* PT2_real*(2/8) + (1 - PT2_real)* PT1_real* (1 - PT3_real)* (2/8) + (1 - PT1_real)* (1 - PT2_real)* (1 - PT3_real)*(3/9):
mit PT1_obs,PT2_obs,PT3_obs aus dem Intervall [0,1]
Aufgabe: Finde eine geschlossen Form für PT1_real,PT2_real,PT3_real.
|
Diese Aufgabe Versuche ich in MuPad zu lösen in dem ich folgendes eingebe:
f:= PT1_obs = PT1_real + (1 - PT1_real)* PT2_real * PT3_real*(1/7) + (1 - PT1_real)* (1 - PT2_real)* PT3_real*(2/8) + (1 - PT1_real)* PT2_real* (1 - PT3_real)* (2/8) + (1 - PT1_real)* (1 - PT2_real)* (1 - PT3_real)*(3/9):
g:= PT2_obs = PT2_real + (1 - PT2_real)* PT1_real * PT3_real*(1/7) + (1 - PT1_real)* (1 - PT2_real)* PT3_real*(2/8) + (1 - PT2_real)* PT1_real* (1 - PT3_real)* (2/8) + (1 - PT1_real)* (1 - PT2_real)* (1 - PT3_real)*(3/9):
h:= PT3_obs = PT3_real + (1 - PT3_real)* PT1_real * PT2_real*(1/7) + (1 - PT1_real)* (1 - PT3_real)* PT2_real*(2/8) + (1 - PT2_real)* PT1_real* (1 - PT3_real)* (2/8) + (1 - PT1_real)* (1 - PT2_real)* (1 - PT3_real)*(3/9):
i:= PT1_obs = [0,1]:
j:= PT2_obs = [0,1]:
k:= PT3_obs = [0,1]:
solve({f,g,h,i,j,k},{PT1_real, PT2_real, PT3_real})
Dabei erhalte ich leider einen Fehler, der wohl von den Formeln i,j,k herrührt. Wenn nicht so, wie kann ich die Aufgabe dann lösen?
Ich weiß leider nicht wie ich, die Variablen sonst beschränken könnte. Ich habe auch schon 2 Tage lang im Netz gesucht und auch die hier vorhandenen Antworten durchsucht.
Für Hilfe wäre ich sehr dankbar.
Beste Grüße
Forty
P.S. Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:36 Mi 24.09.2008 | Autor: | Forty |
Aloha,
ich habe die Antwort selber gefunden. Man verwendet dafür in Mupad den Befehl "assume". Man würde also i,j,k weglassen und stattdessen "assume(0 <= PT1_real <= 1):" schreiben.
|
|
|
|
|
> PT1_obs = PT1_real + (1 - PT1_real)* PT2_real *
> PT3_real*(1/7) + (1 - PT1_real)* (1 - PT2_real)*
> PT3_real*(2/8) + (1 - PT1_real)* PT2_real* (1 - PT3_real)*
> (2/8) + (1 - PT1_real)* (1 - PT2_real)* (1 -
> PT3_real)*(3/9)
> PT2_obs = PT2_real + (1 - PT2_real)* PT1_real *
> PT3_real*(1/7) + (1 - PT1_real)* (1 - PT2_real)*
> PT3_real*(2/8) + (1 - PT2_real)* PT1_real* (1 - PT3_real)*
> (2/8) + (1 - PT1_real)* (1 - PT2_real)* (1 -
> PT3_real)*(3/9)
> PT3_obs = PT3_real + (1 - PT3_real)* PT1_real *
> PT2_real*(1/7) + (1 - PT1_real)* (1 - PT3_real)*
> PT2_real*(2/8) + (1 - PT2_real)* PT1_real* (1 - PT3_real)*
> (2/8) + (1 - PT1_real)* (1 - PT2_real)* (1 -
> PT3_real)*(3/9):
> mit PT1_obs,PT2_obs,PT3_obs aus dem Intervall [0,1]
>
> Aufgabe: Finde eine geschlossen Form für
> PT1_real,PT2_real,PT3_real.
>
> Diese Aufgabe Versuche ich in MuPad zu lösen in dem ich
> folgendes eingebe:
>
> f:= PT1_obs = PT1_real + (1 - PT1_real)* PT2_real *
> PT3_real*(1/7) + (1 - PT1_real)* (1 - PT2_real)*
> PT3_real*(2/8) + (1 - PT1_real)* PT2_real* (1 - PT3_real)*
> (2/8) + (1 - PT1_real)* (1 - PT2_real)* (1 -
> PT3_real)*(3/9):
> g:= PT2_obs = PT2_real + (1 - PT2_real)* PT1_real *
> PT3_real*(1/7) + (1 - PT1_real)* (1 - PT2_real)*
> PT3_real*(2/8) + (1 - PT2_real)* PT1_real* (1 - PT3_real)*
> (2/8) + (1 - PT1_real)* (1 - PT2_real)* (1 -
> PT3_real)*(3/9):
> h:= PT3_obs = PT3_real + (1 - PT3_real)* PT1_real *
> PT2_real*(1/7) + (1 - PT1_real)* (1 - PT3_real)*
> PT2_real*(2/8) + (1 - PT2_real)* PT1_real* (1 - PT3_real)*
> (2/8) + (1 - PT1_real)* (1 - PT2_real)* (1 -
> PT3_real)*(3/9):
> i:= PT1_obs = [0,1]:
> j:= PT2_obs = [0,1]:
> k:= PT3_obs = [0,1]:
> solve({f,g,h,i,j,k},{PT1_real, PT2_real, PT3_real})
Der obige Code sieht ja grässlich aus. Vermutlich hast Du hier etwas "von Hand" ausmultipliziert, das Du besser MuPAD selbst hättest ausmultiplizieren lassen sollen.
Was die Zeilen
> i:= PT1_obs = [0,1]:
> j:= PT2_obs = [0,1]:
> k:= PT3_obs = [0,1]:
betrifft: dies ist (aus der Sicht von MuPAD) in der Tat Müll. Insbesondere bedeutet [0,1] für MuPAD eine Liste mit ersten Element 0 und zweitem Element 1 (also keineswegs das reelle Intervall [0,1].
Besser gibst Du folgendes ein:
assume(PT1_obs,Type::Interval([0],[1]))
assume(PT2_obs,Type::Interval([0],[1]))
assume(PT3_obs,Type::Interval([0],[1]))
Schau Dir dazu im Hilfesystem von MuPAD den Eintrag zu assume an.
Auch die Syntax Deiner Anwendung von solve ist falsch. Die müsste, meiner Meinung nach, etwa so aussehen:
[mm] [quote]solve($\{$f,g,h$\}$,[PT1_real, [/mm] PT2_real, PT3_real,PT1_obs,PT2_obs,PT3_obs])[/quote]
Also: zuerst in geschweiften Klammern die Gleichungen und dann in eckigen Klammern die Lösungsvariablen, wobei hier die Lösungsvariablen PT<n>_obs mittels assume auf das Intervall [0,1] eingeschränkt sind.
|
|
|
|