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

Kreis Interpolation Programm Verständnis

 

Lucifer
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2018, 16:07     Titel: Kreis Interpolation Programm Verständnis
  Antworten mit Zitat      
Liebes Matlab-Forum und Programmierprofis,
im Laufen dieses Semesters habe ich in einem Fach die Aufgabe bekommen in Matlab ein Programm zu schreiben in dem geeignete Wertepaare so interpoliert werden das ein Kreis entsteht. Shocked
Da ich ein Grünschnabel in Matlab bin und meine Programmierkenntnisse auch recht zu wünschen lassen habe ich mir übers Internet und Fachliteratur das Wissen zusammen gesammelt um erstmal zu verstehen wie ich an die Aufgabe heran gehen muss.
Dabei bin ich auf der Seite MathWorks auf die Lösung meines Problems gestoßen.
Eigentlich wäre meine Programmier Odyssey hier zu Ende, dennoch möchte ich verstehen wie das Programm als auch die sich darin befindenden Funktionen funktioniere. Denn ich möchte etwas selbstständig erschaffen und keine Arbeit aller "zu-Guttenberg" abgeben. Wink Very Happy

Link: https://de.mathworks.com/help/matlab/ref/spline.html
Code:

x = pi*[0:.5:2];
y = [0  1  0 -1  0  1  0;
     1  0  1  0 -1  0  1];
pp = spline(x,y);
yy = ppval(pp, linspace(0,2*pi,101));
plot(yy(1,:),yy(2,:),'-b',y(1,2:5),y(2,2:5),'or')
axis equal
 


Soweit ich bis jetzt über das Forum und einer ausgiebigen Internetrecherche in Erfahrung bringen konnte, dient der spline zur Interpolation von Werten zwischen x und y. Der linespace generiert ein Feld mit 101 Elementen von 0 bis 2pi.
Die 2*pi sind wahrscheinlich die Berechnung des Umfangs damit das Programm die "Länge" der erzeugten Funktion kennt.
Ich verstehe letzten Endes die Funktion des ppval nicht und warum die y Werte die von -1 über 0 bis hin zur 1 reichen.

Ich weiß das ist ein langer Beitrag und bedanke mich schon mal vorab dass Sie sich die Zeit genommen haben diesen durchzulesen.

Über gute Antworten und lehrreiche Tipps von Ihrer Seite würde ich mich außerordentlich freuen.

Liebe Grüße
Lucifer Very Happy
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.06.2018, 14:11     Titel: Re: Kreis Interpolation Programm Verständnis
  Antworten mit Zitat      
Hallo Lucifer,

Ein Spline ist ein stückchenweise definiertes kubisches Polynom mit stetiger erster und zweiter Ableitung an den Schnittpunkten. In anderen Worten: Es sind Abschnitte mit den Gleichungen y = a + b*x + c*x^2 + d*x^3, und zwischen den Abschnitten sind keine Knicke.
Physikalisch gesehen ist das der Verlauf eines beliebig elastischen Stabes, den man an den Positionen der Stützstellen festhält.

Für die Kreis werden 6 Punkte verwendet. Das ist eine der vielen Möglichkeiten. Man hätte auch andere Punkte wählen können.
"x" und "y" könnten verwirrend sein. Ich denke es ist klarer, wenn Du stattdessen "t" und "pos" als Namen verwendest, obgleich die Namen der Variablen ja eigentlich völlig egal sind. Zum "Zeitpunkt" t wird der Punkt "pos" erreicht. Man erzeugt dann einen Spline, der durch diese Punkt läuft. Die "Zeit" läuft dann von von 0 bis 2*pi, also bis der Kreis einmal geschlossen ist.

ppval wertet dann das Polynom an 101 Stellen aus. Nimm mal 12 Punkte stattdessen und '+b' statt '-b', dann wird es eventuell sichtbarer, was geschieht.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Lucifer
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2018, 14:55     Titel: Großes Dankeschön
  Antworten mit Zitat      
Lieber Jan,
Vielen Vielen Dank für deine schnelle Antwort und die Aufklärung des Programms.
Ich werde deinen Ratschlag direkt anwenden, dann sollten die letzten Zweifel verflogen sein.
Nochmals vielen lieben Dank und ein schönes Wochenende.

Liebe Grüße Lucifer
Private Nachricht senden Benutzer-Profile anzeigen
 
Lucifer
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2018, 16:57     Titel: Wozu wird die Funktion zweimal geplotet ?
  Antworten mit Zitat      
Jan's Ratschlag habe ich befolgt, wodurch ich das Programm nun besser verstehen kann.
Ich habe aus Interesse auch mit dem plot der Funktion rumgespielt, wobei mir eine grundlegende Frage aufgekommen ist.
Warum wird die Funktion zweimal geplotet ? Embarassed
Darüber hinaus verstehe ich den Sinn der dahinter stehenden ":" nicht ?
Das der erste Wert in der Klammer hinter dem "yy" die Verschiebung auf der x-Achse entspricht konnte ich aus meinen Programmierexperimenten entnehmen.
Code:

plot(yy(1,:),yy(2,:),'+b',y(1,2:5),y(2,2:5),'or')
 

Über einen weiteren kleinen Schubs in die richtige Richtung würde ich mich sehr freuen.

Liebe Grüße
Lucifer
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.06.2018, 23:23     Titel: Re: Wozu wird die Funktion zweimal geplotet ?
  Antworten mit Zitat      
Hallo Lucifer,

Der Doppelpunkt wird zum Indizieren verwendet. Da es sich hier um ganz grundlegende Begriffe handelt, die zur Verwendung von Matlab unbedingt klar sein müssen, empfehle ich dringend das Lesen der Dokumentation, insbesondere der "Getting Started" Kapitel. Auch Matlab's Onramp https://matlabacademy.mathworks.com/ kann ich wärmstens anraten.

Das ist effizienter, als die Fragen nach den Basics im Forum zu klären.

Gruß, Jan
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.