|
|
Differenz berechnen und vergleichen, kleinste nehmen |
|
Pythagoras79 |

Forum-Fortgeschrittener
|
 |
Beiträge: 67
|
 |
|
 |
Anmeldedatum: 31.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.03.2010, 19:06
Titel: Differenz berechnen und vergleichen, kleinste nehmen
|
 |
Hallo, habe die Berechnungen f_m_eins und f_m_zwei durchgeführt. Es resultieren 2 Vektoren.
Jetzt will ich eine Matrix erstellen, die die Differenzen angibt. Hierfür muss elementweise der Differenzbetrag berechnet werden, anschließend soll die kleinste Differenz die beiden Werte für m_eins und m_zwei bestimmen die in eine weitere Berechnung eingesetzt werden. Kann mir jemand bei der Matrix helfen?
|
|
|
|
|
Pythagoras79 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 67
|
 |
|
 |
Anmeldedatum: 31.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.03.2010, 19:10
Titel: eigene Idee...
|
 |
Meine eigene Idee ist:
aber da passen die dimensions nicht, warum?
|
|
|
InspectorGadget |

Forum-Fortgeschrittener
|
 |
Beiträge: 52
|
 |
|
 |
Anmeldedatum: 16.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2010, 00:06
Titel:
|
 |
Naja, Du betrachtest in der Matrix Differenz die einzelnen Einträge. Aber auf der rechten Seite der Gleichung hast Du die kompletten Vektoren stehen. Das macht´s schwierig!
Zuerst hab ich Dein Problem so verstanden, dass Du die Differenz zwischen dem ersten Eintrag von f_m_eins und f_m_zwei, dann die Differenz vom zweiten Eintrag von f_m_eins und f_m_zwei,... haben willst. Das geht ganz einfach mit:
Jetzt hast Du einen Vektor mit den Differenzen der Einträge an der jeweils gleichen Stelle.
Mit
bekommst Du den kleinsten Wert des Differenzenvektors.
Dein angegebener Code lässt aber nciht auf dieses Ziel schliessen. Liegt das daran, dass er noch fehlerhaft ist, oder hab cih Dich falsch verstanden?
|
|
|
Pythagoras79 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 67
|
 |
|
 |
Anmeldedatum: 31.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2010, 13:20
Titel: Nicht ganz erledigt...
|
 |
Zuerst soll der erste Wert von f_m_eins genommen werden und die Differenz von allen Werten von F-M-zwei berechnet werden, dann der zweite Wert von f_m_eins mit allen f_m_zwei und so weiter...
Deswegen wird es ja insgesamt eine Matrix Differenz, oder?
Diese Matrix soll alle Differenzen untereinander von f_m_eins und f_m_zwei enthalten und dann den geringsten ausgeben.
|
|
|
InspectorGadget |

Forum-Fortgeschrittener
|
 |
Beiträge: 52
|
 |
|
 |
Anmeldedatum: 16.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2010, 13:28
Titel:
|
 |
Dann musst Du nur in einer Schleife
berechnen. (Bin von Zeilenvektoren ausgegangen!)
Den Rest wie gehabt.
|
|
|
Pythagoras79 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 67
|
 |
|
 |
Anmeldedatum: 31.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2010, 16:30
Titel: Jetzt als Beträge angeben und den kleinsten Wählen
|
 |
Hi Inspector,
Zitat: |
Dann musst Du nur in einer Schleife
Code:
Diff(Counter, =f_m_eins(Counter,1) - f_m_zwei;
berechnen. (Bin von Zeilenvektoren ausgegangen!) |
Bei mir funktioniert es mit:
Muss die Ergebnis-Matrix als Beträge angeben lassen da keine negativen Zahlen in den Vergleich dürfen. Dann muss ich die geringste auswählen. Denke das bekomme ich hin.
Nur:
Zitat: |
Hallo, habe die Berechnungen f_m_eins und f_m_zwei durchgeführt. Es resultieren 2 Vektoren.
Code:
i=5;
m_eins=[1:i]
f_m_eins=(m_eins.^2.*sigma.^2.*(T-t))./((log(U./S)).^2)
k=5;
m_zwei=[1:k]
f_m_zwei=(m_zwei.^2.*sigma.^2.*(T-t))./((log(L./S)).^2)
Jetzt will ich eine Matrix erstellen |
gehen die Variablen m_eins und m_zwei ganzzahlig ein und ich muss mir dann die Werte ausgeben lassen. Also m_eins = 3 und m_zwei =5 ergeben die kleinste Differenz von 0,0021 z. B.
Danke für deine Hilfe...
|
|
|
InspectorGadget |

Forum-Fortgeschrittener
|
 |
Beiträge: 52
|
 |
|
 |
Anmeldedatum: 16.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2010, 19:18
Titel:
|
 |
Hat sich dann damit alles beantwortet? Oder gibt es noch ein Problem?
Viel Spass weiterhin...
|
|
|
Pythagoras79 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 67
|
 |
|
 |
Anmeldedatum: 31.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.03.2010, 18:06
Titel: noch nicht ganz erledigt
|
 |
Hi Inspector,
nein, ich bin noch nicht durch. Brauche die ganzzahligen werte ausgegeben von m_eins und m_zwei (siehe post oben im zweiten abschnitt!)
|
|
|
InspectorGadget |

Forum-Fortgeschrittener
|
 |
Beiträge: 52
|
 |
|
 |
Anmeldedatum: 16.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.03.2010, 19:01
Titel:
|
 |
So wie ich Dich am Anfang vertanden habe, willst Du wissen, welcher der kleinste Wert in der Differenzmatrix ist, oder?
Oder willst Du die Indizes des kleinsten Wertes? Die bekommst Du mit find:
N ist die Diffmatrix.
|
|
|
Pythagoras79 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 67
|
 |
|
 |
Anmeldedatum: 31.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.03.2010, 20:47
Titel: Indizes
|
 |
Die Indizes suche ich, da ich diese für eine weitere Berechnung benötige.
Danke vorerst ich werde deine Code mal anwenden!
Gruß
|
|
|
Pythagoras79 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 67
|
 |
|
 |
Anmeldedatum: 31.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.03.2010, 11:12
Titel: Nochmal..
|
 |
Hi Inspector,
hab jetzt den Code soweit fertig:
Allerdings gibt mir Matlab dann als minimum einen Vektor an, ich will aber nur die kleinste Zahl! Geht das nur mit min(min(N))?
Beim Code:
Gibt er mir für a=1 und für b den Maxwert von i an, komisch...
Gruß
vom Laien
|
|
|
InspectorGadget |

Forum-Fortgeschrittener
|
 |
Beiträge: 52
|
 |
|
 |
Anmeldedatum: 16.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.03.2010, 11:28
Titel:
|
 |
Hi!
Mit min sucht Matlab immer den kleinsten Wert aus einer Spalte. Bei einer Matrix als Input bekommst Du einen Vektor mit Länge "Anzahl der Spalten der Matrix" mit den geringsten Einträgen der Matrix. Wendest Du darauf nochmal min an, bekommst Du den geringsten Eintrag aus dem Vektor (als Skalar), und damit den geringsten Eintrag der Matrix. Deswegen min(min(N)). Schau Dir mal die Hilfe zu min an, falls noch was unklar ist. (help min)
Jetzt musst Du noch die Indizes finden, an der dieser kleinste Wert in der Matrix steht. das geht mit dem find befehl. Der erste Rückgabevektor enthält die Zeilennummern, der zweite die Spaltennummern. Sollte der kleinste Wert nur einmal in der Matrix auftreten, sind die beiden Vektoren natürlcih skalar. Näheres wieder in der Hilfe.
Viel Erfolg!!!
|
|
|
Pythagoras79 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 67
|
 |
|
 |
Anmeldedatum: 31.03.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.03.2010, 16:41
Titel: jetzt siehts gut aus...
|
 |
hab aber zwei schleifen gemacht, wegen index...
brauche nämlich n für weitere rechnungen.
Vielen Dank für die Hilfe, next problem kommt bestimmt!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|