Display Fkt. x-mal aufrufen < Maple < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 20:40 Mi 12.12.2007 | Autor: | BiGfReAk |
Aufgabe | Es sollen verschieden Funktionen (zB sin(x), cos(x), arcsin(x) etc) und ihre Ableitungen in einem Schaubild dargestellt werden. |
Hi,
also so habe ich es eigentlich gemacht und es funktioniert auch:
f11 := x->sin(x);
f12 := D(f1)(x);
p11 := plot(f11(x), x= -2*Pi..2*Pi, color=green, thickness=1):
p12 := plot(f12(x), x= -2*Pi..2*Pi, color=red, thickness=1):
display(p11,p12, title="Grün f(x)=sin(x) ---- Rot f'(x)");
dann wird mir eine Funktion und ihre Ableitung dargestellt. Ich muss diese Schritte aber immer und immer wieder machen, und da es auch nicht grad wenige Funktionen sind, wollt ich es mit einer Procedur machen.
Meine Procedur funktioniert auch, allerdings gibt es mir immer das letzte Display aus, die vorherigne überschreibt es oder so.
Wie bring ich Maple dazu, mir ALLE Displays auszugeben?
Meine Procedur sieht so aus:
zeichne_funktion:=proc()
local f1, f2, p1, p2, fkt:
fkt := {sin(x), arcsin(x)}: # erstmal 2 zum testen
anz := nops(fkt);
for i from 1 to anz
do
f1 := x->fkt[i];
f2 := diff(f1(x),x);
p1 := plot(f1(x), x= -2*Pi..2*Pi, color=green, thickness=1):
p2 := plot(f2(x), x= -2*Pi..2*Pi, color=red, thickness=1):
display({p1,p2});
od;
end;
Wenn jemand eine Idee hätt wär ich sehr dankbar. Andernfalls muss ich die längere Lösung nehmen und ständig copy paste machen :/
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Hallo,
ich habe mir mal Gedanken gemacht und das Ganze in einen Einzeiler (bis auf die Definition der Funktionen) packen können:
fkt := {sin, arcsin, [mm] x->x^2, [/mm] sqrt};
display(map(plot, map(f->[f, D(f)], fkt), -2*Pi..2*Pi, y=-5..5, color=[green,red], thickness=1));
Passt das in etwa?
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:10 Do 13.12.2007 | Autor: | BiGfReAk |
Hi
Danke für deine Antwort.
Ich wollte allerdings eine Funktion zB sin(x) und die Ableitung davon in einem Schaubild anzeigen. Dadrunter wollte ich ein neues Schaubild mit zB cos(x) und der Ableitung usw.
Also nicht alle Funktionen in einem Schaubild. Da es einige mehrere Funktionen sind (8 Stück) würde man keine Übersicht mehr haben.
Kann man soetwas überhaupt in Maple machen?
Vielleicht konnt ich dir jetzt mein Problem besser schildern.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:38 Do 13.12.2007 | Autor: | Martin243 |
Hallo,
das geht natürlich auch. Ich habe aber keine Probleme mit der for-Schleife:
fkt := {sin, arcsin, x->x^2, sqrt};
for i from 1 to nops(fkt) do plot([fkt[i],D(fkt[i])], -2*Pi..2*Pi, y=-5..5, color=[green,red], thickness=1); end;
Gruß
Martin
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 00:46 Do 13.12.2007 | Autor: | Laxomat |
Hallo,
auch ich habe mich mal damit auseinandergesetzt! Im Prinzip liegt die Lösung einfach darin, die display-Funktion in einen print-Befehl zu setzen. Damit wird jede einzelne Display-Ausgabe erzwungen.
Die etwas abgewandelte Prozedur lautet dann (mit etwas Feinschliff):
zeichne_funktion:=proc()
local p1, p2, i:
global fkt:
for i from 1 to nops(fkt)
do
p1 := plot(fkt[i], x= -2*Pi..2*Pi, color=green, thickness=1, legend=typeset("f(x)=", fkt[i])):
p2 := plot(diff(fkt[i],x), x= -2*Pi..2*Pi, color=red, thickness=1, legend=typeset("f'(x)=", diff(fkt[i],x))):
print(display({p1,p2}));
od;
end:
Die Variable fkt würde ich global und vor dem Prozedur-Aufruf deklarieren, da man dann das eigentliche Programm nicht ändern muss. Ist aber hier nicht relevant. Der Aufruf wäre dann:
> fkt=[sin(x), arcsin(x), [mm] x^2, [/mm] sqrt(x)];
> zeichne_funktion();
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:25 Do 13.12.2007 | Autor: | BiGfReAk |
Hi
VIELEN DANK euch allen! Mit print funktioniert es genau so wie ich es wollte.
MfG
|
|
|
|