Ich habe eine Reihe von verrauschten Daten und möchte eine benutzerdefinierte Gleichung, obwohl es in MATLAB. Als nächstes würde ich die Werte der Koeffizienten nehmen und sie in meinem Algorithmus verwenden. Aber ich stecke fest und ich kann nicht herausfinden warum. Ich verwende eine nichtlineare Gleichung a + b * log10 (x1-dcos (alpha-x2)), wobei x1, x2 und der Antwortwert bekannt sind. Das erste Problem sind die Koeffizienten von a, b und alpha müssen begrenzt sein. Alpha hier in Grad kann nur von 0 bis 360 zum Beispiel variieren. Ich weiß nicht, wie dies mit der Kurvenanpassung Toolbox erreichen.Mehrere Variable nicht lineare Regression oder Kurvenanpassung Matlab
Ich habe auch andere Optionen wie nicht lineare Regression Techniken in MATLAB (fitnlm, lsqcurvefit etc) versucht, die enttäuschend erwies, wie ich kann über diese Variablen Grenzen haben. Trotz der guten Passform sind die Koeffizienten viel zu schlecht.
Also, Frage 1: Wie passe ich mehrere Variablen mit Kurvenanpassung? Frage 2: Wenn das nicht möglich ist, was andere Techniken kann ich außer nichtlineare Regression verwenden.
Viele Thnaks im Voraus! Ich wünsche ihnen einen wunderbaren Tag !
Ihr Problem Konfigurieren Sie in 'cftool', bis Sie es richtig machen, dann die "Export-Code" Funktion verwenden, um zu lernen, wie es programmatisch zu tun. –
@Sayantan Roy Hast du die Antwort versucht? Oder bitte klären Sie Ihre Frage – anquegi
@anquegi Sorry für die späte Antwort. Ja, ich habe deine Antwort gesehen und danke für die Mühe. Mein Problem ist die Anpassung, die ich bekomme gibt einen seltsamen Alpha-Wert, der nur zwischen 0 und 360 sein kann. Ich habe Ihre Funktion verwendet und eine Grenze hinzugefügt. Die Anpassung erfüllt jedoch nicht meine Bedürfnisse. Ich denke, dass eine Datenmenge eine unterschiedliche Anzahl von Lösungen haben kann, da cos (theta) = cos (-theta) ist. So wie Matlab den Winkel Alpha berechnet, erzeugt es einen Wert, jedoch kann dieses Alpha auch ein anderer Wert sein, der die gleiche Gleichung und den gleichen Datensatz erfüllen würde. Ich weiß nicht, wie man multiple Werte für Alpha bekommt. –