Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Mathematik mit MATLAB: Aufgaben und Losungen

Fachkräfte:
weitere Angebote

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Levenberg-Marquardt Optimierung: 1 Gleichung, 2 Unbekannte

 

Levis

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.11.2021, 09:16     Titel: Levenberg-Marquardt Optimierung: 1 Gleichung, 2 Unbekannte
  Antworten mit Zitat      
Hallo zusammen,

ich stehe vor folgendem Problem: Ich habe flächige Daten in der Zeit, also Matrizen der Form A=B=300x445x301. Ich möchte eine Gleichung ln(A) = ln(C) + m * ln(B) lösen, sodass die Summe der Abweichung für C und m möglichst klein wird. Am Schluss erwarte ich eine Lösung für C und m der Dimension 300x445. Ich dachte ich mache das über eine Levenberg-Marquardt Optimierung, scheitere aber an der Implementierung bei zwei Unbekannten. Kann mir dabei jemand helfen?

Vielen Dank und viele Grüße

Levis


Harald
Forum-Meister

Forum-Meister


Beiträge: 23.520
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.11.2021, 14:43     Titel:
  Antworten mit Zitat      
Hallo,

da kann man die 300*445 Probleme unabhängig voneinander sehen?
Um ln(C) und m für eine Reihe von 301 Elementen zu finden, kannst du polyfit verwenden oder das Gleichungssystem selbst aufstellen und mit \ lösen.

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Levis

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2021, 14:19     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für den ersten Tipp. Ja, man kann das Ganze als 300*445 unabhängige Probleme betrachten und ich möchte für die Optimierung immer 201 Datenpunkte in Betracht ziehen. Ich habe es nun über zwei Schleifen mit lsqnonlin versucht:

Code:

for i=1:300
    for j=445
fun = @(z)log(z(1))+z(2).* log(Re(i,j,101:301)) + log(Pr(i,j,101:301).^(1/3)) - log(Nu(i,j,101:301));                    
x0 = [0.25 0.8];
lb = [0 0];
ub = [1 5];
% options.Display = 'none';
options.Algorithm = 'levenberg-marquardt';
CM = lsqnonlin(fun,x0,lb,ub,options);
C_LM(i,j) = CM(1);
m_LM(i,j) = CM(2);
    end
end
 


Gibt es eine elegantere und besonders schnelle Variante?

Besten Dank und viele Grüße
Levis
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 23.520
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.11.2021, 15:09     Titel:
  Antworten mit Zitat      
Hallo,

lsqnonlin ist für nichtlineare Ausgleichsprobleme gedacht. Man kann damit natürlich auch lineare Ausgleichsprobleme lösen, aber es ist bei weitem nicht so effizient. Mein Vorschlag wäre polyfit gewesen. Was spricht dagegen, das so zu versuchen?
Wenn du einen Beispieldatensatz zur Verfügung stellst, kann ich es gerne daran demonstrieren, wie ich das meine.

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2021 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.