Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Programm mit solve() erstellen
18-06-2016, 10:52 AM
Post: #1
Programm mit solve() erstellen
Hallo Zusammen

Es gibt ja zwei Möglichkeiten eine Formel als Programm auszuführen und nach einer Variable zu suchen.

1. Lösen App klonen und so nach der Variable suchen.
Blöd ist nur, dass man nur grosse Buchstaben benutzen kann und keine Namen.
Weiss jemand wie man eine Variable von einem HPPPL-Programm exportieren
kann und dann diese beim App einfügen?

2. Man schreibt ein HPPPL-Programm. Der Aufwand ist aber enorm.

Es geht um folgende Formel:
(r+x)*|(b*x^2)/2-n*a_s*(d-x)| = (b*x^3)/3+n*a_s*(d-x)^2

Als HPPPL-Programm: (funktioniert aber nicht richtig!)
r,b,n,as,d; // (1)
EXPORT Program1()
BEGIN
PRINT();
INPUT({r,b,n,as,d}); // (2)
LOCAL cmd:=
"xs:=solve(
(r+x)*abs((b*x²/2)-n*as*(d-x))=
(b*x^3/3)+n*as*(d-x),x)|
{r,b,n,as,d}="+
STRING({r,b,n,as,d}); // (3)
CAS(cmd); // (4)
PRINT("Gleichung:");
PRINT(cmd);
PRINT("Resultate:");
PRINT("xs="+STRING(CAS.xs)); // (5)
RETURN CAS.xs; // (6)
END;

Als App:
           
Wie sind die Variablen aus einem HPPPL-Programm zu exportieren um dann diese im App einfügen zu können?

Beste Grüsse
Find all posts by this user
Quote this message in a reply
30-07-2016, 12:24 PM (This post was last modified: 30-07-2016 01:51 PM by RichardZ.)
Post: #2
RE: Programm mit solve() erstellen
Hallo Namensvetter Big Grin

verstehe ich das richtig: Du willst eigentlich eine Funktion haben, die eine andere nach x löst und dieser variablen übergeben?
du hast eigentlich:
F1(a,b,x) = F2(a,c,x)
mit a,b und c feste Werte und du suchst x

zuerst sollten wir die Funktionen umformulieren:
F(a,b,c,x) = F1(a,b,x)-F2(a,c,x)
und diese gegen 0 lösen.
(so können wir die a, b und c einmal übergeben)
Zuerst definieren wir die Funktion.
Im Programmierwerkzeug erstellst du eine neue Funktion (CAS Hacken und nen tollen Namen für die Funktion)
Du musst dann nur die Funktion korrekt eintragen.
(Ich nenne die jetzt einfach mal "FO" für "FORUM")

#cas
FO(R,B,N,AS,D,X):=
BEGIN
return (R+X)*ABS((B*X^2)/(2-N*AS*(D-X)))-(B*X^3)/(3+N*AS*(D-X)^2);
END;
#end


Die kannst du dir dann in der Funktionen App anzeigen lassen
F1(X) = FO(1,2,3,4,5,X)
bzw. in der Lösen-App nach 0 lösen lassen
E1: FO(1,2,3,4,5,X)=0
// Edit warum habe ich hier -11 geschrieben?
der richtigste Weg wäre natürlich die Nullstellen zu suchen im CAS:
zeros(FO(1,2,3,4,5,x))

Ich bin ziemlich sicher, dass man die Funktion FO auch direkt im CAS-Fenster definieren kann aber mit der Tastatur ist das unhandlich....
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)