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

Regressionsgerade

 

sweety2210
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 09.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2013, 13:57     Titel: Regressionsgerade
  Antworten mit Zitat      
Hallo,

ich habe eine Problem mit einer Regressionsgerade. Die konnte ich bereits einzeichnen mit Hilfe einer eigenen Polyfit-Funktion.

Code:

function [a] = mypolyfit(t,phi,o)

o=o+1;

X = zeros(length(t),o);

for i = 1: o
    X(:,i) = t.^(i-1);
end

a = inv(X'*X)*X'*phi;
end
 


Meine x-Werte stellen die Höhe da und die y-Werte den Druck dar.
Ich möchte jetzt die Druckveränderung bei einer Höhenänderung von 8 Meter ausrechnen (s. Letzte Zeile im Code).

Code:

order = 1;

a = mypolyfit(alt, p_s, order);
lin = a(1);
for i = 1:order
   lin = a(i+1)*alt.^i+lin;
end

plot(alt, p_s)
hold on
plot(alt,lin,'LineWidth',2,'Color',[1 0 0])
hold off
druck=lin(392)-lin(400);
 


Da kommt aber immer Null raus, was nicht sein kann. Aber laut plot(alt,lin) ist doch "lin" quasi mein y-Wert. Also verstehe ich nicht, wieso druck=lin(392)-lin(400) nicht funktioniert. Wieso klappt das nicht?

Ich möchte außerdem den Druck bei einer Höhe von "0" rausbekommen. Aber die Gerade reicht leider nicht bis zu alt=0. Wie könnte ich das denn noch machen? Ich könnte zwar einfach noch eine Gerade mit der gleichen Steigung und gleichem Achsen-Abschnitt einzeichnen, aber da meine lin(alt)-methode nicht funktioniert, kann ich das auch nicht per Hand machen. Hättet ihr vielleicht einen Tip für mich?

Danke schon mal.

Grafik.jpg
 Beschreibung:

Download
 Dateiname:  Grafik.jpg
 Dateigröße:  22.1 KB
 Heruntergeladen:  402 mal
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: 22.08.2013, 14:06     Titel:
  Antworten mit Zitat      
index und funktions argument sind 2 unterschiedliche dinge. ist am index 392 von lin auch der wert der höhe 392 gespeichert?
oder meinst du
Code:
druck =lin(alt==392)-lin(alt==400)
?
( das geht aber nur wenn der wert 392 auch genau vorkommt und nicht 392.1 oder so)
für nen polynom fit giebts übrigens schon den befehl
Code:

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
sweety2210
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 09.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2013, 12:45     Titel:
  Antworten mit Zitat      
Hey,

danke für die Antwort. Deine Methode ging zwar auch nicht, aber ich habe einen anderen primitiveren Weg gefunden.
Danke dir. Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Kascho
Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 23.08.2013, 12:53     Titel:
  Antworten mit Zitat      
Hey sweety, es wäre schön wenn du deine Lösung auch posten könntest, damit anderen mit nem ähnlichem Problem geholfen werden kann Smile

Danke und Gruß, Kascho
Private Nachricht senden Benutzer-Profile anzeigen
 
sweety2210
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 09.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2013, 13:06     Titel:
  Antworten mit Zitat      
Ah, ok. Kein Problem. Also ich hab jetzt rausgefunden, dass a(2) meine Steigung und a(1) mein Achsenabschnitt ist. Dann hab ichs einfach anstatt lin(400) oder ähnliches einfach gleich 400 geschrieben (s. Zeile 3). Das ging dann so.

Code:

a = mypolyfit(alt, p_s, 1);
linreg = a(2)*alt+a(1);
Druckdifferenz=(a(2)*400+a(1))-(a(2)*392+a(1));
 


Und um lin(0) rauszubekommen, habe ich einfach alt=0 gesetzt, also:

Code:

p_0 = a(2)*0+a(1);
 


Ist ja eigentlich logisch...-.-...naja...ich komme da meistens drauf, wenn ich den Thread schon abgeschickt hab. Embarassed
Hoffe das hilft den anderen.
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 - 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.