.
|
|
| Autor | Beitrag |
|---|---|
|
000 08.08.2001, 03:27 Retro |
Topic is bestimmt etwas verwirrend, aber es ist eher ein generelles Problem, was aber in einem Programm umgesetzt werden soll (Delphi [aber es geht mir um den Rechenweg]). Ich habe eine Kurve die nicht liniear is, so schaut die (z.B.) aus: Ich möchte nun das man im Programm einen Zahlenwert für [V] angibt, und dass das Programm den Wert für [W] ausspuckt... Die ganze Kurve hab ich auf nem Stück Papier, will aber wie gesagt nen Programm drauß machen was mir nen Wert rausgibt. In der Schule haben wir sowas noch in keinster Weise gehabt, also so ziemlich 0 vorahnung, obwohl ich Logisch denken kann, ist mir keine Lösung eingefallen. Naja, Thx schonmal vorweg... hehe P.S.: Auf dem Blatt Papier sieht die Kurve 'ganz' ander aus, und ich habe auch Zahleneinteilungen... hehe klar, oder? =) --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
001 08.08.2001, 10:50 Braindead |
1. y = x*x <- die einfachste Form |
|
Profil || Suche |
|
002 08.08.2001, 11:09 Another1 |
das kann ja jede mögliche kurve sein =P z.B.: P1(1|0.2) und P2(2|0.5) so nu machst du 2 gleichungen draus ... naja ... keine ahnung ob dir das hilft ... wieso willst du das dingens eigentlich haben? --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
003 08.08.2001, 12:39 DarKnight |
Hmm. Ich habe mal ein Programm zu quadratischen gleichungen mit MFC gemacht. Vielleicht kann ich dir ja vom Programmtechnischen her helfen =) Das Programm gibts unter http://deltaeagle.krawall.de/parabel.zip Den genauen Code habe ich leider netmehr weil ich nen crash hatte der mir das meisste an Code was ich davor gemacht hatte entsorgt hat. Allerdings hat Kriz den Code glaube ich noch. Ich werde ihn mal fragen. --void CHudSayText :: EnsureTextFitsInOneLineAndWrapIfHaveTo( int line ) -- Aja? Dieser Beitrag wurde am 08.08.2001 um 12:39 von DarKnight bearbeitet. |
|
Profil || Suche |
|
004 08.08.2001, 15:56 Retro |
Hmm, das Programm von Dark is schonmal schön, aber bei meiner Kurve hab ich oben son schönes Beispiel gepostet... die Kurve die ich meine sieht nämlich (in etwa) so aus:
Tja =(, und wenn ich dafür nen Programm schreiben würde könnte ich mir die Arbei erspaaren das jedesmal mit nem Lineal abzumessen, und außerdem wollte ich sowas in der Art schon länger mal proggen, aber ich glaub da hab ich mir was schwirieges ausgesucht... Ich hoffe es gibt trotzdem ne Lösung, und schonmal Thx für die Antworten. --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
005 08.08.2001, 16:45 Seeker |
Du brauchst doch irgendeine Quelle, wo du die Kurve her bekommst! Scannst du die ein? Oder ist die schon eine Bilddatei? Wenn sie nicht linear ist, fallen mir wenig andere Möglichkeiten ein. In diesem Fall kannst du einfach (nein, so einfach ist es garnicht) am untersten Pixel anfangen und hochzählen, bis ein anderer RGB-Wert kommt. Vielleicht meinst du was ganz anderes, aber ich versteh das nicht so ganz... |
|
Profil || Suche |
|
006 08.08.2001, 16:45 Gollum |
hm. najo wenn die kurve ungefähr so ausschaut kann man ja keine formel aufstellen :) aber die kurve wird sich doch wahrscheinlich eh nach einer formel ergeben... dann brauchst du ja eigentlich nur w = formel(v) berechnen, und den jeweiligen wert dann ausgeben... oder gehts um was anderes? :) --[url="http://www.thelordoftherings.com/cgi-bin/get-image.pl?ID=alan-lee-058 "]-N/A-[/url]
|
|
Profil || Suche |
|
007 08.08.2001, 17:03 Retro |
lol nee, geht schon darum! :) Ich such jetzt nochmal nach der Formel aus der sich die Kurve ergibt, aber ich glaube da hab ich wenig Erfolg! =\ Ansonsten hab ich nur das Bild als Grundlage... Ich hab mir auch schon überlegt das ich die Kurve einscanne und ganz fein mit 1px schwarz/weiß nachzeichne. Und darauß nen Programm mache... aber die feine art ist das ja nicht... ;) Na gut, ich werd nochmal nach ner Formel dafür suchen... --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
008 08.08.2001, 18:59 Kriz |
In der Mathema-Shit spricht man von solchen Fällen von Approximation und Interpolation. Aus einer Kurve heraus wird zurück auf eine Formel geschlossen. Leider ist das Thema echt zum DAU's treten, will heißen, es füllt ganze Bücher. Einen Algorithmus dazu habe auch ich nie zu Gesicht bekommen. Wer Lust hat, kann ja mal seinen Matheverbrecher fragen, ob er ihm im Crashkurs Approximation und Interpolation (samt Vorwissen) beibringt (Falls der gute Mann/die gute Frau in seinem/ihrem L2/L3-Studium sowas überhaupt gelehrt bekommen hat). --K:R-I)Z++ |
|
Profil || Suche |
|
009 08.08.2001, 19:23 Retro |
Hmm, wenn ich meinen Mathelehrer das Frage hält er mich für irre, weil er die Wörter garnicht kennt! =\ (ich kannte sie auch noch nicht... aber thx) Jo, auf die weise ist man getraft wenn man 'nur' zur Realschule geht... Ich glaub zwar kaum das ich mein Problem dann so einfach gelöst bekomme, aber ich werd mich in der Uni-Bücherei mal nach nem Buch darüber umgucken. Für mehr durchblick sorgts auf jeden fall! Thx! --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
010 08.08.2001, 20:35 TheTinySteini |
Erm... und da sind keine Werte angegeben? Denn wenn da Werte angegeben wären, dann könnte man wenigstens versuchen, mit den üblichen Funktionen ax^4 + bx^3 + cx^2 + dx + e und ähnlichen dranzukommen. Wo haste denn das her, was bezeichnet denn die Kurve? TheTinySteini |
|
Profil || Suche |
|
011 08.08.2001, 20:58 Prefect |
Genau so wie TTT das nun angibt, würde ich das auch machen. Du mußt dir praktisch ein Gleichungssystem aufstellen, mit dem du eine Gleichung n-ten Grades aus n+1 Punkten der Kurve erstellen kannst. Dann erhöhst du n (also praktisch die Anzahl der Samples von der Originalkurve) solange, bis sie einigermaßen der auf dem Papier ähnelt. Du kannst das Ergebnis sicherlich optimieren, indem du die Sample geschickt wählst, d.h. die wichtigen Punkte sollten irgendwie nahe Extrema und Wendepunkten oder so auftreten. Das ist allerdings jetzt nur so daher geraten, ich hab sowas auch noch nie gemacht. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
012 08.08.2001, 21:41 Retro |
Hmm, ich noch weniger! Aber ich hab verstanden worums geht! Nu werde ich mal markante Punkte raussuchen - die Sache ist nämlich auch das die Original-Kurve auf nem DIN-A2 Blatt ist... und erm, mein Scanner ist nur DIN-A4 ;) Naja, und ich glaube das mit dem Mathestudium... hehe kein Kommentar! :D, shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
013 08.08.2001, 22:02 TheTinySteini |
Jo, du brauchst vor allem die Koordinaten solcher Punkte wie die vom Wendepunkt, den man dort sieht (dort, wo die Rechtskrümmung in eine Linkskrümmung übergeht - ungefähr bei (2;1) ). Naja, eine Koordinate haste ja schon, P(0;0). Mal angenommen, es ist ne Kurve 4.Grades, dann brauchste aber noch 4 weitere Punkte (einschließlich dem Wendepunkt). TheTinySteini |
|
Profil || Suche |
|
014 08.08.2001, 22:06 Another1 |
also, is es nur eine kurve oder wird die kurve zur laufzeit erstellt? naja, auf jeden fall könntest du vorher nen großes lustiges array machen theoretisch zerlegst du deine kurve in n Lineare Functionen, die sich alle aneinander reihen, je mehr, desto genauer =P --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
015 08.08.2001, 22:11 TheTinySteini |
Rah! Wir bereden hier hochmathematisch (erm... naja :| ) wie man die Formel der Kurve rekonstruieren kann und er kommt mit nem plumpen Array an. Sowas gehört erschlagen! Erschlagen gehört sowas! Jahaa! --TheTinySteini |
|
Profil || Suche |
|
016 08.08.2001, 23:22 Another1 |
ne, sowas is einfach programmiertechnisch am besten *G* Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
017 09.08.2001, 17:16 TheTinySteini |
Ack! Sag bloß, dass du dann bei deiner Arbeit irgendeine Flugkurve auch mit Arrays berechnest... dann hätte der deutsche Steuerzahler mal wieder viel Geld innen Sand gesetzt. =) *ZurückschleckDamitAnother1NichtSauerIst* --TheTinySteini |
|
Profil || Suche |
|
018 09.08.2001, 23:50 static_caster |
mal ne neue anregung: jetzt isses noch wichtig zu wissen, was dat ding im unendlichen macht. also, obs da n limes gibt, maxima/minima usw. und du mußt mal ganz genau die punkte haben, in denen die fkt sowas macht. denn ansonsten wirds ne parametergleichung und das ist noch viel viel viel reudiger, als das, was du jetzt machen willst! /*edit: mit dem sattelpunkt z.B. ist ne fkt vom typ x^3. im code läßt sich das auch realisieren, indem du z.B. 3 funktionen benutzt (wirklich NUR beispiel!!!) wobei die erste fkt die hauptfunktion ist, die entscheidet, wann die beiden unterfunktionen aufgerufen werden. double draw_main( double x ) double draw_xhoch3( double xStart, xEnd ) double draw_log( double xStart, xEnd ) ich gehe davon aus, daß jede dieser unter-fkt selbstständig graphen zeichnet. sooo, und die umschalt-parameter ergeben sich aus den bedingungen, die ich oben schon genannt hab (wendepunkt). he, wenn du aber nen algorithmus willst, mit dem man das filtern kann, das wird so sau-schwer, daß es für uns nicht-mathematiker eigentlich schier unmöglich ist! Dieser Beitrag wurde am 10.08.2001 um 00:25 von static_caster bearbeitet. |
|
Profil || Suche |
|
019 10.08.2001, 13:24 fs |
worum gehts hier? er will einfach Funktionswerte berechnen, dazu muss er den Funktionstherm aufstellen.. Das heisst du willst die allgemeint Formel für diese jene Kurve, so daß du für jedes x, sofern in Definitionsbereich, das zugehörige projizierte f(x) berechnen kannst.. also brauchste schomma f(x)=e^x oder so.. ohne die kannst du nichts machen generell gilt, bei ganzrationalen Funktionen: stell fest, was die höchste Potenz ist -> Extrema... , nehmen wir an die höchste Pozent sei n Stelle die allgemeine Form des Graphen auf : f(x) = a*x^3 +b*x^2 +c*x +d (davon natürlich auch die ableitungen f' und f'')) Dann suche dir n+1 Informationen über den Graphen, wie z.B.: Nullstellen, Extrema, Wendepunkte, Sattelpunkte, etc, etc (hat die funktion minima oder maxima? nullstellen, wenn ja, wo? lies die informatioen aus) Mögiche Informationsquellen sind auch einfaches abmessen einer Wertes proportionalverhalten, etc Das heisst, miss den y-wert für x=2 daraus würdest du dann eine information erhalten -> f(2) = ... <- was du halt misst Wenn keine Skalierungen vorgegeben sind, musst du erfragen, ob die achsen linear oder logarithmisch sind.. aber ich denke, wenigstens irgendeine beziehung ist angegeben, an der du eine Skalierung der x- bzw y-Achse erkenne kannst.. Danach bilde ein Gleichungssystem Beispiel: bei einer funktion dritten Grades hiesse die information f(0) = 0 -> ax^3+bx^2+cx+d = 0 in der art stellst du aus n+1 gleichungen ein Gleichungssystem auf lös es auf, setz ein und du hast den Funktionsterm Dann kannste deinem Rechensklaven (Pc..) sagen, er soll einfach immer, um für bespielsweise x=5 den zugehörigen y-wert zu errechnen, x=5 in diese Funktion "einsetzen" und berrechnen Falls dir grundlegende Begriffe der Differentialrechnung femd sind (Ableitung, Extrema.. etc), kann keiner von dir verlangen, sowas zu machen PS: einscannen wird dir nichts helfen, der computer kann mit einem (für ihn) strukturlosen verlauf von pixel nichts anfangen..., denn er wird weder fähig sein selbstständig eine struktur daraus zu entwickeln noch irgendeine Struktur fortzusetzen cya --Dieser Beitrag wurde am 10.08.2001 um 13:28 von fs bearbeitet. |
|
Profil || Suche |
|
020 10.08.2001, 13:33 |
(none) -- |
|
Profil || Suche |
|
021 10.08.2001, 13:41 TheTinySteini |
Nene, die Art, wie es fs beschrieben hat, is schon die professionellste Variante, mathematisch am besten. TheTinySteini |
|
Profil || Suche |
|
022 10.08.2001, 13:59 fs |
naja gubmle wir machen hier keinen hausfrauenkurs... und "dann das ganze möglichst pasend umschreiben" ist kein mathemarischer ausdruck, das ist milchmädchenrechnung... sag mir doch ma die ungefähre gleichung des Graphen oben.. es geht definitiv net es könnte aus graphenausschnitt sein, der stark skapiert ist, den weiteren Verlauf kannst du NUR über die allgemeine Formel bestimmen.. und mit den Werten von 20 Punkten kannst du nicht den Wert des 21ten Punktes berechnen, sofern du nicht f(x) aufstellst für alle x element |D und dass ist einfach deshalb so, weil in der höheren Analysis die Kurven eben nicht mehr ganz so gradlinig verlaufen wie in der 10ten Klasse... und es ergibt sich eben nicht ein lineares System sobald man 3 Punkte ausrechnet und sie sich anguckt.. Das system oben wird evt 3ten grades sein eine Funktion ist nicht "einschätzbar" oder "abschätzbar".. Sie ist akkurat zu definieren.. sofern es auch eine funktion ist (d.h. es gibt für jedes X nur EIN f(x)) kann man das immer machen, nicht so einfach wie ich es oben geschildert habe, aber es geht c'ya --Dieser Beitrag wurde am 10.08.2001 um 14:00 von fs bearbeitet. |
|
Profil || Suche |
|
023 10.08.2001, 14:08 Retro |
Ja, das mit der Realschule stimmt... Und wir hatten sowas noch überhaupt nicht! Nu habe ich damit angefangen die Kurve zu 'digitalisieren' im Klartext heist das dass ich jeden punkt in ne hübsche Datei schreibe, nachdem ich es mit dem Lineal ausgemessen hab (sind nut etwa ~1000 =). Das ist zwar keine sehr genaue Lösung, aber wahrscheinlich die am besten zu realisierende! Wenn ich die [verfluchte] Formel hätte, aus der such die Kurve ergibt währe das ja garkeine sache, aber bisher habe ich die noch nirgends gefunden! =\ Und die Kurve zurück zu rechnen is nen bissel viel für mich, weil ich auch nicht weis wie ich die Richtigkeit überprüfen könnte, weil ich als Grundlage nur den riesen Fetzen Papier mit der Kurve hab. Aber danke für die Hilfe! --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
024 10.08.2001, 17:04 TheTinySteini |
@fs: Nein, es geht nicht immer, eine Formel zu einer Funktion zu finden. Vielleicht theoretisch, aber zumindest praktisch nicht. Bestes Beispiel: Arbeitslosenzahlen. Finde eine Formel dafür und du wirst Präsident in allen Ländern der Erde. --TheTinySteini |
|
Profil || Suche |
|



