|
|
Fehlersummenquadrate minimieren |
|
thomas0815 |

Forum-Century
|
 |
Beiträge: 153
|
 |
|
 |
Anmeldedatum: 13.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.08.2010, 09:36
Titel: Fehlersummenquadrate minimieren
|
 |
|
 |
|
Hallo, ich versuche mit Matlab eine multivariate Regression durchzuführen. Der Ansatz ist die Fehlersummenquadrate zu minimieren. Ich verfüge über keine Toolboxen.
Ich habe eine Datenreihe für X und Y gegeben.
YY=a1+a2*X1+a3*X1²+a4*X1³ +b1+X2+b2+x2²
Nun soll die quadratische Abweichung zwischen Y und YY durch geeignete wahl der Parameter (a1...a4, b1...b2) minimiert werden
C=min(sum((Y-YY)^2)
die Parameter können als einzelne Variable ausgegeben werden also Wert für a1, a2, a3 udn a4 oder als ein Zeilenvektor a mit 4 Elementen - selbes gilt analog für b.
Die Parameter sollen dann direkt für die X1 und x2 Werte in die Funktion eingesetzt werden und somit C berechnet werden.
Harald hatte mir vor einiger Zeit einen Hinweis gegeben. Mein erster Asnatz ist so
Dabei kommt folgende Fehlermeldung:
??? Input argument "a" is undefined.
Error in ==> Untitled at 3
y = a(1) + a(2)*x1 + a(3)*x1^2 + a(4)* x1^3+b(1)*x2+b(2)*x2^2;
hat jemand einen Hinweis?
Danke und Gruß,
Thomas
|
|
|
|
|
aj.geissler |

Forum-Guru
|
 |
Beiträge: 251
|
 |
|
 |
Anmeldedatum: 26.11.07
|
 |
|
 |
Wohnort: Seeheim-Jugenheim
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.08.2010, 10:24
Titel:
|
 |
Hi,
lass den Parameter a1 in der Gleichung weg.
Letzten Endes optimierst Du die Summe a1 + b1.
Deine Gleichung darf nur eine Konstante und nicht mehrere enthalten.
Grüße
Andreas
_________________
Andreas Geißler
|
|
|
thomas0815 |
Themenstarter

Forum-Century
|
 |
Beiträge: 153
|
 |
|
 |
Anmeldedatum: 13.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.08.2010, 14:51
Titel:
|
 |
ja, die Gleichung habe ich falsch geschrieben; die muss heißen
YY=a1+a2*X1+a3*X1²+a4*X1³ +b1*X2+b2*x2²
Damit habe ich nur eine Konstante a1 - im code hatte ich es aber richtig, am Fehler ändert sich trotzdem nichts !?
Woran kann das liegen?
Viele Grüße,
Thomas
|
|
|
Thomas84 |

Forum-Meister
|
 |
Beiträge: 546
|
 |
|
 |
Anmeldedatum: 10.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.08.2010, 07:03
Titel:
|
 |
Da alle Parameter linear eingehen handelt es sich um ein lineares Optimierungsproblem. Du kannst also backslash verwenden:
Außerdem ist der Aufruf von nlinfit falsch. Nur das erste Argument ist für den Datenvektor bestimmt. Die Übergabe der Parameter und Werte geht so bestimmt auch nicht.
|
|
|
|
|
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.
|
|