WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Funktionsgleichung F(x,y) aus Messwerten

 

zotti.fischi
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 12.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.07.2013, 12:00     Titel: Funktionsgleichung F(x,y) aus Messwerten
  Antworten mit Zitat      
Hallo zusammen,
ich bin neu hier und weiß nicht, ob dass das richtige Forum hierfür ist. Ich habe folgendes Problem:

ich habe Messwerte der Form:
x y z
2 2 2
3 3 3

in großen Mengen und möchte jetzt eine Funktion

z= f(x,y)

Die Frage ist geht das mit Matlab und wenn ja wie? ich dachte da an sowas wie polyfit für bilinerare Interpolation oder so...

Vielen Dank im Voraus
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

schau dir mal das Curve Fitting Tool an:
Code:

[benötigt die Curve Fitting Toolbox]

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
zotti.fischi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 12.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2013, 06:00     Titel:
  Antworten mit Zitat      
Hallo zusammen,
danke an harald hab die Funktion cftool ausprobiert hat aber nicht ganz funktioniert, auch wenn ich denke, dass es die richtige Funktion ist hier mein problem
Code:
function [ z ] = own_fit( x,y )
%OWN_FIT Summary of this function goes here
%   Detailed explanation goes here
       p00 =       -1233;  
       p10 =    5.05e-11;  
       p01 =       12.95;  
       p20 =   1.876e-13;  
       p11 =  -3.297e-13;  
       p02 =    -0.03849;  
       p30 =   4.194e-12;  
       p21 =  -2.356e-14;  
       p12 =   5.741e-16;  
       p03 =   4.124e-05;  
       

f(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p30*x^3 + p21*x^2*y + p12*x*y^2 + p03*y^3;
               
 z=f(x,y);                  
end


das ist die vom Tool ausgegeben Funktion und das sind die zugehörigen Messwerte:
x:
0,200000000000000 0,200000000000000 0,200000000000000 0,400000000000000 0,400000000000000 0,400000000000000 0,600000000000000 0,600000000000000 0,600000000000000 0,800000000000000 0,800000000000000 0,800000000000000

y:
283,150000000000 316,480000000000 333,710000000000 283,150000000000 316,480000000000 333,710000000000 283,150000000000 316,480000000000 333,710000000000 283,150000000000 316,480000000000 333,710000000000

z:
-0,406000000000000 -0,105000000000000 0,428000000000000 -0,743000000000000 -0,217000000000000 0,0330000000000000 -0,697000000000000 -0,159000000000000 0,0930000000000000 -0,346000000000000 0,195000000000000 0,451000000000000

was mache ich falsch?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 17.07.2013, 08:25     Titel:
  Antworten mit Zitat      
cftool ist für 1 dimmensionale funktionen. glaube du brauchst
Code:

Linear model Poly22:
f(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2
Coefficients (with 95% confidence bounds):
p00 = 4.053 (-14.83, 22.94)
p10 = -3.959 (-7.738, -0.1791)
p01 = -0.03864 (-0.1617, 0.08439)
p20 = 3.973 (2.642, 5.304)
p11 = 0.0006571 (-0.01069, 0.012)
p02 = 8.773e-005 (-0.0001122, 0.0002877)

Goodness of fit:
SSE: 0.03408
R-square: 0.9795
Adjusted R-square: 0.9623
RMSE: 0.07537

p.s. es ist immer einfacher für alle wenn du daten so postest das man sie auch verwenden kann und nicht erst alle kommas durch punkte ersetzen muss usw
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.07.2013, 17:55     Titel:
  Antworten mit Zitat      
Hallo,

sftool wird in neueren Versionen direkt über cftool aufgerufen.

Es ist gewagt, durch 12 Datenpunkte 6 oder gar 10 Parameter bestimmen zu wollen. Da besteht die Gefahr von Overfitting.

Ansonsten stimmt eine Zeile nicht. Es muss heißen:
Code:
f = @(x,y) ...


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
zotti.fischi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 12.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 06:41     Titel:
  Antworten mit Zitat      
danke für die Antworten. Ich hab das mit dem Komma gar nicht gesehen. Mache ich das nächste mal besser.
@harald ansich sind es mehrere 100 Datensätze, wollte nur erstmal sehen ob es überhaupt geht, bevor ich die aufbereite.
das mit dem f@(x,y) verstehe ich nicht...

aber es scheint jetzt zu funktionieren...vielen vielen Dank euch beiden
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.07.2013, 07:00     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
das mit dem f=@(x,y) verstehe ich nicht...

Das ist ein anonymous function handle - mehr dazu in der Doku.

Grüße,
Harald
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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button 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.