Mo Logo [Home] [Lexikon] [Aufgaben] [Tests] [Kurse] [Begleitmaterial] [Hinweise] [Mitwirkende] [Publikationen]

Mathematik-Online-Lexikon:

Funktion zur Berechnung einer Ausgleichsgeraden


A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Übersicht

Funktion zur Berechnung der Koeffizienten $ m$, $ c$ der Ausgleichsgeraden $ y=mx+c$ für die Punkte $ P_i=(x_i,y_i)$, $ i\in\{1,\dots,n\}$:

  function [m,c]=ausgleichsgerade(X,Y)
  %AUSGLEICHSGERADE  Berechnung einer Ausgleichsgeraden
  % 
  % Input : X,Y  Vektoren mit Messpunktdaten
  % Output: m,c  Koeffizienten der Ausgleichsgeraden

  % Ausgleichsgerade berechnen
  K=[X(:),ones(length(X),1)]\Y(:);
  m=K(1);
  c=K(2);
  
  % Ausgleichsgerade visualisieren
  figure
  plot(X,Y,'ro')
  hold on
  plotx=[min(X),max(X)];
  plot(plotx,m*plotx+c);
  title(sprintf('y=%gx+%g',m,c))
  box on

Aufrufvarianten für die in der Datei ausgleichsgerade.m gespeicherte Funktion:

  >> X=rand(1,10);
  >> Y=rand(1,10);
  >> [m,c]=ausgleichsgerade(X,Y)
  m =
     -0.0759
  c =
      0.5486
  
  >> ausgleichsgerade(rand(10,1),rand(10,1))
  ans =
     -0.1366

Darstellung der Kommentare im Funktionskopf mittels lookfor und help:

  >> lookfor Ausgleichsgerade
  AUSGLEICHSGERADE  Berechnung einer Ausgleichsgeraden

  >> help ausgleichsgerade
   AUSGLEICHSGERADE  Berechnung einer Ausgleichsgeraden
  
    Input : X,Y  Vektoren mit Messpunktdaten
    Output: m,c  Koeffizienten der Ausgleichsgeraden

Wiederkehrenden Aufgaben innerhalb einer Funktion können in lokale Funktionen ausgelagert werden. Dieses Konzept kann auch zur besseren Strukturierung der Teilaufgaben verwendet werden. Zu beachten ist jedoch der Mehraufwand bedingt durch das Kopieren der Parameter beim Aufruf lokaler Funktionen.

Beispiel einer (nicht besonders sinnvollen) Strukturierung mittels lokaler Funktionen:

  function [m,c]=ausgleichsgerade(X,Y)
  %AUSGLEICHSGERADE  Berechnung einer Ausgleichsgeraden
  % 
  % Input : X,Y  Vektoren mit Messpunktdaten
  % Output: m,c  Koeffizienten der Ausgleichsgeraden

  [m,c]=ag_berechnen(X,Y);
  ag_visualisieren(X,Y,m,c);


  % lokale Funktion zum Berechnen der Ausgleichsgeraden
  function [m,c]=ag_berechnen(X,Y)
  K=[X(:),ones(length(X),1)]\Y(:);
  m=K(1);
  c=K(2);
  
  % lokale Funktion zur Visualisierung der Ausgleichsgeraden
  function ag_visualisieren(X,Y,m,c);
  figure
  plot(X,Y,'ro')
  hold on
  plotx=[min(X),max(X)];
  plot(plotx,m*plotx+c);
  title(sprintf('y=%gx+%g',m,c))
  box on

(Autoren: Hörner/Wipper)

[Verweise]

  automatisch erstellt am 12.  1. 2007