21
Mathematik III Angewandte Informatik (B) Beleg zum Vortrag Nr. 15 Polynomberechnung und grafische Darstellung von beliebigen Funktionen in Octave erstellt von: Felix Paetow (538540) Anett Raak (539745) eingereicht bei Fr. Petra Schumann am 19.06.2014

Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

Mathematik III Angewandte Informatik (B)

Beleg zum Vortrag Nr. 15

Polynomberechnung und grafische Darstellung von beliebigen Funktionen

in Octave

erstellt von:

Felix Paetow (538540)

Anett Raak (539745)

eingereicht bei Fr. Petra Schumann

am 19.06.2014

Page 2: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

1

Inhaltsverzeichnis Einleitung ................................................................................................................................................. 2

Anmerkung zur verwendeten Version ................................................................................................ 2

1. Defintion: Polynome ............................................................................................................................ 3

1.1 Was sind Polynome? ..................................................................................................................... 3

1.2 Nullstellen einer Polynomfunktion ................................................................................................ 5

1.2.1 Horner-Schema ....................................................................................................................... 5

1.3 Minima / Maxima .......................................................................................................................... 6

2. Polynome in Octave............................................................................................................................. 8

2.1 Erstellen von Polynomen ............................................................................................................... 8

2.2 Ermitteln der Nullstellen, Minima und Maxima ........................................................................... 8

3. Darstellung von Polynomen ................................................................................................................ 9

3.1 Polynome grafisch darstellen ........................................................................................................ 9

3.2 Nullstellen anzeigen ...................................................................................................................... 9

3.3 Mehrere Graphen darstellen ....................................................................................................... 10

3.4 Darstellung eines Graphen verändern ........................................................................................ 11

3.4.1 grid ........................................................................................................................................ 11

3.4.2 Parameter bei plot() ............................................................................................................. 12

3.4.3 bestimmten Wertebereich anzeigen .................................................................................... 13

3.5 Beschriftung................................................................................................................................. 13

3.6 Legende ....................................................................................................................................... 15

4. Funktionen ......................................................................................................................................... 16

5. Speichern von Grafiken ..................................................................................................................... 16

6. Anhänge: Lösungen der abgebildeten Grafiken in QTOctave ........................................................... 17

7. Aufgaben zum Wiederholen und Üben ............................................................................................. 18

8. Lösungen für die Aufgaben ............................................................................................................... 19

Page 3: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

2

Einleitung

Das Ziel dieses Dokuments ist es dir die Grundlagen zu vermitteln, wie du ein Polynom erstellen, berechnen und darstellen kannst und dir somit eine Menge Handarbeit sparst. Im Gegensatz zu online Mathematik Angeboten wie WolframAlpha hast du hier noch zusätzlich die Möglichkeit, die Gestaltung der Grafiken frei zu bestimmen. Getreu dem Motto:

Die Gedanken sind frei!

Anmerkung zur verwendeten Version

In dieser Anleitung wurde die Version 0.10.1 verwendet. Ein komplettes Nachschlagewerk ist unter http://en.wikibooks.org/wiki/Octave_Programming_Tutorial zu finden.

Welches Wissen vermittelt werden soll

Berechnung von Polynomen Darstellung von Grafiken Ausgestaltung von Grafiken Definition von Funktionen

Lernziele

Polynome erstellen Auffinden der Nullstellen Auffinden der Minima/Maxima des Polynoms Zeichnen von Polynomen in einem bestimmten Intervall Beschriftung von Grafiken Farbliche Hervorhebung der Graphen Definition von Achsenpostionen und Bezeichnungen Erstellen einer Legende eigene Funktionen erstellen Grafiken exportieren

Page 4: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

3

1. Defintion: Polynome

1.1 Was sind Polynome?

Polynomfunktionen (Abk.: Polynome) oder ganzrationale Funktionen sind die Summe von Potenzfunktionen mit natürlichen Exponenten. Das bedeutet also im Klartext, dass Polynome aus mehreren Potenzfunktionen bestehen. Zur Erinnerung: Die Funktionsgleichung einer Potenzfunktion hat folgende Form: �(�) = ��� Beispiele: Polynom 0. Grades: (Konstante Funktion) y = 2 Polynom 1. Grades: (Lineare Funktion) y = 10x + 1

Page 5: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

4

Polynom 2. Grades: (Quadratische Funktion) y = 7�� + 10� Polynom 3. Grades: (Kubische Funktion)

y = �� − 7�� + 10� Polynom 4. Grades:

y = �� + �� − 7�� + 10�

Page 6: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

Generell kann festgehalten Wobei gilt: ��ℝ und n �

1.2 Nullstellen einer Polynomfunktion

Es gilt der folgende Satz: Eine Polynomfunktion n

Das bedeutet, dass z.B. ein Polynom 4. Grades höchstens 4 Nullstellen

Berechnung

Es gibt mehrere Wege, um die Nullstellen eines Polynoms zu berechnen. Entweder sind die

Nullstellen direkt ersichtlich oder

zeigt:

�� − ��� + � kann durch ausklammern

Falls dies nicht zum Ergebnis führen sollte, kann die Polynomdivision oder das Horner

Schema angewendet werden, wobei das Horner

Polynomdivision darstellt und daher nur dieses anhand

1.2.1 Horner-Schema

Gegeben ist das folgende Polynom:

Die 1. Nullstelle muss durch probieren erraten oder durch Umformung erkannt werden.

Das Horner-Schema beginnt damit, dass man den ersten Koeffizienten einfach abschreibt

nämlich in die �� −Spalte (3. Zeile).

Es werden die Werte wie folgt in die Tabelle eingetragen:

�� = 0

Als Nächstes multiplizieren wir die erratene Nullstelle mit dem eben eingetragenen Wert und

addieren dazu die Zahl, die über diesem Wert steht.

Generell kann festgehalten werden:

�ℕ

1.2 Nullstellen einer Polynomfunktion

Es gilt der folgende Satz: Eine Polynomfunktion n-ten Grades hat maximal n ree

z.B. ein Polynom 4. Grades höchstens 4 Nullstellen haben kann

Es gibt mehrere Wege, um die Nullstellen eines Polynoms zu berechnen. Entweder sind die

Nullstellen direkt ersichtlich oder ein „x“ kann ausgeklammert werden, wie folgendes Beispiel

kann durch ausklammern zu � ∗ ��� − �� + �� umgeformt werden.

Falls dies nicht zum Ergebnis führen sollte, kann die Polynomdivision oder das Horner

Schema angewendet werden, wobei das Horner-Schema eine vereinfachte For

Polynomdivision darstellt und daher nur dieses anhand eines Beispiels dargestellt wird.

Gegeben ist das folgende Polynom: �� − 7�� + 10�

Die 1. Nullstelle muss durch probieren erraten oder durch Umformung erkannt werden.

�(0) = 1 ∗ 0� − 7 ∗ 0� + 10 ∗ 0 = 0

Schema beginnt damit, dass man den ersten Koeffizienten einfach abschreibt

Spalte (3. Zeile).

Es werden die Werte wie folgt in die Tabelle eingetragen:

�� �� �� �� 1 -7 10 0

1

Als Nächstes multiplizieren wir die erratene Nullstelle mit dem eben eingetragenen Wert und

addieren dazu die Zahl, die über diesem Wert steht.

0 ∗ 1 + (−7) = −7

5

ten Grades hat maximal n reelle Nullstellen.

haben kann.

Es gibt mehrere Wege, um die Nullstellen eines Polynoms zu berechnen. Entweder sind die

kann ausgeklammert werden, wie folgendes Beispiel

� umgeformt werden.

Falls dies nicht zum Ergebnis führen sollte, kann die Polynomdivision oder das Horner-

Schema eine vereinfachte Form der

dargestellt wird.

Die 1. Nullstelle muss durch probieren erraten oder durch Umformung erkannt werden.

Schema beginnt damit, dass man den ersten Koeffizienten einfach abschreibt -

Als Nächstes multiplizieren wir die erratene Nullstelle mit dem eben eingetragenen Wert und

Page 7: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

6

Das Ergebnis dieser Rechnung tragen wir in die �� −Spalte (3. Zeile) ein.

�� �� �� �� 1 -7 10 0

�� = 0 1 -7

Jetzt beginnt das Schema wieder von vorne: Wir multiplizieren die erratene Nullstelle mit

dem eben eingetragenen Wert und addieren dazu die Zahl, die über diesem Wert steht. Das

Ergebnis dieser Rechnung tragen wir in die �� −Spalte (3. Zeile) ein.

0 ∗ (−7) + 10 = 10

�� �� �� �� 1 -7 10 0

�� = 0 1 -7 10

Im letzten Durchgang überprüfen wir, ob ein Rest vorhanden ist: Wir multiplizieren die

erratene Nullstelle mit dem eben eingetragenen Wert und addieren dazu die Zahl, die über

diesem Wert steht.

0 ∗ 10+ 0 = 0

Das Ergebnis des Horner-Schemas entspricht dem Ergebnis der Polynomdivision und kann

ganz einfach in der dritten Zeile abgelesen werden.

�� − 7�� + 10� ∶ (� − 1) = �� − 7� + 10

Wenn das Polynom bis zum 2. Grad in dieser Weise berechnet wurde, können die restlichen

Nullstellen mittels p-q-Formel errechnet werden.

Das Horner-Schema kann auch rekursiv dargestellt werden:

�� − 7�� + 10� = ((� − 7) ∗ � + 10) ∗ �

Daraus lässt sich auch relativ schnell die Koeffizienten ableiten, indem man alle Klammern

schrittweise auf 0 setzt.

1.3 Minima / Maxima

Die Minima/Maxima ermittelt man am einfachsten, indem man die erste und zweite

Ableitung des Polynoms ermittelt und von der ersten die Nullstellen berechnet. Da die erste

Ableitung die Stärke der Änderungen in der Ausgangsformel darstellt, repräsentieren die

Nullstellen der ersten Ableitung die Minima/Maxima der Ausgangsformel.

Um zu klären, ob es sich wirklich um ein Minima oder Maxima handelt, müssen nun die

Nullstellen in die zweite Ableitung eingesetzt werden. Wenn das Ergebnis kleiner als 0 ist,

Page 8: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

7

handelt es sich bei der Stelle um ein Maxima, wenn sie größer ist als 0 um ein Minima. Wenn

sie gleich 0 ist, dann ist es doch kein Extremwert, sondern ein Sattelpunkt.

Beispiel: �(�) = �� − 7�� + 10�

1. Ableitung: � ʹ(�) = 3�� − 14� + 10

2. Ableitung: � ʹʹ(�) = 6� − 14

Nullstellen mittels p-q-Formel: �� =�

�+ �

��

� �� =

�−�

��

Überprüfung, ob es Minima und Maxima sind:

� ʹʹ �7

3+ �

19

3� = 6 ∗ �

7

3+ �

19

3� − 14 = −2√19< 0

Wir schließen daraus, dass dies das Maxima ist.

� ʹʹ �7

3−�

19

3� = 6 ∗ �

7

3− �

19

3� − 14 = −2√19> 0

Wir schließen daraus, dass dies das Minima ist.

Page 9: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

8

2. Polynome in Octave

2.1 Erstellen von Polynomen

Um ein Polynom grafisch darstellen zu können ist es erst einmal wichtig, dieses überhaupt

eingeben zu können. In QTOctave geschieht das recht simpel, wenn auch nicht gewohnt

offensichtlich, da die schreibweise gewöhnungsbedürftig ist.

Eine Polynomfunktion wie �(�) = �� − 7�� + 10� gibt man wie folgt ein:

>>p=[1 -7 10 0]

Die in den eckigen Klammern eingegeben Zahlen geben den Multiplikationsfaktor an, sprich z.B.−7 ∗ �^2 . Die Position der Zahl gibt an, wie hoch der Exponent für x sein soll. Dabei wird von rechts nach links aufsteigend gezählt, beginnend mit ��. Das heißt in unserem Beispiel, dass wir folgendes übergeben haben:

1 ∗ �� − 7 ∗ �� + 10 ∗ �� + 0 ∗ �� . Zum Verständnis von QTOctave ist anzumerken, dass es sich bei p um einen Zeilenvektor handelt. Will man also eine Polynomfunktion wie �(�) = �� − � eingeben, so muss man die nicht vorhandenen Exponenten durch eine Mulitplikation mit 0 hinzufügen:

�(�) = �^4 + 0�^3 + 0�^2 − �.

Dies wird wie folgt eingegeben:

>>p=[4 0 0 1]

Wenn du nicht willst, dass deine Polynomfunktion bei der Bestätigung der Enter-Taste sofort ausgegeben, sondern nur gespeichert wird, schließt du die Zeile mit einem Semikolon ab.

>>p=[4 0 0 1];

Somit ist dein Polynom im System gespeichert. 2.2 Ermitteln der Nullstellen, Minima und Maxima

Will man nun über sein Polynom etwas erfahren gibt ein Oqtave einige Werkzeuge an die

Hand. Die Nullstellen unseres Polynoms �(�) = �� − 7�� + 10� , das wir in

p=[1 -7 10 0] gespeichert haben, erhält man, indem man es der Funktion roots() übergibt und

die gewonnenen Werte in einer frei gewählten Variablen abspeichert:

>>x0=roots(p)

Die Variable x0 ist nun ein Vektor, der die x-Werte der Nullstellen enthält, in unserem Fall 0, 2 und 5. Du kannst dir die Werte im Octave-Terminal anzeigen lassen, wenn du wie in unserem Beispiel kein Semikolon hinter dem Aufruf verwendest. Wir werden dir nachher zeigen, wie du diese sauber mit in die Grafik einbauen kannst.

Page 10: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

9

3. Darstellung von Polynomen

3.1 Polynome grafisch darstellen

Um unser nun berechnetes Polynom darzustellen, müssen wir nicht mehr viel tun. Bis jetzt haben wir unser Polynom eingegeben und die Nullstellen berechnet. Nun wird es Zeit, es einmal grafisch auszugeben. Dies geschieht mit Hilfe der plot()-Funktion.

Zuerst nur das Polynom. Da ein Polynom i.d.R. unendlich ist, wollen wir es nur für einen

begrenzten Bereich ausgeben. Wir schränken den Bereich mit Hilfe eines weiteren Vektors

auf -1 bis 6 ein und gehen in 0,1 Schritten vor. Die Notation benutzt dabei eine

Kurzschreibweise, die den Vektor mit sämtlichen Werten in der passenden Schrittweite

befüllt. Dabei bedienen wir uns einer octave-internen Funktion, indem wir den Startwert -1,

die Schrittweite 0,1 und den Endwert 6 angeben und uns die Werte ausrechnen lassen.

Mithilfe von polyval() lassen wir für unseren gegebenen Wertebereich die Werte für unser

Polynom berechnen. Diese werden wiederum als Vektor in y gespeichert und bilden somit

die Grundlage für die Darstellung des Graphen.

>>p=[1 -7 10 0]; >>x=[-1:0.1:6]; >>y=polyval(p,x); >>plot(x, y)

3.2 Nullstellen anzeigen

Damit nun die oben ermittelten Werte für die Nullstellen nicht umsonst waren, sollen diese

natürlich auch in unserer Grafik angezeigt werden. Damit das auch korrekt von statten geht,

hier noch einmal die dazu benötigten Befehle:

>>p=[1 -7 10 0]; >>x=[-1:0.1:6];

>>y=polyval(p,x);

>>plot(x, y);

>>hold on;

>>x0=roots(p);

>>y1 = [0 0 0];

>>plot(x0, y1, 'ok');

>>hold off

Page 11: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

10

Die Aufrufe hold on/off sorgen dafür, dass die Werte in Form eines Graphen oder Punkte in einer einzigen Grafik gezeichnet werden. Wir kommen später drauf, was passiert, wenn man das hold weglässt. Man kann natürlich auch noch mehr Plots durchführen, falls man noch mehr einzeichnen will.

y1 dient einem ganz primitiven Zweck. Der Vektor beinhaltet nur die y-Werte für unsere

Nullstellen, was per Definition nur Null sein kann. Wichtig hierbei ist, dass genauso viele

Werte in dem Nullvektor existieren wie es Nullstellen gibt. So entgeht man möglichen

Fehlern bei der Darstellung oder Versionsdifferenzen von Octave. Der Zusatz 'ok' bei

plot(x0, y1, 'ok') ist für die Darstellung wichtig und wird in dem Kapitel 3.4 Darstellung eines

Graphen verändern näher erläutert.

Somit haben wir nun eine vollständige Darstellung der bisher ermittelten Werte.

3.3 Mehrere Graphen darstellen

Stellen wir uns vor, wir haben folgendes: >>p=[1 -7 10]; >>o=[2 3 1 0] >>x=[-1:0.1:6]; >>y=polyval(p,x); >>z=polyval(o,x);

Wenn wir jetzt die zwei Polynome nacheinander plotten würden, würde nur der letzte Graph

gezeichnet werden. Was tun? Wir haben 2 Möglichkeiten:

Zum einen können wir die beiden Polynome in einem Funktionsaufruf übergeben:

>>plot (x, y, x, z) Zum anderen können wir das Plotten durch die Befehle hold on und hold off pausieren und wieder aufnehmen, wie wir es bereits bei den Nullstellen gemacht haben, so dass wir zwei Grafiken übereinander zeichnen. >>plot (x,y); hold on;

>>plot (x,z); hold off;

Page 12: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

11

Es reicht auch ein einfaches hold, dabei wird bei jedem setzen zwischen hold on und hold off

gewechselt.

Es können Graphen auch in mehreren nebeneinander liegenden Grafiken dargestellt werden.

Dies ist besonders hilfreich, wenn es auf Grund der Anzahl der zu zeichnenden Graphen, zu

unübersichtlich in einer Grafik sein könnte. Mit subplot(r,c,i) wird ein Array definiert, das in r

Zeilen und c Spalten insgesamt r*c Graphen darstellen kann. Die nächste Grafikanweisung (in

unserem Fall plot(), stairs() und stem()) wird in das i-te Fenster geschrieben, wobei von links

nach rechts und von oben nach unten durchgezählt wird.

Noch einmal zur besseren Übersicht: subplot(r,c,i) r=max. Zeilenanzahl, c=max Spaltenanzahl, i=Position, an der der Graph angezeigt werden soll Beispiel: >>%normaler Graph mit plot()

>>subplot(1,3,1);

>>plot(x,y);

>>title('plot');

>>%Treppenkurve mit stairs

>>subplot(1,3,2);

>>stairs(x,y);

>>title('stairs');

>>%Samplekurve mit stem

>>subplot(1,3,3);

>>stem(x,y);

>>title('stem');

3.4 Darstellung eines Graphen verändern

Es gibt verschiedene Möglichkeiten unseren Graphen anders darzustellen. Wir stellen dir hier

einige Möglichkeiten vor.

3.4.1 grid

Es kann ein Liniengitter eingefügt werden, um die Übersichtlichkeit zu erhöhen. Dazu schreiben wir einfach nach dem plotten des Graphen grid >>p=[1 -7 10]; >>x=[-1:0.1:6]; >>y=polyval(p,x); >>plot(x, y);

>>grid

Page 13: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

12

3.4.2 Parameter bei plot()

Linientyp

Der Verlauf des Graphen muss nicht unbedingt als durchgezogene Linie dargestellt werden.

Wir können jedem Graphen Verlauf eine unterschiedliche Darstellung zuordnen. Hierbei ist

zu erwähnen, dass es bei der Darstellung auf das Betriebssystemen, unter dem Octave

ausgeführt wird, und die Version von Octave ankommt. Manche Befehle führen zu

unterschiedlichen Darstellungen des Graphen oder werden gar nicht ausgeführt.

plot (x,y,’-’) ist der Default-Wert, er kann auch genauso gut weggelassen werden.

plot (x,y,’--’) Verbindet die Messpunkte mit einer gestrichelten Linie

plot (x,y,’.') stellt die Messpunkte mit „.“-Symbolen dar plot (x,y,’.-’) wie „.“ , jedoch mit einer zusätzlichen Verbindung der Punkte der Linien plot (x,y,’^') stellt die Messpunkte als kleine Dreiecke dar plot (x,y,’+') stellt die Messpunkte mit „+“ Symbolen dar

in unserer Version von QTOctave wird @ ebenfalls als „+“ dargestellt plot (x,y,’-@') wie +, jedoch mit einer zusätzlichen Verbindung der Punkte der

Linien plot (x,y,’*') stellt die Messpunkte mit „*“ Symbolen dar plot (x,y,’o') stellt die Messpunkte mit „o“ Symbolen dar plot (x,y,’x') stellt die Messpunkte mit „x“ Symbolen dar plot (x,y,’*') stellt die Messpunkte mit „*“ Symbolen dar plot (x,y,’o') stellt die Messpunkte mit „o“ Symbolen dar plot (x,y,’x') stellt die Messpunkte mit „x“ Symbolen dar Linienfarbe Ebenso kann die Linienfarbe verändert werden plot (x,y,’n') Hier kann die Farbe beim plotten verändert werden, dabei muss für

„n“ eine Zahl zwischen 1 und 6 eingegeben werden. Dies kann auch mit der direkten Angabe der Farbe geschehen: plot (x,y,”r”) wobei “r” = rot ist weitere Farben sind: “g” = grün, “b” = blau, “m” = magenta, “c” = cyan, “k” = Schwarz und

“y” = gelb

Page 14: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

13

Natürlich können wir auch die Farbe und den Typen gleichzeitig übergeben:

plot (x,y,”or”) bedeutet, dass der Graph als Kreise in roter Farbe dargestellt wird.

Linienstärke

Die Linien- oder Symboldicke kann ebenfalls angepasst werden:

plot (x,y, „linewidth“, 5)

oder

set(gca, „linewidth“, 5) der Standardwert ist 1

3.4.3 bestimmten Wertebereich anzeigen

Wenn wir nicht den kompletten Graphen sehen möchten, sondern nur einen Ausschnitt,

kann das mit dem Befehl axis(x-min, x-max, y-min, y-max) verwirklicht werden. Dabei steht

das min und max jeweils für den x- bzw. y-Wert, der abgebildet werden soll.

3.5 Beschriftung

Es können verschiedene Beschriftungen in die Grafik eingebunden werden. Wir stellen dir die wichtigsten vor. Dabei werden die verschiedenen Funktionen einfach vor oder nach dem Plotten der Grafik eingesetzt. Wichtig ist hierbei, dass, wenn die Funktionen nach dem Plotten des Graphen gesetzt werden, ein replot notwendig ist, sonst werden die Änderungen nicht übernommen. Für die Beschriftung der Achsen kann die Funktion xlabel() bzw. ylabel() verwendet werden. >>xlabel („Zeit / sec“) >>ylabel („km“)

Page 15: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

14

Eine Überschrift der Grafik erzeugt man mit der Funktion title(). >>title („Geschwindigkeit“) Um dem Graphen selbst einen Namen zu geben, muss dieser mit Hilfe der Funktion text() vergeben werden: >>text(x-Position, y-Position , „Name“);

Beispiel: >>text(1,-10,"Polynom");

Man kann man, wie fast alles, diese Werte auch über set setzen. Dabei erfolgt dies immer nach dem gleichen Schema set(gca, „Funktion“, Wert). Für die oben genannten Funktionen würde es wie folgt aussehen: >>set(gca, „xlabel“, text(„string“, „x-Achse“, “fontsize”, 25)) Dabei wurde die Schriftgröße mit fontsize() zusätzlich verändert. Es können auch mehrere Einstellungen übergeben werden: >>set(gca, „xlabel“, text(„string“, „x-Achse“, “fontsize”, 25), “ylabel”, text(“string”, “y-Achse”)) In der Grafik kann zusätzlich eine Linie eingezeichnet werden, um z.B. einen Text einem Graphen visuell eindeutig zuzuordnen. >>line([Startpunkt y,x] , [Endpunkt y,x]); Beispiel: >>line([0 1], [1 -10]);

Page 16: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

15

3.6 Legende

Legenden können sehr hilfreich zur Orientierung und Übersichtlichkeit sein und werden mit legend() an die Grafik übergeben. Sie sollten immer oder zumindest ab 3 Graphen verwendet werden. Hierfür müssen wir der Legende eine Variable zuordnen: >>h = legend ('Graph 1', 'Graph 2'); Es sollten alle geplotteten Graphen enthalten sein. Andersherum können auch noch nicht existierende Graphen benannt werden. Sie erscheinen einfach erst in der Legende, wenn sie geplottet sind. Die Default-Position der Legende ist rechts oben innerhalb der Grafik. Weitere Positionen sind: north zentriert oben south zentriert unten east zentriert rechts west zentriert links northeast rechts oben (standard) southeast rechts unten northwest links oben southwest links unten und werden wie folgt übergeben: >>legend location north Soll die Legende außerhalb der Grafik angezeigt werden, ist folgende Positionsangabe nötig: >>legend location northeastoutside

Wird als Graphenbezeichnung eine Formel wie z.B. 2�� verwendet, muss diese so eingegeben werden, dass das System es richtig interpretieren kann. Diese würde sonst beim Plotten falsch dargestellt werden. Tippen müsste es man wie folgt: h = legend („f(x) = 2x^ 2', 'g(x)= 3x^ 3 + 2x^ 2“)

Page 17: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

16

4. Funktionen

Funktionen werden wie Skripte in einer m-Datei gespeichert und analog dazu aufgerufen. Jedoch kann man Funktionen zusätzlich noch Parameter übergeben und die zurück gegebenen Werte auffassen. Eine Funktion schreibst du in einer seperaten Datei wie folgt:

>>function[Ausgabeparameter]= nameDerFunction(Eingabeparameter) ---Dinge die zu tun sind----- >>end

Beispiel:

>>function y = meinefunktion (x) >>y = cos(x/2)+x; >>end

Dabei ist es auch legitim, wenn man mehrere Übergabe- und mehrere Rückgabewerte definiert:

>>function [out1,out2] = meinezweitefunktion (x) >>out1 = x^2; >>out2 = out1*x; >>end

Selbstredend ist es auch erlaubt, Plots über Funktionen laufen zu lassen, denn mal ehrlich: man wird Informatiker oder Mathematiker um sich die Welt leichter zu machen. Hier zwei Beispiele für Plot Funktionen:

Beispiel: Datei beispielPlot.m

>>function beispielPlot(p) >> x=[-1:0.1:6]; >> y=polyval(p,x); >> plot(x,y); >>endfunction

Aufruf in der Konsole: beispielPlot([1 -7 10]) Wichtig ist noch, dass du dir keine Sorgen machen musst, ob deine schon benutzten Variablen überschrieben werden. Die Variablen innerhalb der Funktion sind lokal, d.h. dass Sie nur innerhalb der Funktion gültig sind und absolut keinen Einfluss auf andere Funktionen haben.

Beachte jedoch, dass dies nur für Funktionen gilt. Variablen in Script-Dateien außerhalb einer

Funktion sind sehr wohl global, sprich überall, gültig. Solltest du also irgendwo in deiner

meinefunktion.m-Datei einen Wert außerhalb einer Funktion definiert haben, könnte er eine

gleichnamige Variable überschreiben.

5. Speichern von Grafiken Unsere Grafiken können auch direkt als Datei mit Hilfe des Befehls print() gespeichert werden.

>>print ('multigraph.jpg');

Es kann unter anderem in den Formaten png, jpg, pdf und gif gespeichert werden.

Page 18: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

17

6. Anhänge: Lösungen der abgebildeten Grafiken in QTOctave

Hier sollen die Grafiken für QTOctvae aufgeschlüsselt, wenn nicht bereits oben geschehen:

Abbildung Seite 13: unterschiedlich farbige und stilistische Graphen

>>p=[1 -7 10 0];

>>o=[2 3 1 400];

>>q=[4 1 0 50];

>>r=[1 1 1 50];

>>>>s=[-1 1 1 200];

>>x=[-1:0.1:6];

>>y=polyval(p,x);

>>z=polyval(o,x);

>>a=polyval(q,x);

>>b=polyval(r,x);

>>c=polyval(s,x);

>>plot (x, y, "or", "linewidth", 2, x, z, "xg", x, a, ".k", x, b, "linewidth", 3, x, c, "c");

>>set (gca, "xaxislocation", "zero"); %center grid on zero x axes

>>set (gca, "yaxislocation", "zero"); %center grid on zero y axes

replot

Abbildung Seite 14/15: Beschriftung und Legende

>>p=[1 -7 10 0];

>>q=[4 1 0 50];

>>y=polyval(p,x);

>>a=polyval(q,x);

>>plot (x, y, x, a, ".k");

>>xlabel("x-Achse");

>>ylabel("y-Achse");

>>set (gca, "xaxislocation", "zero");

>>set (gca, "yaxislocation", "zero");

>>title("Multiple Graph");

>>axis([-1 6 -40 200]);

>>line([1 1], [55 80]);

>>text(0.75, 86, "Graph 1");

>>line([1.5 2.5], [5 20]);

>>text(2.6, 20, "Graph 2");

>>h = legend ('1. Graph', '2. Graph');

>>legend location southeastoutside;

>>replot

Page 19: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

18

7. Aufgaben zum Wiederholen und Üben

Die Lösungen für die Aufgaben sind auf der nächsten Seite.

1. Stelle folgende Polynome im Intervall [-2,5]mit der Schrittweite 0,5 grafisch dar.

a) 2�� + 12� + 1 b) �� + �� − 2� c) 3�� + 2�

d) �� + 2�� + 5� + 2

Tipp: Die Schrittweite wird wie ein Polynom dargestellt, allerdings werden die Werte mit einem

Komma getrennt.

2. Stelle die folgenden Polynome zusammen in einer Grafik dar.

a) � = 3�� + 5� + 1, � = �� + 2�� + �� + 0,5

b) � = 2�� + 10� + 5, � = 3�� + 2�� + 6

c) � = 2�� + 5�� + 3� + 2, � = 5�� + 2�� + 4�

Tipp: Der Befehl hold in/off ist hier von großem Nutzen.

3. Stelle die oben erstellten Graphen wie folgt dar.

a) als kleine Dreiecke, Linienfarbe rot

b) mit *-Symbolen, Linienfarbe grün, Liniendicke 3

c) im Wertebereich x [-5,10], y [-2,10]

d) Beschriftung der Achsen

e) Beschriftung des/der Graphen

f) eine Legende der Graphen rechts außerhalb der Grafik

Tipp: Die Werte werden beim Plotten übergeben.

4. Erstelle eine eigene Funktion zum Plotten einer Grafik.

Tipp: Funktionen starten mit function() und schließen mit endfunction.

Page 20: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

19

8. Lösungen für die Aufgaben

1.

2.

a) 2�� + 12� + 1

>> p=[2 12 1];

>>x=[-2:0.5:5];

>>y=polyval(p,x);

>>plot(x,y);

b) �� + �� − 2�

>> p=[1 1 -2 0];

>>x=[-2:0.5:5];

>>y=polyval(p,x);

>>plot(x,y);

c) 3�� + 2�

>> p=[3 0 2 0];

>>x=[-2:0.5:5];

>>y=polyval(p,x);

>>plot(x,y);

d) �� + 2�� + 5� + 2

>> p=[1 0 2 5 2];

>>x=[-2:0.5:5];

>>y=polyval(p,x);

>>plot(x,y);

a) � = 3�� + 5� + 1, � = �� + 2�� + �� + 0,5

>> p=[3 5 1];

>> q=[1 2 1 0.5];

>>x=[-2:0.5:5];

>>y=polyval(p,x);

>>z=polyval(q,x);

>>plot(x,y); hold on;

>>plot(x,z); hold off;

oder

>>plot (x, y, x, z);

b) � = 2�� + 10� + 5, � = 3�� + 2�� + 6

>> p=[2 0 10 5];

>> q=[3 2 0 6];

>>x=[-2:0.5:5];

>>y=polyval(p,x);

>>z=polyval(q,x);

>>plot(x,y); hold on;

>>plot(x,z); hold off;

oder

>>plot (x, y, x, z);

Page 21: Polynomberechnung und grafische Darstellung von beliebigen ...people.f4.htw-berlin.de/people/petra/mathe/Octave_E_Book/9_1... · Wenn wir jetzt die zwei Polynome nacheinander plotten

20

3. a) plot (x,y,’^r')

b) plot (x,y,’*g', „linewidth“, 3)

c) axis(-5, 10, -2, 10)

d) >>xlabel („x-Achse“); ylabel („y-Achse“) e) >>text(1,1, „Graph f(x)“);

f) >>h = legend ('Graph f(x)', 'Graph g(x)'); legend location eastoutside;

4. >>function beispielPlot(p) >> x=[-1:0.1:6]; >> y=polyval(p,x); >> plot(x,y); >>endfunction

Speichern unter: beispielPlot.m

Aufruf in der Konsole: beispielPlot([1 -7 10])

c) � = 2�� + 5�� + 3� + 2, � = 5�� + 2�� + 4�

>> p=[2 0 5 3 2];

>> q=[5 2 4 0];

>>x=[-2:0.5:5];

>>y=polyval(p,x);

>>z=polyval(q,x);

>>plot(x,y); hold on;

>>plot(x,z); hold off;

oder

>>plot (x, y, x, z);