|
hansemiel |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.10.2011, 17:10
Titel: fmincon Nebenbedingung
|
|
Hallo,
ich möchte gemessene Werte mit einem Polynom 3. Grades regressieren, mit der Nebenbedingung, dass der Funktionswert an der Stelle x=0 y=0 sein muss und an der Stelle x=1 y=1 sein muss.
Dazu habe ich mir eine Funktion zum minimieren geschrieben
Ich verstehe jetzt die fmincon Hilfe nicht wirklich, wie bzw. wo kann ich jetzt die Bedingung
0=p(1).*xdata(1).^3+p(2).*xdata(1).^2+p(3).*xdata(1)+p(4);
bzw
1=p(1).*xdata(letzte element).^3+p(2).*xdata(letzte element).^2+p(3).*xdata(letzte element)+p(4);
rein schieben?
Besten Dank
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 16.10.2011, 18:51
Titel:
|
|
Hallo,
mach dir das Leben doch einfacher.
p(4) kannst du weglassen, wenn bei x = 0 auch y = 0 sein soll.
Wenn x=1, sieht die Gleichung y = 0 so aus:
0=p(1) +p(2) +p(3) ; % p(4) ist schon weg
Das heißt, du kannst das Problem vereinfachen, indem du p(3) = -(p(1) + p(2)) setzt und dann FMINUNC nimmst.
Alternativ kannst du das als lineare Gleichungsnebenbedingung angeben:
Aeq = [1 1 1]
beq = 0;
Aber an sich ist der Berechnungsaufwand ohnehin übertrieben; du kannst das Problem nämlich wie oben reduzieren auf:
y = p(1)*x^3 + p(2)*x^2 -(p(1) + p(2))*x
oder
y = p(1) * (x^3 - x) + p(2) * (x^2 - x)
Das ist dann ein lineares Regressionsproblem. Die Lösung dieses Problems wäre (für Spaltenvektoren x und y) :
[x.^3 - x, x.^2 - x] * p = y bzw.
Grüße,
Harald
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.10.2011, 21:28
Titel:
|
|
Hallo Harald,
Vielen Vielen Dank für die Lösung, manchmal sieht man den Wald vor lauter Bäumen nicht und will gleich mit der größten numerischen Keule auf das Problem hauen .
Danke auch für den Tip mit Aeq und beq damit funktioniert es auch mit fmincon ganz wunderbar und ich fange an die Optionen für die Nebenbedingung zu verstehen.
Also nochmals Danke und schönen Abend
|
|
|
|
|
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.
|
|