Nord-Süd-Richtung
Erfahrenes Mitglied
Hi
ich weiß nicht wer von euch den Taschenrechner TI89 kennt (großes teures Gerät). Unter den bestimmt 1000 Funktionen die er besitzt, interessiert mich "solve()", eine Funktion um Gleichungen zu lösen. Ich würde die Funktion gerne nachbauen.
Die Syntax von solve sieht so aus:
Ich könnte jetzt ja auf 2 herangehensweisen versuchen, diese Gleichung zu lösen.
a) Alle Variablen auf eine Seite stellen
b) Einfach einsetzten und gucken wann es stimmt.
Zu a)
Das Problem bei a) wäre meiner Meinung der Funktion die Rechenregeln mitzuteilen, sowie diese bei der Gleichungsumstellung zu programmieren:
In diesem Beispiel müsste ich jetzt den rechten Teil nach "x"en absuche, und dann den Rechenoperator davor(wenn es den nicht gibt, den danach) abchecken, und dann den komplenmentären für die linke Seite nutzen. Ich denke dass dies vom Programmieraufwand sehr aufwändig wäre (man denke an Sinus/Kosinus/e/potenzen,Wurzeln...), auch wenn es am Ende die "schönere" Variante wäre.
Zu b)
Mein Ansatz bei b) wäre alle Variablen (x) durch Zahlen zu ersetzen und dann zu überprüfen, ob die Variable erhöht oder erniedrigt werden muss. Zwar unschöner, und vielleicht rechenintensiver, aber ich denke vom Programmieraufwand auf jeden Fall einfacher.
Was meint ihr dazu? Habt ihr Ideen? Welche Programmiersprache wäre am besten geeignet?
ich weiß nicht wer von euch den Taschenrechner TI89 kennt (großes teures Gerät). Unter den bestimmt 1000 Funktionen die er besitzt, interessiert mich "solve()", eine Funktion um Gleichungen zu lösen. Ich würde die Funktion gerne nachbauen.
Die Syntax von solve sieht so aus:
Code:
solve(gleichung, variable/n)
//Beispiele
solve(x^2+4*x = 2,x)
solve(t^3+^t2 = 5*t,t)
Ich könnte jetzt ja auf 2 herangehensweisen versuchen, diese Gleichung zu lösen.
a) Alle Variablen auf eine Seite stellen
b) Einfach einsetzten und gucken wann es stimmt.
Zu a)
Das Problem bei a) wäre meiner Meinung der Funktion die Rechenregeln mitzuteilen, sowie diese bei der Gleichungsumstellung zu programmieren:
Code:
solve(5=7+x,x) // Alle "x" auf die linke Seite bringen
Zu b)
Mein Ansatz bei b) wäre alle Variablen (x) durch Zahlen zu ersetzen und dann zu überprüfen, ob die Variable erhöht oder erniedrigt werden muss. Zwar unschöner, und vielleicht rechenintensiver, aber ich denke vom Programmieraufwand auf jeden Fall einfacher.
Code:
solve(2+x=9,x)
//Berechnung
i = 1;
if( 2+i == 9 )
return i;
...
//i = 7
if( 2+i == 9 )
return i;
if( 2+i > 9 ) // -> i - 0.5
Was meint ihr dazu? Habt ihr Ideen? Welche Programmiersprache wäre am besten geeignet?