Es gab einige Änderungen an der Sprache zwischen Maple V Release 5 und Maple 6 und den Ersatz von .
mit ||
war einer von denen.
Maple 6 (und 7, wenn ich mich erinnere) geliefert mit einer zusätzlichen binären updtsrc
, die auf Maple-Quelldateien wirken und den Text ersetzen könnte. Zum Beispiel, wenn ich mit einer Klartextdatei starten var.mpl
nur diese enthält,
vars := [x.(1 .. n)];
und dann den Shell-Befehl anwenden updtsrc var.mpl
ich diese Ausgabe erhalten,
`.` has been replaced by `||`; see ?||
vars := [x||(1 .. n)];
ich, dass auf Ubuntu 14.04.4 LTS tat Linux, unter Verwendung der (redhat) updtsrc
Binärdatei heruntergeladen von der HTTP-Link für Linux auf this Seite.
Wenn sich Ihre Maple V-Quellen in einer .mws-Arbeitsblattdatei befinden, müssen Sie die Eingabe möglicherweise in eine Nur-Text-Datei exportieren.
Ich habe nicht versucht (in einer Klartextdatei, in einem DOS-Fenster oder Powershell) auf MS-Windows (obwohl die Zip-Datei von dieser Seite in eine updtsrc.exe
Datei entpackt wurde).
Wenn Sie also viele alte Codes mit Sprachinkompatibilitäten zwischen Maple V und Maple 6 haben, können Sie diese Route versuchen, um die Konvertierung zu automatisieren.
Es wurden einige Befehle zwischen Maple 6 und Maple 18 veraltet (z. B. Kleinbuchstaben vector
), aber nur wenige weitere Sprachänderungen (Rückwärtsinkompatibilität).
Ich schlage vor, dass Sie die Hilfeseiten in Ihrem Maple 18 für die Sprachupdates lesen.Blick auf die Hilfeseiten für diese Hilfethemen insbesondere ich Ihnen vorschlagen (diese in der Hilfe Brower der Suchleiste eingeben):
updtsrc
updates,Maple6,compatibility
Was Sie zweites Beispiel beteiligt vector
, ist es wahr, dass vector
veraltet und superceded durch den Vector
Befehl.
Aber selbst in MapleV R5 sollten Sie nicht wirklich op(f)
auf Vektor f
verwenden. Korrekter wäre eval(f)
oder evalm(f)
gewesen. ZB
f:=vector([-x1^2,x2*u]);
[ 2 ]
f := [-x1 , x2 u]
var:=u;
var := u
subs(var=cat(var,0), eval(f));
[ 2 ]
[-x1 , x2 u0]
Nun nehmen wir Sie stattdessen Vector
in der oben verwenden. In diesem Fall mit op(f)
in diesem subs
Aufruf wird den Fehler, den Sie zitiert, weil im Gegensatz vector
die Vector
Biest nicht Nachname-Eval haben.
f:=Vector([-x1^2,x2*u]);
[ 2]
f := [-x1 ]
[ ]
[x2 u]
var:=u;
var := u
subs(var=cat(var,0), op(f));
Error, invalid input: subs received 2, which is not valid for
its 2nd argument
Sie könnten noch eval(f)
hier verwenden, aber in Wirklichkeit ist es nicht erforderlich.
Zuletzt, versuchen Sie, die Punkt-Freigabe Ahorn 18.02 herunterzuladen und zu installieren, anstatt mit Ahorn 18.00 zu haften. Sie können das here finden.
Vielen Dank. Ich habe updtsrc auf den Code und nur eine Kopie Nachrichten mit Bezug auf || und <> wurden ausgegeben. Der Update-Code funktioniert leider nicht. Ich werde jede einzelne Funktion durchlaufen müssen, um zu sehen, wo der Fehler liegt. Sie arbeiteten fehlerlos auf Maple V 5. –
Einer der alten Befehle, linalg [Vektor] ([op (konvertieren (f, Liste)), Seq (dinvar [i] [2..11], i = 1. .nu)]); führte zu [-x1 * x2 + u0, x1^2-2 * x2, [u1, u2, u3, u4, u5, u6, u7, u8, u9, u10]], denke ich die Absicht war [-x1 * x2 + u0, x1^2-2 * x2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10], aber ich konnte nicht herausfinden, wie man das erreicht. Irgendwelche Vorschläge? –
Es ist mir nicht klar, ob (oder wie) sich die Ausgabe dieses neuen Beispiels zwischen Maple V und Maple 18 geändert hat. Und es ist schwer zu adressieren, ohne genau zu wissen, was 'f',' dinvar' und 'nu' sind. Am besten wäre es, es als eine komplett neue Post hier oder auf Mapleprimes zu werfen. Wenn Sie den gesamten Code nicht veröffentlichen möchten, können Sie ihn als kleines eigenständiges Codebeispiel einrichten, indem Sie den Befehl 'lprint' verwenden, um genau zu sehen, was diesen Namen als Beispielsetup zugewiesen werden soll. – acer