Piecewise Funktionen im Octave symbolischen Paket?

8

Im Gegensatz zu Matlab hat Octave Symbolic keine stückweise Funktion. Gibt es eine Arbeit? Ich würde gerne so etwas machen:

%Vor%

Wie kommt man dazu, Stücke einer stückweisen Funktion zu bekommen? Ich habe Folgendes ausgeführt:

%Vor%

Und die folgende richtige Antwort wurde angezeigt und in einer Variablen gespeichert:

%Vor%

Aber jetzt würde ich gerne auf den "anderen" Teil der Antwort zugreifen, damit ich das beurteilen kann. Wie mache ich das?

(Ja, ich kann es in meinen Kopf einrechnen, aber ich trainiere, wenn kompliziertere Ausdrücke kommen. Ich suche auch nur wirklich nach einem Ansatz, der symbolische Ausdrücke verwendet - auch wenn Numerik in jedem Fall gut funktioniert Ich möchte den symbolischen Ansatz verstehen.)

Danke!

    
forkandwait 01.07.2017, 04:09
quelle

1 Antwort

0

Matlabs piecewise Funktion scheint ziemlich neu zu sein (eingeführt in 2016b), aber im Grunde genommen sieht nur aus wie ein verklärter ternärer Operator. Leider habe ich 2016 nicht zu überprüfen, ob es die Eingänge überprüft oder nicht, aber im Allgemeinen können Sie einen 'ternären' Operator in der Oktave durch Indizieren in eine Zelle mit logischer Indizierung neu erstellen. ZB

%Vor%

Erläuterung:

  • Schritt 1: Sie legen alle interessierenden Werte in ein Zellenfeld. Umschließen Sie sie in Funktionskennungen, wenn Sie verhindern möchten, dass sie zum Zeitpunkt des Parsens ausgewertet werden (z. B. wenn die Ausgabe des ternären Operators einen Fehler erzeugen soll)
  • Schritt 2: Indexieren Sie dieses Zellenarray mithilfe der logischen Indizierung, wobei Sie bei jedem Index einen logischen Test durchführen
  • Schritt 3: Wenn Sie einen Standardfall benötigen, verwenden Sie einen "echten" Test für das letzte Element.
  • Schritt 4: Wählen Sie aus dem Zellen (sub) -Array, das sich oben ergibt, das erste Element aus und führen Sie den resultierenden Funktions-Handle aus. Die Auswahl des ersten Elements bewirkt, dass bei mehr als einem Test nur das erste Ergebnis ausgewählt wird. Wenn der 'Standard'-Test immer erfolgreich ist, stellt dies auch sicher, dass dies nicht ausgewählt wird, es sei denn, es ist der erste und einzige Test, der erfolgreich ist (was er standardmäßig tut).

Hier sind die oben genannten Schritte, die in eine Funktion implementiert sind (entsprechende Plausibilitätsprüfungen, die hier der Kürze wegen weggelassen wurden), die derselben Syntax folgen wie Matlabs piecewise :

%Vor%

Beispiel Verwendung:

%Vor%     
Tasos Papastylianou 04.07.2017 20:07
quelle

Tags und Links