Themenbereiche Themenbereiche Profile Hilfe/Anleitungen Help    
Recent Posts Last 1|3|7 Days Suche Suche Tree Tree View  

C++ & Gleichungssysteme

ZahlReich - Mathematik Hausaufgabenhilfe » Mathesoftware » Sonstiges » C++ & Gleichungssysteme « Zurück Vor »

Das Archiv für dieses Kapitel findest Du hier.

Autor Beitrag
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Tux87 (Tux87)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Erfahrenes Mitglied
Benutzername: Tux87

Nummer des Beitrags: 300
Registriert: 12-2002
Veröffentlicht am Mittwoch, den 12. November, 2003 - 19:38:   Beitrag drucken

Hi @ll,

kann mir jemand hier weiterhelfen:
Ich bekomme von einem Sensor 15 x und 15 y - Koordinaten. Nun muss ich aus diesen Koordinaten eine Funktion suchen, die durch diese 15 Punkte verläuft. Das ganze Problem soll in einem C++ Programm umgesetzt werden. Hat jemand sowas oder kann mir jemand sagen, wie ich das am Besten machen sollte...

PS:
Gauscher Algorhythmus geht nicht -- die Zahlen werden bei mir selbst für double zu groß...

danke schon mal
ICH
mfG
ICH
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Martin243 (Martin243)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Martin243

Nummer des Beitrags: 866
Registriert: 02-2001
Veröffentlicht am Mittwoch, den 12. November, 2003 - 19:43:   Beitrag drucken

Bist du sicher, dass es ein Polygon 14. Grades werden muss? Oder sollst du eher eine Näherungsfunktion suchen? Denn ich kann mir nicht vorstellen, dass du ein Gleichungssystem mit 15 Unbekannten lösen sollst...


MfG
Martin
________
Die Natur spricht die Sprache der Mathematik:
Die Buchstaben dieser Sprache sind Dreiecke, Kreise und andere mathematische Figuren.
Galileo Galilei
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Tux87 (Tux87)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Erfahrenes Mitglied
Benutzername: Tux87

Nummer des Beitrags: 302
Registriert: 12-2002
Veröffentlicht am Mittwoch, den 12. November, 2003 - 21:32:   Beitrag drucken

Hi Martin,

ja, ich bin mir sicher. Diese x^15 ist bereits eine Näherungsfunktion! Würde ich sie komplett genau machen, müsste ich x^200 nehmen! x^15 muss min. sein -- brauche das für Herz-Kreislaufwerte und die sollten schon genau sein.


mfG
ICH
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Sotux (Sotux)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Erfahrenes Mitglied
Benutzername: Sotux

Nummer des Beitrags: 141
Registriert: 04-2003
Veröffentlicht am Mittwoch, den 12. November, 2003 - 23:02:   Beitrag drucken

Polynom 14 Grades erscheint mir eher ungeeignet, normalerweise wird sowas mit B-splines gemacht, dann läuft es auf die Lösung eines Gleichungssystems mit Bandmatrizen raus, es gibt aber auch einen rekursiven Algorithmus.
Wenn die Punkte vernünftig sind sollte das funktionieren.
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Zaph (Zaph)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Zaph

Nummer des Beitrags: 1514
Registriert: 07-2000
Veröffentlicht am Donnerstag, den 13. November, 2003 - 19:52:   Beitrag drucken

Mit Verlaub, aber die Messpunkte durch ein Polynom 14. Grades zu interpolieren ist kompletter Schwachsinn!!

Versuch mal nur vier oder fünf Messpunkte zu nehmen, und sieh dir an, wie sich dann das Interpolationspolynom in den Stellen zwischen den Messstellen verhält. Ich glaube kaum, dass du das möchtest.
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Tux87 (Tux87)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Erfahrenes Mitglied
Benutzername: Tux87

Nummer des Beitrags: 303
Registriert: 12-2002
Veröffentlicht am Donnerstag, den 13. November, 2003 - 22:08:   Beitrag drucken

Ok -- dann hier mal die Aufgabe ganz von vorn (es muss C++ sein):

Ich bekomme von einem optischen Sensor 50, 100 oder 200 Messwerte pro Sekunde. Diese Messwerte ergeben eine Kurve.
Nun brauche ich den Mittelwert der 1. Ableitungen der Anstiegsflanken.
http://www.lm.se/geodesi/astronomi/funktion.gif

Es sieht ungefair so aus wie die rote Linie.

Wie soll ich das also machen? Es sollte möglichst genau sein und innerhalb von einer halben Minute vom PC zu berechnen sein...
mfG
ICH
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Sotux (Sotux)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Erfahrenes Mitglied
Benutzername: Sotux

Nummer des Beitrags: 144
Registriert: 04-2003
Veröffentlicht am Donnerstag, den 13. November, 2003 - 22:31:   Beitrag drucken

Wenn deine Kurve so problemlos ist brauchst du noch nicht mal BSplines, sondern machst einfach im Bereich der Anstiegsflanken (also etwas nach dem lokalen Minimum und vor dem lokalen Maximum) eine lineare Regression und nimmst deren Steigung als Schätzer für den dortigen Anstieg.
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Martin243 (Martin243)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Martin243

Nummer des Beitrags: 868
Registriert: 02-2001
Veröffentlicht am Donnerstag, den 13. November, 2003 - 22:38:   Beitrag drucken

Hi!

Wenn du beispielsweise 50 diskrete Punkte hast, warum nimmst du dann nicht einfach die Steigungen von einem Punkt zum nächsten? Genauer kannst du es eh nicht machen, denn dann setzt du ja voraus, dass die Kurve so verläuft, wie du es dir vorstellst.

Mal als Beispiel:
x12345678910
y0.671.21.51.531.3310.670.470.50.8


Dann würde ich jetzt einfach mal die Steigungen zwischen je zwei aufeinanderfolgenden Punkten berechnen, die negativen weglassen (wegen der Anstiegsflanken, wenn ich das richtig verstanden habe) und dann den Mittelwert bilden:
[(1.2-0.67)+(1.5-1.2)+(1.53-1.5)+(0.5-0.47)+(0.8-0.5)]/5 = 0.238

Ich habe keine Ahnung, ob das im Sinne der Aufgabe ist, aber du siehst an den Antworten, dass du mit dem Polynom nicht weiterkommst. Außerdem brauchst du ja kiene genaue Funktion!
Man differenziert hier im Diskreten...

Übrigens habe ich für das Beispiel die Funktion
f(x) = x/6 + sin(px/6)
genommen, weil sie der Funktion auf dem Bild etwas ähnelt und auch so schöne Anstiegsflanken hat.


MfG
Martin

(Beitrag nachträglich am 13., November. 2003 von Martin243 editiert)

(Beitrag nachträglich am 13., November. 2003 von Martin243 editiert)
________
Die Natur spricht die Sprache der Mathematik:
Die Buchstaben dieser Sprache sind Dreiecke, Kreise und andere mathematische Figuren.
Galileo Galilei
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Tux87 (Tux87)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Erfahrenes Mitglied
Benutzername: Tux87

Nummer des Beitrags: 304
Registriert: 12-2002
Veröffentlicht am Donnerstag, den 13. November, 2003 - 23:38:   Beitrag drucken

Das Bild ist nicht wirklich das, was ich suche -- kann das wirkliche Bild nur gerade nicht einscannen. Meine Kurve ist nicht ganz so einfach. Ich werd versuchen in den nächsten Tagen mal einen Screenshot hochzuladen...
mfG
ICH
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Martin243 (Martin243)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Martin243

Nummer des Beitrags: 869
Registriert: 02-2001
Veröffentlicht am Donnerstag, den 13. November, 2003 - 23:59:   Beitrag drucken

Dennoch ist es keine Kurve, denn du hast doch nur eine Reihe von Punkten vorliegen.

Eine Frage:
Wenn du deine Funktion doch irgendwie berechnet hast, an welchen Punkten willst du die Ableitung denn berechnen, um dann den Mittelwert zu bilden?


MfG
Martin
________
Die Natur spricht die Sprache der Mathematik:
Die Buchstaben dieser Sprache sind Dreiecke, Kreise und andere mathematische Figuren.
Galileo Galilei
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Tux87 (Tux87)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Erfahrenes Mitglied
Benutzername: Tux87

Nummer des Beitrags: 305
Registriert: 12-2002
Veröffentlicht am Freitag, den 14. November, 2003 - 14:28:   Beitrag drucken

Hi,

ich mache bei allen Punkten, die ich dann hab (ca. 200 Stück pro Sekunde) die 1. Ableitung (auße, wenn der PC zu lange braucht um es auszurechnen)...



mfG
ICH
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Martin243 (Martin243)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Martin243

Nummer des Beitrags: 870
Registriert: 02-2001
Veröffentlicht am Freitag, den 14. November, 2003 - 16:20:   Beitrag drucken

Ja, aber geht es denn nicht nur um die Anstiegsflanken?

Außerdem ist klar, dass die Ableitung bei xi nicht weit entfernt sein wird von der Steigung zwischen (xi-1,yi-1) und (xi+1,yi+1).

Auf jeden Fall bin ich gespannt auf die Kurve. Ich glaube, ich brauche hier mal so etwas wie Erfahrungswerte... :-)


MfG
Martin
________
Die Natur spricht die Sprache der Mathematik:
Die Buchstaben dieser Sprache sind Dreiecke, Kreise und andere mathematische Figuren.
Galileo Galilei
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Tux87 (Tux87)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Erfahrenes Mitglied
Benutzername: Tux87

Nummer des Beitrags: 306
Registriert: 12-2002
Veröffentlicht am Samstag, den 15. November, 2003 - 08:47:   Beitrag drucken

doch, es geht nur um die Anstiegsflanke - von einem lokalen Minimum zu einem lokalen Maximum -- nur immer wieder diesen Bereich.

Ich bekomme nachher nen Screenshot von dem Programm, dass die Kurve erstellt und dann lad ich den hoch...


mfG
ICH
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Tux87 (Tux87)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Erfahrenes Mitglied
Benutzername: Tux87

Nummer des Beitrags: 307
Registriert: 12-2002
Veröffentlicht am Sonntag, den 16. November, 2003 - 15:35:   Beitrag drucken

hab nen Screenshot:




mfG
ICH
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Mainziman (Mainziman)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Mainziman

Nummer des Beitrags: 580
Registriert: 05-2002
Veröffentlicht am Sonntag, den 16. November, 2003 - 23:19:   Beitrag drucken

Die Kurve sieht mich mächtig kompliziert an,
kann mir ehrlich gesagt nicht vorstellen eine Funktionsvorschrift als Polynom hinzukriegen
eher in einer FourierTransformation, zumindest was die rote Kurve angeht;

Gruß,
Walter

Mainzi Man,
ein Mainzelmännchen-Export,
das gerne weiterhilft
oder auch verwirren kann *ggg*
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Martin243 (Martin243)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Martin243

Nummer des Beitrags: 872
Registriert: 02-2001
Veröffentlicht am Montag, den 17. November, 2003 - 14:43:   Beitrag drucken

Aaah, so sieht das also aus. Ist der Patient tot? Sieht nämlich nicht gesund aus...

Wie auch immer: Kannst du uns jetzt noch sagen, wie viele Werte wir jetzt ungefähr sehen? Oder anders: Wie vielen Sekunden enspricht denn eine Fensterbreite? Mich interessiert nämlich, wie gut die Auflösung ist und ob man daraus einen vernünftigen Kurvenverlauf bekommt.


MfG
Martin
________
Die Natur spricht die Sprache der Mathematik:
Die Buchstaben dieser Sprache sind Dreiecke, Kreise und andere mathematische Figuren.
Galileo Galilei
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Tux87 (Tux87)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Erfahrenes Mitglied
Benutzername: Tux87

Nummer des Beitrags: 308
Registriert: 12-2002
Veröffentlicht am Montag, den 17. November, 2003 - 16:43:   Beitrag drucken

@Mainziman: mir ist eigentlich egal, wie ich die 1. Ableitung hinbekomme (kenne halt bisher nur die Möglichkeit mit x^15... Ich freu mich aber auch über ne andere Lösung (hauptsache es funktioniert) ;)
Der optische Sensor schickt mir entweder 50, 100 oder 200 Werte! Die gesamte Breite sind 20 Sekunden.


mfG
ICH
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Mainziman (Mainziman)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Mainziman

Nummer des Beitrags: 582
Registriert: 05-2002
Veröffentlicht am Mittwoch, den 19. November, 2003 - 00:18:   Beitrag drucken

Hi,

so wie die Kurve aussieht kann ich mir nur eine Fourier-Transformation vorstellen, aber ob die dem gerecht wird, daß sie in Echtzeit bestimmt werden kann ...

"Freq. modulation"

Mathematica liefert das mit: Plot[Sin[t] + Sin[10t], {t, -5, 5}]

und das scheint mir eine sehr regelmäßige Kurve, welche als "Grundlage" für Deine Kurve dienen könnte;

Gruß,
Walter
Mainzi Man,
ein Mainzelmännchen-Export,
das gerne weiterhilft
oder auch verwirren kann *ggg*
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Martin243 (Martin243)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Martin243

Nummer des Beitrags: 882
Registriert: 02-2001
Veröffentlicht am Mittwoch, den 19. November, 2003 - 11:05:   Beitrag drucken

Hi!

Schön, dass du damit herumspielst. Ich hatte zum Ausprobieren f(x) = sin(9x) + sin(9x/3.5) herangezogen. Verläuft ziemlich ähnlich, nur in einem anderen Maßstab.
Dennoch glaube ich, dass Tux87 da immer noch meckern wird...

Ich bleibe immer noch dabei:
Es reicht, wenn man diskret differenziert, indem man den sog. Vorwärtsgradienten bildet (zumindest habe ich es unter dem Namen kennengelernt):
f'(x) := [f(x+Dx) + f(x)] / Dx

Ich habe dann bei meiner Beispielfunktion auch die "normale" Ableitung gebildet und dann beide so berechnete Durchschnittssteigungen der Anstiegsflanken berechnet.
Das Ergebnis:
kontinuierlich: 6.09255
diskret: 6.09208

Das macht dann eine Abweichung von 0,0077%, müsste also ausreichend sein.
Ich gehe auch davon aus, dass das mit den etwas weniger regelmäßigen Daten von Tux87 klappen würde. Nur kenne ich die ja nicht und diese aus dem Bild zu extrahieren wäre reichlich mühsam...


MfG
Martin
________
Die Natur spricht die Sprache der Mathematik:
Die Buchstaben dieser Sprache sind Dreiecke, Kreise und andere mathematische Figuren.
Galileo Galilei
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Mainziman (Mainziman)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Mainziman

Nummer des Beitrags: 583
Registriert: 05-2002
Veröffentlicht am Mittwoch, den 19. November, 2003 - 11:21:   Beitrag drucken

Hallo Martin,

ja diskret ableiten würde mir da auch zusagen, weil ich nämlich stark bezweifle, daß eine FFT und dann die dazugehörende Ableitung schnell genug gehen ...
und die diskrete Ableitung hat Tux87 ja fast gegeben

Gruß,
Walter
Mainzi Man,
ein Mainzelmännchen-Export,
das gerne weiterhilft
oder auch verwirren kann *ggg*
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Tux87 (Tux87)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Erfahrenes Mitglied
Benutzername: Tux87

Nummer des Beitrags: 311
Registriert: 12-2002
Veröffentlicht am Donnerstag, den 20. November, 2003 - 05:03:   Beitrag drucken

Hi Martin & Mainzimann,

wenn die Abweichung wirklich in so einem geringen Maße bleibt, dann werd ich das mal versuchen.

Danke nochmal...


mfG
ICH
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Mainziman (Mainziman)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Mainziman

Nummer des Beitrags: 584
Registriert: 05-2002
Veröffentlicht am Donnerstag, den 20. November, 2003 - 06:57:   Beitrag drucken


Mainzi Man,
ein Mainzelmännchen-Export,
das gerne weiterhilft
oder auch verwirren kann *ggg*
Seitenanfangvoriger Beitragnächster BeitragSeitenende Link zu diesem Beitrag

Martin243 (Martin243)
Suche alle Beiträge dieser Person in dieser Hauptrubrik
Senior Mitglied
Benutzername: Martin243

Nummer des Beitrags: 886
Registriert: 02-2001
Veröffentlicht am Donnerstag, den 20. November, 2003 - 08:07:   Beitrag drucken

Doppel-
________
Die Natur spricht die Sprache der Mathematik:
Die Buchstaben dieser Sprache sind Dreiecke, Kreise und andere mathematische Figuren.
Galileo Galilei

Beitrag verfassen
Das Senden ist in diesem Themengebiet nicht unterstützt. Kontaktieren Sie den Diskussions-Moderator für weitere Informationen.

ad

Administration Administration Abmelden Abmelden   Previous Page Previous Page Next Page Next Page