matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMatlabmaxima finden
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Geschichte • Erdkunde • Sozialwissenschaften • Politik/Wirtschaft
Forum "Matlab" - maxima finden
maxima finden < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

maxima finden: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 10:58 Di 18.09.2007
Autor: anitram

halli hallo!!

ich habe ein "liniendiagramm" gegeben (siehe anhang), in dem die einträge einer Matrix H eingezeichnet sind.
man kann erkennen, dass es 2 maxima bzw 2 spitzen gibt.
eine spitze zu erkennen ist kein problem. ich suche einfach nach max(H).

aber: wie kann ich jetzt beide spitzen, bzw auch 3,4,5,6.. spitzen finden.

im internet finde ich einfach nichts passendes, vielleicht erkenn ich es auch einfach nur nicht...

vielleicht weiß hier jemand, wie ich dieses problem lösen kann?

vielen dank!
lg anitram

[Dateianhang nicht öffentlich]

Dateianhänge:
Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
        
Bezug
maxima finden: Antwort
Status: (Antwort) fertig Status 
Datum: 11:38 Di 18.09.2007
Autor: Martin243

Hallo,

du musst mal "manuell" nach lokalen Maxima suchen, d.h. du musst im einfachsten Falle nach Punkten suchen, die höher liegen als ihre beiden Nachbarn.
Der folgende Ansatz findet natürlich nur Maxima, die nicht direkt an den Rändern liegen. Deswegen müssen die gefundenen Indizes um 1 erhöht werden. a enthalte die y-Werte.

max_indices = 1 + find((a(2:end-1)>a(1:end-2)) .* (a(2:end-1)>a(3:end)));

Nun findest du mit diesem Code jedes noch so schwach ausgeprägte lokale Maximum. Falls du aber nur stärkere Spitzen suchst, kannst du noch ein zusätzliches Kriterium einbauen. Denkbar wären da:
a) Wir erweitern die Umgebung, die ein Maximum überragen muss auf mehr Punkte. Also z.B. die beiden rechts davon und die beiden links davon. Hier muss man den breiter werdenden Rand berücksichtigen.
max_indices_a = 2 + find((a(3:end-2)>a(2:end-3)) .* (a(3:end-2)>a(1:end-4)) .* (a(3:end-2)>a(4:end-1)) .* (a(3:end-2)>a(5:end)))

b) Wir wollen, dass die Kurve mehrere Punkte lang (hier: 2) links vom Maximum streng monoton steigt und rechts davon streng monoton fällt. (also keine weiteren kleinen Spitzen in dieser Umgebung)
max_indices_b = 2 + find((a(3:end-2)>a(2:end-3)) .* (a(2:end-3)>a(1:end-4)) .* (a(3:end-2)>a(4:end-1)) .* (a(4:end-1)>a(5:end)));

c) Wir können auch sagen, dass die Differenz oder der Quotient zwischen dem Maximum und den Nachbarwerten einen bestimmten Wert nicht unterschreiten darf.

d) Wir können die Ausprägung der Spitze messen, indem wir den Winkel den die beiden Nachbarpunkte und das Maximum bilden bestimmen. So können wir nur besonders spitze Spitzen (...) zulassen.


Gruß
Martin

Bezug
                
Bezug
maxima finden: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 12:49 Di 18.09.2007
Autor: anitram

hallo!

danke für deine antwort! sso funktionierts schon ganz gut!!!!

aber jetzt steh ich vor einem so kleinen problem, dass ich glaube auf der leitung zu stehen!
die x werte der punkte hab ich ja jetzt,
aber wie erhalte ich die y-werte dazu?
ich weiß es ist nicht schwer, aber matlab ist leider schon ein bissl länger her!

vielen dank!
lg anitram

Bezug
                        
Bezug
maxima finden: Antwort
Status: (Antwort) fertig Status 
Datum: 13:11 Di 18.09.2007
Autor: dormant

Hi!

H ist eine 2x60 Matrix, vermute ich mal. Oder 60x2, was das gleiche ist. Nun ja - die eine Spalte läuft von 1 bis 60, und die andere hat die y-Werte. Normalerweise ist die erste Spalte für die x-Werte, und die zweite für die y-Werte: H(2,:);

Gruß,
dormant

Bezug
                                
Bezug
maxima finden: Frage (reagiert)
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 13:39 Di 18.09.2007
Autor: anitram


danke!!
aber so erhalte ich aber nur eine fehlermeldung index exceeds matrix dimension....

ich frage einfach nochmal anders:
ich erhalte z.b. die werte 20 und 46, das sind die x werte, hier befindet sich ein maximum.
aber nun will ich ja den "ganzen" punkt wissen
also (20,40) und (46, 85) ungefähr müssten diese y werte stimmen, nur wie bekomme ich sie??

ich hab im moment hier echte denkschwierigkeiten und schon einen knopf im hirn!

vielen dank!
lg anitram



Bezug
                                        
Bezug
maxima finden: erledigt!
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:42 Di 18.09.2007
Autor: anitram


hab den fehler nun selbst gefunden!
vielen dank für die hilfe!!!

lg anitram

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.schulmatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]