![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() |
![]() kennt wer eine klasse um eine gleichung zu lösen.
nicht jetzt aus zb x^2+3x-4=0 das x rausrechnen, sondern man gibt einen wert fürs x vor, welcher dann für x eingesetzt wird, woraus dann ein wert erechnet wird. in einem string wird als zb "x^3-(4x+3x^4)^2" geschrieben, dann einen wert, zb 5, für x einsetzen, und man bekommt das ergebnis. es wär um einen graphen einer funktion zu zeichnen.
____________________________________
Wenn Null ganz besonders gross ist, ist es schon fast so viel wie ein kleines bisschen Eins... - (Kommentar zum Thema Rundungsfehler bei Fliesskommazahlen). ![]() |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 13.06.2001
Beiträge: 1.830
|
![]() Ich würde das ganze selber schreiben:
Code:
privat static float calculateEquation(float x, int a, int b, int c, int d){ return (a*Math.pow(x,3)+b*Math.pow(x,2)+c*x+d);} Wenn du unbedingt einen String als Eingabe willst wird es mühsamer. Jak <edit> P.S.: Vielleicht hilft dir auch der Quelltext des Applets auf dieser Seite weiter:http://home.arcor.de/rolf.mossbach/J...n.Applet1.html </edit>
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona) Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing. \"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra) |
![]() |
![]() |
![]() |
#3 |
Veteran
![]() |
![]() hab schon versucht das selber zu schreiben.
es handelt sich um ein programm, bei dem man in ein textfeld funktionen beliebiger ordnung eingeben kann. die funktionen kann man dann in einer liste verwalten, und den graphen dazu in einem bestimmten intervall zeichnen lassen. aber eine funktion in einem string durchzuparsen, mit allen möglichkeiten einbezogen, das is ned grad einfach. die funkton könnte ja "x^3+4-((x^4+3)^3-x^2)/6" heißen. wurzeln müsste man auch miteinbeziehen.
____________________________________
Wenn Null ganz besonders gross ist, ist es schon fast so viel wie ein kleines bisschen Eins... - (Kommentar zum Thema Rundungsfehler bei Fliesskommazahlen). ![]() |
![]() |
![]() |
![]() |
#4 |
Quantensingularität
![]() |
![]() In einer eigenen Klasse könntest du auch gleich die Parsfunktion verpacken
![]()
____________________________________
Was ist klein, grün und dreieckig? Ein kleines grünes Dreieck! Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg! |
![]() |
![]() |
![]() |
#5 |
Veteran
![]() |
![]() jo, hab schon eine eigene klasse geschrieben, sozusagen eine utility-klasse, ganz banal mal "Equation" genannt. aber das parsen so einer funktion ist echt nicht einfach.
gibts vielleicht ein paar tipps, wie man sowas lösen könnte? man muss ja der klasse quasi das rechnen beibringen, mit allen punkt-vor-strich und klammer-regeln. ziel wäre es, alle operationen bis auf addition und subtraktion zu lösen, so dass dann ein string der form "9.87-234.5+123-0.815" überbleibt. um die dann auszurechnen, müsste man die zahlen inklusive vorzeichen aufteilen, und addieren. aber wie kommt man von einer komplexen funktion beliebiger ordnung, mit klammern, wurzeln usw. auf eine form wie obige?
____________________________________
Wenn Null ganz besonders gross ist, ist es schon fast so viel wie ein kleines bisschen Eins... - (Kommentar zum Thema Rundungsfehler bei Fliesskommazahlen). ![]() |
![]() |
![]() |
![]() |
#6 |
Inventar
![]() Registriert seit: 13.06.2001
Beiträge: 1.830
|
![]() Wurzeln kann man auf jeden Fall als Bruch-Hochzahlen schreiben.
(ich glaube das das Math.pow auch kapiert). Das parsen des Strings ist aber auf jeden Fall kompliziert. Ich würde das ganze zuerst einmal nach fallenden Potenzen von x sortieren, danach wird der String bei jedem Plus (minus wird dafor in +- umgewandelt) aufgeteilt (da ist dann aber das Problem mit den Klammern. Vielleicht kann man die ja vorher auflösen???). Jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona) Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing. \"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra) |
![]() |
![]() |
![]() |
#7 |
Master
![]() |
![]() ähm... vielleicht seh ich das jetzt viel zu einfach... vielleicht denkt ihr aber auch zu kompliziert...
wenn ich zb eine glchg hab: PHP-Code:
das würde oben zb rauskommen: PHP-Code:
edit: mir fällt gerade ein, wenn ich verschachtelte klammern hab, ist das doch nicht so einfach... naja vielleicht hilfts ja trotzdem irgendwie weiter ![]() ![]() man müsste das vielleicht so machen, dass man die ausdrücke immer in der form (x)^(y) schreibt und die klammern zählt, also wenn es (((x)))^(y) ist, dass er das nicht als (x)))^(y) nimmt... oh gott... ich hoffe das ist jetzt nicht zu wirr geschrieben, aber ich hab leider wichtigeres zu tun - MATHE *heul*
____________________________________
Lang ist der Weg durch Lehren, kurz und wirksam durch Beispiele. Lucius Annaeus Seneca ...:::www.modellbaulexikon.org:::... www.acrobat-se.org | www.ams-8c.de.vu |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|