|
|
Fit routine ueber mehrere Formeln |
|
RatioTM |
Forum-Fortgeschrittener
|
|
Beiträge: 51
|
|
|
|
Anmeldedatum: 24.04.18
|
|
|
|
Wohnort: Genf
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.04.2021, 13:49
Titel: Fit routine ueber mehrere Formeln
|
|
|
|
|
Hallo,
ich moechte eine function schreiben, die folgendes machen soll:
i) kreiere zufaelligen Vektor gemaess einer Lognormalverteilung mit 3 Unbekannten in der Lognormalverteilung (dN; 1x743 vektor). Die Unbekannten werden zufaellig kreiert und sollen in der ersten Iteration gemaess zunaechst festgelegter Startparameter gebildet werden. Anschliessend sollen in x Iterationen die Werte geaendert werden, allerdings nicht bis die Residuen von Punkt i) minimiert sind (dann wuerde ich einfach MATLABs fit verwenden), sondern bis die Residuen von Punkt iii) minimiert sind.
ii) verwende diese Werte (von oben), um ueber ein Integral von log10(x_i) bis log10(x_i+1) den Wert N zu bestimmen.
iii) der Wert N ist eine 1x743 Matrix und wird mit einer hfest vorgeschriebenen 743x25 Matrix (H) multipliziert. Dies ergibt den Wert M, also:
M=N*H (M: 1x25 Matrix)
Dieses M soll mit einem M_measured verglichen werden, wobei die Schritte (i) bis (iii) unter Veraenderung der Unbekannten so oft veraendert werden sollen, bis die Residuen im Vergleich M vs M_measured minimiert sind.
Ich bin mir sicher, dass MATLAB hierzu etwas anbietet, ich dies jedoch nicht kenne. Meine Vorgehensweise war bisher stets auf die Loesung eines Gleichungssystems entweder via lsqlin oder etwa via fit beschraenkt.
Das was ich machen moechte, entspricht im Grunde auch fit, jedoch eben ueber drei zwischenschritte. Die Parameter in i sollen so oft geaendert werden, bis die Residuen der Matrix (dot-) Multiplikation mit der hardgecodeten Matrix im Vergleich zu einem Messwert minimiert sind.
Koennt ihr mir hier weiterhelfen?
Vielen Dank und freundliche Gruesse!
Zuletzt bearbeitet von RatioTM am 26.04.2021, 15:34, insgesamt einmal bearbeitet
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.04.2021, 14:32
Titel:
|
|
Hallo,
für mich ist die Beschreibung recht länglich und in entscheidenden Punkten doch zu vage.
Zitat: |
gemaess einer Startbedingung |
Welche Startbedingung?
Zitat: |
ein Integral ueber die x Achse |
Wie soll man über eine Achse integrieren? Ich kenne nur Integrale über Funktionen. Die entscheidende Frage wäre dann: welche Funktion?
Insgesamt klingt das für mich nach
lsqnonlin
.
Ich würde empfehlen, mal damit anzufangen und dann bei konkreten Fragen auf das Forum zurückzukommen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
RatioTM |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 51
|
|
|
|
Anmeldedatum: 24.04.18
|
|
|
|
Wohnort: Genf
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.04.2021, 14:55
Titel:
|
|
|
|
|
Hallo,
Harald hat Folgendes geschrieben: |
Zitat: |
gemaess einer Startbedingung |
Welche Startbedingung?
|
Wenn die Lognormalverteilung gegeben ist ueber:
Sind die Startbedingungen der Verteilung in N1, s1 und m1 fesgelegt. Diese Startbedingungen basieren beispielsweise auf einem anderen Vektor und werden durch einen Fit, etwa in einer anderen Routine, bestimmt.
dN ist eine Lognormalverteilung und soll ueber x (ein hard gecodeter Vektor) die Groesse 1x743 erhalten.
Harald hat Folgendes geschrieben: |
Zitat: |
ein Integral ueber die x Achse |
Wie soll man über eine Achse integrieren? Ich kenne nur Integrale über Funktionen. Die entscheidende Frage wäre dann: welche Funktion?
Insgesamt klingt das für mich nach
lsqnonlin
.
Ich würde empfehlen, mal damit anzufangen und dann bei konkreten Fragen auf das Forum zurückzukommen.
|
Die Antwort ist oben bereits beschrieben: Der Vektor x legt die x-Werte der funktion dN fest. Die Integrale erfolgen schrittweise (Bin by Bin) entlag des Vektors x. EIne grobe Annaeherung waere etwa:
Danach ist M gegeben durch:
Wobei M eine 1x25 Matrix ist und H eine fest vorgegebene 743x25 Matrix.
Wie Sie sehen will ich die Parameter N1, s1 und m1 in k Iterationen veraendern bis die Residuen von M vs M_measured minimiert sind, wobei M_measured die reellen Werte sind.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.04.2021, 15:04
Titel:
|
|
Hallo,
Zitat: |
Sind die Startbedingungen der Verteilung in N1, s1 und m1 fesgelegt. |
"Startbedingungen" habe ich in dem Zusammenhang noch nie gehört, ich würde von "Parametern" sprechen.
Zitat: |
Die Antwort ist oben bereits beschrieben |
Nur in für mich sehr unüblichen Worten. Über Werte oder auch einen Vektor zu integrieren ist üblich, von "über eine Achse integrieren" habe ich noch nie gehört.
Wenn du also die x-Werte integrieren willst, würde ich
trapz
verwenden.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
RatioTM |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 51
|
|
|
|
Anmeldedatum: 24.04.18
|
|
|
|
Wohnort: Genf
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.04.2021, 15:15
Titel:
|
|
|
|
|
Harald hat Folgendes geschrieben: |
Hallo,
Zitat: |
Sind die Startbedingungen der Verteilung in N1, s1 und m1 fesgelegt. |
"Startbedingungen" habe ich in dem Zusammenhang noch nie gehört, ich würde von "Parametern" sprechen.
Zitat: |
Die Antwort ist oben bereits beschrieben |
Nur in für mich sehr unüblichen Worten. Über Werte oder auch einen Vektor zu integrieren ist üblich, von "über eine Achse integrieren" habe ich noch nie gehört.
Wenn du also die x-Werte integrieren willst, würde ich
trapz
verwenden.
|
Hallo,
Womoeglich ist meine Wortwahl nicht die Einfachste. Aber ich habe den Eindruck, dass Sie verstanden haben, worauf ich hinaus will:
"ueber eine Achse integrieren" is natuerlich mathematisch vollkommener Schwachsinn, jedoch wandere ich bin-by-bin die Achse ab und integriere die Werte jeweils von x_i bis x_i+1. Ich gebe Ihnen jedoch Recht, dass es vermutlich einfacher in der Beschreibung der Problemstellung geht.
Mit "Startbedingung" wollte ich letztlich zum Ausdruck bringen, dass diese drei Parameter iterativ veraendert werden sollen bis die Residuen in M vs M_measured minimiert sind.
VG
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.04.2021, 15:27
Titel:
|
|
Hallo,
Entschuldigung, wenn ich so deutlich werde:
Zitat: |
Womoeglich ist meine Wortwahl nicht die Einfachste. |
Nicht nur das, sondern meines Erachtens nicht korrekt.
Sind denn nun noch Fragen offen? Wenn ja, welche?
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
RatioTM |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 51
|
|
|
|
Anmeldedatum: 24.04.18
|
|
|
|
Wohnort: Genf
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.04.2021, 15:36
Titel:
|
|
Harald hat Folgendes geschrieben: |
Hallo,
Entschuldigung, wenn ich so deutlich werde:
Zitat: |
Womoeglich ist meine Wortwahl nicht die Einfachste. |
Nicht nur das, sondern meines Erachtens nicht korrekt.
Sind denn nun noch Fragen offen? Wenn ja, welche?
Grüße,
Harald |
Hallo,
ich stimme Ihnen zu und habe den Text angepasst- auch fuer zukuenftige Leser. Ich werde zunaechst mit lsqnonlin beginnen und mich bei Fragen nochmal melden.
Beste Gruesse
|
|
|
|
|
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 - 2024
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.
|
|