Lösung eines Gleichungssystems < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) reagiert/warte auf Reaktion | Datum: | 23:39 Sa 15.01.2005 | Autor: | bigj26 |
Hallo alle zusammen,
das ist mein erster Beitrag in diesem Forum. Ich bin durch Zufall auf dieses Forum gestoßen, und siehe da...es gefällt mir richtig gut.
Ich habe eine Frage zu Maple. Ich bin gerade dabei ein Maple-Script fertigzustellen, was mir die Form einer Tetra-Pack Tüte ausrechnet. also quasi wie breit(x), wie tief(y) und wie hoch(z) sie sein muß, um bei gewissen klebestellen das Volumen von einem Liter zu haben und eine minimale Oberfläche zu besitzen... eine Extremwertaufgabe halt.
Das Script läuft wunderbar.. mein Problem liegt nur in der Nullstellenbestimmung der 1. Ableitung.
Hierbei kriege ich positive, sowie negative x und y Werte raus, was natürlich nicht weiter verwunderlich ist... Da laut Aufgabenstellung nun [mm] x,y\in\IR^{+} [/mm] sein müssen...suche ich mir einfach mein Wertepaar was gerade diese Bedingung erfüllt....
Mein Problem ist nun:
Ist es nicht möglich ein script zu schreiben, oder gibt es eine Funktion in Maple, die dies macht? Ich habe es schon mit select probiert, aber es will nicht, wie ich will..
Also quasi soll aus einer Lösungsmenge von L := {(x=-1,y=4),(x=5,y=6),(x=3,y=-2)} gerade das 2. Wertepaar (x=5,y=6) selektiert werden und in jeweils 2 Variablen abgespeichert werden....
WEnn ich halt
select(x -> type(x,positive),L); benutze so kriege ich immer eine Fehlermeldung, daß meine aussage kein true oder false zurückliefert....
Vielen Dank für Eure Hilfe
bigj26
Vielen Dank für Eure Hilfe
(ch habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.)
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 01:33 So 16.01.2005 | Autor: | bigj26 |
Hallo,
ich habe durch viel herumprobieren jetzt einen kleinen Algorithmus gefunden, der das macht, was ich möchte.... es gibt bestimmt eine Funktion.
Hier ist also die Lösung:
F := (x,y,z) -> .............
g1 := (x,y) -> diff(F(x,y,z),x) = 0:
g2 := (x,y) -> diff(F(x,y,z),y) = 0:
sols := evalf(solve({g1(x,y),g2(x,y)}));
i := 1;
if (subs(sols[i],x) < 0) then i:=i+1 end if;
if (subs(sols[i],y) < 0) then i:=i+1 end if;
while (subs(sols[i],x)*subs(sols[i],y)) < 0
do
i := i+1;
if (subs(sols[i],x) < 0) then i:=i+1 end if;
if (subs(sols[i],y) < 0) then i:=i+1 end if;
end do;
Was ich mache ist, ich habe meine Funktion F(x,y,z) definiert, z substituiert gehabt, also quasi nur noch eine Funktion f(x,y) gehabt... diese habe ich ann einmal nach x und y abgeleitet und in die Funktionen g1 bzw. g2 gesteckt.... Das war ein Gleichungssystem mit 2 Gleichungen und 2 Unbekannten, daß ich durch sols := evalf(solve({g1(x,y),g2(x,y)}));
i := 1; lösen und faktorisieren und anschließend in die Liste sols speichern konnte.
Jetzt fängt mein Algorithmus an und klappert quasi die Kombination ab, daß ich irgendetwas negatives als ergebnis haben könnte. Bis jetzt hat alles geklappt... Ich weiß nicht, wie das bei komplexen Zahlen aussieht, aber die Lösung reicht mir.
Danke...
bigj26
|
|
|
|