Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Studierende:
Praktikant Toolentwicklung Matlab (m/w)
Branche: Beratung, Expertise, Fahrzeugtechnik, Fahrzeugteile, Technische Dienstleistungen
MBtech Group GmbH & Co. KGaA - Fellbach

Abschlussarbeit / Praktikum: Entwicklung Matlab (m/w)
Branche: Informationstechnologie, Elektrotechnik, Elektronik
GIGATRONIK Technologies GmbH - Ulm

Studentische Mitarbeit - Fahrzeugmessungen
Branche: mehrere
IAV GmbH - Ingenieurgesellschaft Auto und Verkehr - Berlin

Werkstudent (m/w) High End GNSS Simulation mit modernsten Signalgeneratoren
Branche: Mess-, Regel-, Automatisierungstechnik, Telekommunikation, Nachrichtentechnik
ROHDE & SCHWARZ GmbH & Co. KG - München

Praktikant Testsystemaufbau (m/w)
Branche: Beratung, Expertise, Fahrzeugtechnik, Fahrzeugteile, Technische Dienstleistungen
MBtech Group GmbH & Co. KGaA - Sindelfingen

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Polyfit und Polyval doch die Interpolation ist mies

 

sawyer_ma
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 56
Anmeldedatum: 13.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2017, 22:33     Titel: Polyfit und Polyval doch die Interpolation ist mies
  Antworten mit Zitat      
Hallo alle zusammen,

ich habe diesen Code wie unten geschrieben der mir ein paar Werte einliest und dann versucht ein geeignetes Polynom 5er Ordnung (6 Messwerte) zu finden. Die sechs Messwerte gleichen einer Exponentialfunktion aber Polyfit ist derart schlecht in meinem Code das ich vermute das ich irgend etwas falsch gemacht habe.

Nun die Frage an euch, warum ist meine Interpolation so derart schlecht??

Die Messwerte sind unten angefügt.

Code:

clear all
clc
% format shortg

fid = fopen('werte.txt');
matrix1 = fscanf(fid,'%e %e',[2 6]);
matrix1 = matrix1';

    x = matrix1(:,1);
    y = matrix1(:,2);
 
    close
   
 [p, S1] = polyfit(x,y,5)
 x1 = [0:1:5];
 
 [f, S] = polyval(p,x,S1);

figure(1)
hold on;
grid on
plot(x1,f,'b');
plot(x,y,'r-o');
xlabel('Strom [mA]');
ylabel('Widerstand [Ohm]');
a = y-f;
T = table(x,y,f,a,'VariableNames',{'X','Y','Fit','FitError'})
S = S;
 


Vielen Dank für eure Hilfe.

Beste Grüße
sawyer

werte.txt
 Beschreibung:

Download
 Dateiname:  werte.txt
 Dateigröße:  42 Bytes
 Heruntergeladen:  17 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 17.512
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 28.07.2017, 07:49     Titel:
  Antworten mit Zitat      
Hallo,

ein Problem: du wertest das Polynom für x aus, plottest aber gegen x1.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
sawyer_ma
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 56
Anmeldedatum: 13.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2017, 14:27     Titel:
  Antworten mit Zitat      
Super das war der blöde Fehler den ich übersehen habe. Jedoch steh ich nun leider vor einem weiteren Problem. Der Plot welcher ich aus meiner Interpolation erhalte ist super und die Werte des Polynoms bekomme ich ja auch geliefert.

Siehe Bild 1 und Bild 2.

Jedoch wenn ich dann die Kooeffizeinten in das Polynom eintrage bekomme ich wieder absoluten Käse. Warum?? Warum ist das nicht Identisch zu meinem Poyfit Plot? Wo liegt den hier der Hund begraben??

Code:
Code:

clc;
clear all;

x = [0:0.01:7];
y = 1.0e+04*(-0.0403*(x.^5)+0.4574*(x.^4)-1.4053*(x.^3)+1.3144*(x.^2)-0.3909*x+0.0373)

figure(1)
hold on;
grid on
plot(x,y,'b');
xlabel('Strom [mA]');
ylabel('Widerstand [Ohm]');
 


Was mache ich den nun schon wieder falsch? Irgendwie lese ich das Polyfit falsch aus was aber auch nicht sein kann. Was ist der mathematische Fehler den ich einfach nicht erkennen will? Theoretisch ist es doch nur eine poplige Interpolation. Kann mir jemand weiterhelfen?

Eine mögliche Interpretation meiner seitens ist das villt die Interpolation nicht funktioniert da die X-Werte nicht Linear sind? Kann das sein?

Bild 2.png
 Beschreibung:

Download
 Dateiname:  Bild 2.png
 Dateigröße:  554.36 KB
 Heruntergeladen:  16 mal
Bild 1.pdf
 Beschreibung:
Plot welcher Polyfit ausspuckt.

Download
 Dateiname:  Bild 1.pdf
 Dateigröße:  3.83 KB
 Heruntergeladen:  21 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 17.512
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 28.07.2017, 15:55     Titel:
  Antworten mit Zitat      
Hallo,

wenn du y mit den gleichen x-Werten berechnest wie bei polyval, bekommst du die gleichen Ergebnisse. Mir stellst sich allerdings die Frage, warum du nicht bei polyval bleibst.

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
.


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


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


Copyright © 2007 - 2017 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.