Wikibooks dewikibooks https://de.wikibooks.org/wiki/Hauptseite MediaWiki 1.47.0-wmf.20 first-letter Medium Spezial Diskussion Benutzer Benutzer Diskussion Wikibooks Wikibooks Diskussion Datei Datei Diskussion MediaWiki MediaWiki Diskussion Vorlage Vorlage Diskussion Hilfe Hilfe Diskussion Kategorie Kategorie Diskussion Regal Regal Diskussion TimedText TimedText talk Modul Modul Diskussion Veranstaltung Veranstaltung Diskussion A Poem a Day – Gedichte zum Auswendiglernen 0 22256 1091091 1091073 2026-09-19T15:24:58Z Mjchael 2222 /* September */ + 1091091 wikitext text/x-wiki {{Regal|Literatur}} == Zusammenfassung des Projekts == * '''Buchpatenschaft/Ansprechperson:''' Zur Zeit niemand. Buch darf übernommen werden. * '''Sind Co-Autoren gegenwärtig erwünscht?''' Ja, sehr gerne. <!-- Für welche Leute soll das Buch geschrieben werden? --> * '''Zielgruppe:''' # Alle Menschen, die gerne Gedichte aus den Sprachen Deutsch und Englisch auswendig lernen möchten und dazu auch eine kurze Information zum Dichter und zur Kulturepoche haben möchten. # Alle Menschen, die gerne ein persönliches Statement zu einem ihrer Lieblingsgedichte verfassen möchten und sich so an dem Projekt beteiligen möchten. # Wie kann man sich beteiligen: Ganz einfach: Datum aussuchen, Gedicht (oder auch ein Zitat aus einem Gedicht) einfügen und ein persönliches Statement verfassen. Bitte keine Daten überschreiben! Wer zuerst kommt, mahlt zuerst. Oder natürlich auch das Vorwort & das Kapitel "auswendig lernen lernen" bearbeiten. <!-- Was soll alles in das Buch rein, was nicht? --> * '''Projektumfang:''' Kurzformel: 365 & 1(Schaltjahr :-) Gedichte & 1 persönliches Statement von einem (oder mehreren Menschen z.B.: Schulklassen), 1 Kapitel "Wie soll ich auswendig lernen lernen?", Vorwort: Wozu soll ich Gedichte auswendig lernen? * Neben persönlichen subjektiven Statements könnten sich ohne weiteres ganze Klassen an der Analyse und Interpretation eines Gedichtes beteiligen, und die Ergebnisse beispielhaft hier abdrucken. Entweder als die beste Interpretation einer Klasse (Wettbewerb) oder als eine Gemeinschaftsproduktion. In der Form **A Poem a Day/ 30.Februar: Das Gedicht vom Gedicht /Interpretation 1... Dabei sollte die Ausführung etwas ausführlicher und für interessierte Laien in einer allgemein verständlichen Form erklärt werden. * '''Einschränkung:''' Reine Gedichtesammlungen sind auf Wikibooks nicht zulässig, aber ein Lehrbuch über Gedichte mit Analysen, Vergleichen und Beispielen (diese mindestens mit persönlichem Statement) ist möglich. == Status == * 20 Gedichte von 365 [[Bild:1von10.png]] (5.5%) * 4 Beiträge/Kommentare/Statements von 365, die länger als nur ein Satz sind [[Bild:0von10.png]] (1,1%) ==A Poem a Day: Vorwort: Wozu soll ich Gedichte auswendig lernen?== Sogar ein kurzes Gedicht kann mehr als tausend Worte sagen. Als Ausdruck von Gedanken und Gefühlen sind Gedichte ein guter Weg die Grenzen zwischen emotionaler und rationaler Wahrnehmung aufzuheben. Sie auswendig zu lernen und zu rezitieren kann die in ihnen enthaltene Welt von Empfindungen in einem selbst lebendig werden lassen und mag zum Selbstverfassen von Gedichten anregen und so einen neuen Weg der Selbsterkenntnis eröffnen. ==A Poem a Day: 365 & 1 Gedichte== Jeweils 1 Gedicht & 1 persönliches Statement & 1 Kommentar oder 1 Interpretation oder 1 historischen Rückblick oder 1 Formale Analyse. === Januar === * [[A Poem a Day/ 01. Januar: Merseburgerzaubersprüche (Volksweise)|01. Januar: Merseburger Zaubersprüche I (Volksweise)]] * [[A Poem a Day/ 02. Januar: Merseburgerzaubersprüche II (Volksweise)|02. Januar: Merseburger Zaubersprüche II (Volksweise)]] === Februar === * [[A Poem a Day/ 05. Februar: Liebeserklärung an Mutter Erde|05. Februar: Liebeserklärung an Mutter Erde]] === März === * [[A Poem a Day/ 01. März: Vom Eise befreit (Johann Wolfgang von Goethe)|01. März: Vom Eise befreit (Johann Wolfgang von Goethe)]] === April === === Mai === * [[A Poem a Day/ 02. Mai: Komm lieber Mai und mache (Christian Adolph Overbeck)|02.Mai: Komm lieber Mai und mache (Christian Adolph Overbeck)]] * [[A Poem a Day/ 27. Mai: Nicht immer war ich schon so alt (Heinz Ehrhardt)|27.Mai: Nicht immer war ich schon so alt (Heinz Ehrhardt)]] === Juli === * [[A Poem a Day/ 07. Juli: Der römische Brunnen (Conrad Ferdinand Meyer)|07. Juli: Der römische Brunnen (Conrad Ferdinand Meyer)]] === August === * [[A Poem a Day/ 01. August: Überall (Joachim Ringelnatz)|01. August: Überall (Joachim Ringelnatz)]] * [[A Poem a Day/ 08. August: Kriegslied (Mathias Claudius)|08. August: Kriegslied (Mathias Claudius)]] === September === * [[A Poem a Day/ 1. September: Der Zauberlehrling (Johann Wolfgang von Goethe)|1. September: Der Zauberlehrling (Johann Wolfgang von Goethe)]] * [[A Poem a Day/ 2. September: Vergänglichkeit der Schönheit (Christian Hoffmann von Hoffmannswaldau)|2. September: Vergänglichkeit der Schönheit (Christian Hoffmann von Hoffmannswaldau)]] * [[A Poem a Day/ 3. September: Septembermorgen (Eduard Mörike)|3. September: Septembermorgen (Eduard Mörike)]] * [[A Poem a Day/ 9. September: Ginkgo Biloba (Johann Wolfgang von Goethe)|9. September: Ginkgo Biloba (Johann Wolfgang von Goethe)]] * [[A Poem a Day/ 17. September: The Charge of the Light Brigade (Alfred Lord Tennyson)|17. September: The Charge of the Light Brigade (Alfred Lord Tennyson)]] * [A Poem a Day/ 26. September: Herbst (R.M. Rilke)|22. September: Herbst (R.M. Rilke)]] * [[A Poem a Day/ 26. September: Der Panther (R.M. Rilke)|26. September: Der Panther (R.M. Rilke)]] === Oktober === * [[A Poem a Day/ 2. Oktober: Herr von Ribbeck auf Ribbeck im Havelland (Theodor Fontane)| 2. Oktober: Herr von Ribbeck auf Ribbeck im Havelland (Theodor Fontane)]] * [[A Poem a Day/ 7. Oktober: Baum im Herbst (Hermann Hesse)| 7. Oktober: Baum im Herbst (Hermann Hesse)]] * [[A Poem a Day/ 11. Oktober: Herbsttag (R.M. Rilke)|11. Oktober: Herbsttag (R.M. Rilke)]] * [[A Poem a Day/ 12. Oktober: Herbstbild (Friedrich Hebbel)|12. Oktober: Herbstbild (Friedrich Hebbel)]] * [[A Poem a Day/ 13. Oktober: Blätter (R.M. Rilke)|13. Oktober: Blätter (R.M. Rilke)]] * [[A Poem a Day/ 25. Oktober: Mondnacht (Joseph von Eichendorff)|25. Oktober: Mondnacht (Joseph von Eichendorff)]] * [[A Poem a Day/ 30.Oktober: Des Pfarrers Tochter von Taubenhain|30.Oktober: Des Pfarrers Tochter von Taubenhain (Gottfried August Bürger)]] === November === * [[A Poem a Day/ 1. November: Herbst (Theodor Storm)|1. November: Herbst (Theodor Storm)]] * [[A Poem a Day/ 8. November: Septembermorgen (Eduard Möricke)|8. November: Septembermorgen (Eduard Möricke)]] * [[A Poem a Day/ 14. November: Der Erlkönig (Johann Wolfgang von Goethe)|14. November: Der Erlkönig (Johann Wolfgang von Goethe)]] * [[A Poem a Day/ 20. November: Schlesischen Weber (Heinrich Heine)|20. November: Schlesischen Weber (Heinrich Heine)]] === Dezember === * [[A Poem a Day/ 01. Dezember: Der Winter ist ein rechter Mann (Matthias Claudius)|01.Dezember: Der Winter ist ein rechter Mann (Matthias Claudius)]] * [[A Poem a Day/ 02. Dezember : Schenken (Joachim Ringelnatz)| 02. Dezember: Schenken (Joachim Ringelnatz)]] * [[A Poem a Day/ 21. Dezember : Es gibt so wunderweiße Nächte (Rainer Maria Rilke)| 21. Dezember: Es gibt so wunderweiße Nächte (Rainer Maria Rilke)]] * [[A Poem a Day/ 30. Dezember: Winternacht (Joseph von Eichendorff)|30. Dezember : Winternacht (Joseph von Eichendorff)]] ==A Poem a Day: Wie soll ich auswendig lernen lernen? Tipps und Tricks== === Tipp 1 === Das Gedicht sollte dir gefallen. Gedichte auswendig zu lernen, nur weil man es muss, ist eine geeignete Methode einem den Geschmack an Lyrik zu verderben. Eigentümlicherweise sind dieselben Kinder und Jugendliche oft in der Lage, eine komplette Folge von Liedern fast auswendig mitzusingen, ohne dass sie sich wirklich dafür angestrengt haben. Was einem gefällt, das lernt sich viel leichter. === Tipp 2 === Das Gedicht sollte dir etwas sagen, oder dich emotional berühren. In Gedichten stecken in vielen Fällen wesentlich mehr Informationen, als man den paar Worten zutrauen mag. Mit Gedichten schafft man es, die flüchtigen Gefühle und Eindrücke, die man selbst im Leben sammelt, eine Form zu geben, die es einem ermöglicht, dieses Gefühl und den Eindruck oder die Erinnerungen, die man mit dem Gedicht verknüpft hat, wieder wach zurufen. *[[A Poem a Day/ 11. Oktober: Herbsttag (R.M. Rilke)#Memento Mori|Beispiel: Herbsttag (Memento Mori)]] === Tipp 3 === Suche die innere Logik. Viele Gedichte haben einen in sich stimmigen Ablauf. Es gibt oft einen bestimmten Grund, warum bestimmte Strophen an genau dieser Stelle auftauchen und nicht etwa zwei Strophen später. Diesen Handlungsstrang gilt es zu entdecken. Dabei sollte man in erster Linie dem folgen, was der Dichter (vermutlich) sagen wollte. Sollte dieses nicht möglich sein, so schadet es nichts, sich einen eigenen Handlungsstrang oder eine eigene innere Ordnung zu erfinden, an dem sich das Gedächtnis entlang hangeln kann. Jedoch sollte man sich dabei immer bewusst sein, was im Gedicht steckt[[w:Exegese|(Exegese)]]<ref>Die '''Exegese''' ([[w:Griechische Sprache|griech.]] ''exégesis'' = Auslegung, Erläuterung) ist ein Fachbegriff der [[w:Hermeneutik|Hermeneutik]] und beschreibt verschiedene Methoden, den Inhalt eines Textes zu [[w:Interpretation|interpretieren]].</ref>, und was man selbst hineininterpretert hat [[w:Eisegese|Eisegese]]<ref>'''Eisegese''' (v. [[w:Griechische Sprache|griech.]]: εισήγηση = die Einlegung) ist ein etwas abschätzig gemeinter Begriff, der ausdrücken soll, dass man etwas in einen Text herausliest (besser hineininterpretiert), das aber nicht dort darin steht oder gemeint ist. </ref>. Solange man sich dessen bewusst ist, was man selbst hineininterpretiert oder drum herum ausgeschmückt hat, kann man dieses gut als Eselsbrücke für das Lernen verwenden. Es darf hinterher nur nicht Bestandteil einer Interpretation für z.B. einen Deutschunterricht werden. Eine weitere Methode ein Gedicht sinnvoll „auszuschmücken“ ist es, sich eine Bildergeschichte zu dem Gedicht zu malen, die einem hilft, sich die Reihenfolge zu merken. *[[A Poem a Day/ 25. Oktober: Mondnacht (Joseph von Eichendorff)#Statement|Beispiel: Statement von "die Mondnacht"]] === Tipp 4 === Im Gedichtvortrag hört es sich oft nicht besonders schön an, wenn man das Gedicht herunterleiert. Doch zum Lernen ist dieses Herunterleiern eine gute Hilfe. Der Rhythmus, der Reim und das Metrum (und sollte es vorhanden sein auch eine Melodie) sind hervorragende Gedächtnisstützen. === Tipp 5 === Die "Ich packe einen Koffer"-Methode. Sie eignet sich um noch möglichst schnell ein Gedicht zu pauken. *Man liest einen Satz, und sagt diesen auf. *Man kontrolliert den ersten Satz und liest den zweiten und sagt beides auf *Man kontrolliert die ersten beiden Sätze, liest den dritten und sagt alles drei auf Damit fährt man strophenweise fort. Nach jeder Strophe sagt man die kompletten vorherigen Strophen auf. === Tipp 6 === Wiederholen, wiederholen, wiederholen. Dabei muss man nicht unbedingt alles selbst wiederholen, sondern man kann es auch durch Zuhören, gegenseitiges Abfragen, Lesen etc. wiederholen. Bei Liedtexten kann natürlich der CD- bzw. MP3-Player ungemein beim Lernen helfen. === Tipp 7 === Wiederholen, wiederholen, wiederholen. Nicht nur in der akuten Lernphase, sondern auch noch einmal nach einer Minute, nach eine Stunde, nach einen Tag, eine Woche und einem Monat, nachdem man zum ersten mal das Gedicht auswendig gelernt hat. === Tipp 8 === Gedichte auswendig lernen. So banal sich dieses anhört, je mehr man Gedichte, Lieder, Texte, Bibelverse, Poesie-Album-Sprüche u.s.w. auswendig lernt, desto einfacher fällt es einem, Texte auswendig zu lernen. === Tipp 9 === Sage Gedichte laut auf. Dabei versuche nicht nur darauf zu achten, ob man kein Wort vergessen hat, sondern konzentriere dich darauf, wie sich das Gedicht für einen Zuhörer anhören mag. Gedichte wollen vorgetragen werden. Dabei ist es wichtig, ob das Gedicht spannend, lustig, traurig oder auch eintönig klingen sollte. Versuche es dann auch so zu sprechen, wie du es hören möchtest. Dadurch erhält das Gedicht viel mehr Farbe und ist dadurch auch leichter zu lernen. *[[A Poem a Day/ 1. September: Der Zauberlehrling (Johann Wolfgang von Goethe:Regieanweisung)|Beispiel: "Der Zauberlehrling"]] === Tipp 10 === Wer ein Mikrofon und ein Aufzeichnungsgerät (altmodisch: Kassettenrecorder; neumodischer: PC, Laptop, Netbook, Handy), alternativ einen MP3-Player mit integriertem Mikrofon besitzt und sich nicht davor scheut, seine eigene Stimme von einer Aufzeichnung zu hören (sie klingt für einen selber anders, als man sich sowieso sprechen hört), kann auswendig zu lernendes Material einmalig aufzeichnen und die entstehende Aufnahme wiederholt abhören. Gerade bei längeren Werken kann dies für die eigenen Stimmbänder schonender sein als Tipp 9. == Wie schreibe ich am besten Gedichte, die mir auch nach Wochen noch gefallen? == === Themenwahl === Am besten ist es, wenn man sich nicht dazu zwingen muss, ein Gedicht zu schreiben, weil man denkt: "ich will oder muss jetzt aber!". Ich habe die Erfahrung gemacht, das Gedichte „zu mir kommen“ , was bedeutet, dass ich erst einmal im Kopf mit Gedanken, Worten und Wörtern herumspiele. Manchmal ist es sinnvoll, einzelne von ihnen aufzuschreiben, um sie besser betrachten zu können. Es geht dabei vordergründig um die Aussage, die sie für mich haben und die ich vermitteln will. Diese Intentionen mache ich mir dann zum Thema. Manchmal ist es aber auch eine bestimmte Situation oder Atmosphäre, die ich vermitteln möchte, weil ich sie gerade frisch erlebt habe. === Das Gedicht entsteht === Als nächstes gibt es eine Art Gedankensammlung, die man schriftlich oder auch nur mit ein paar Stichworten machen kann, wobei Stich-/Schlagworte oft das Weiterdenken anregen. Nun kann man beginnen, die ersten Verse zu schreiben, zu reimen oder einfach seine Metrik zu finden. Gerade jetzt wird viel Platz auf einem Schmierblatt benötigt. Es ist sinnvoll, Radiergummi und Bleistift griffbereit zu haben, da viele Worte, Versverteilungen und Formulierungen oft nicht auf Anhieb passen. Wenn man mit seinem Ausdruck relativ zufrieden ist, geht es noch mal an die Feinarbeit. === Letzter Schliff === Der „letzte Schliff“ ist häufig der Arbeitsschritt, der die meiste Zeit in Anspruch nimmt. Man liest Wort für Wort, Vers für Vers, Strophe für Strophe mal laut, mal leise. Man überlegt sich jedes Wort in jedem Vers. verschiebt einen Zeilensprung, tauscht Verse, manchmal ganze Strophen untereinander. Oft schleichen sich „Reim dich oder ich fress dich“- Stellen ein. Man sollte versuchen, diese durch besser klingende Passagen zu ersetzen. Zum Schluss schreibt man das Gedicht noch mal in der Fassung auf, für die man sich entschieden hat. Wenn jetzt beim Schreiben oder beim nochmaligen laut Lesen etwas Störendes auffällt, kann man mit dem Schliff fortfahren – ansonsten kann man es für sein Gemüt noch einmal ins „Reine“ schreiben und auf sein Werk auch ein wenig stolz sein. Es ist keine Seltenheit, so ordentlich bearbeitete Gedichte schon nach mehrmaligem Vorlesen fast auswendig zu können, was auch recht vorteilhaft sein kann. ---- ;Fußnoten <references /> [[Kategorie:Buch]] jb9q0fos1euvjtme9ndrz8nuwatjm1b 1091092 1091091 2026-09-19T15:25:18Z Mjchael 2222 /* September */ 1091092 wikitext text/x-wiki {{Regal|Literatur}} == Zusammenfassung des Projekts == * '''Buchpatenschaft/Ansprechperson:''' Zur Zeit niemand. Buch darf übernommen werden. * '''Sind Co-Autoren gegenwärtig erwünscht?''' Ja, sehr gerne. <!-- Für welche Leute soll das Buch geschrieben werden? --> * '''Zielgruppe:''' # Alle Menschen, die gerne Gedichte aus den Sprachen Deutsch und Englisch auswendig lernen möchten und dazu auch eine kurze Information zum Dichter und zur Kulturepoche haben möchten. # Alle Menschen, die gerne ein persönliches Statement zu einem ihrer Lieblingsgedichte verfassen möchten und sich so an dem Projekt beteiligen möchten. # Wie kann man sich beteiligen: Ganz einfach: Datum aussuchen, Gedicht (oder auch ein Zitat aus einem Gedicht) einfügen und ein persönliches Statement verfassen. Bitte keine Daten überschreiben! Wer zuerst kommt, mahlt zuerst. Oder natürlich auch das Vorwort & das Kapitel "auswendig lernen lernen" bearbeiten. <!-- Was soll alles in das Buch rein, was nicht? --> * '''Projektumfang:''' Kurzformel: 365 & 1(Schaltjahr :-) Gedichte & 1 persönliches Statement von einem (oder mehreren Menschen z.B.: Schulklassen), 1 Kapitel "Wie soll ich auswendig lernen lernen?", Vorwort: Wozu soll ich Gedichte auswendig lernen? * Neben persönlichen subjektiven Statements könnten sich ohne weiteres ganze Klassen an der Analyse und Interpretation eines Gedichtes beteiligen, und die Ergebnisse beispielhaft hier abdrucken. Entweder als die beste Interpretation einer Klasse (Wettbewerb) oder als eine Gemeinschaftsproduktion. In der Form **A Poem a Day/ 30.Februar: Das Gedicht vom Gedicht /Interpretation 1... Dabei sollte die Ausführung etwas ausführlicher und für interessierte Laien in einer allgemein verständlichen Form erklärt werden. * '''Einschränkung:''' Reine Gedichtesammlungen sind auf Wikibooks nicht zulässig, aber ein Lehrbuch über Gedichte mit Analysen, Vergleichen und Beispielen (diese mindestens mit persönlichem Statement) ist möglich. == Status == * 20 Gedichte von 365 [[Bild:1von10.png]] (5.5%) * 4 Beiträge/Kommentare/Statements von 365, die länger als nur ein Satz sind [[Bild:0von10.png]] (1,1%) ==A Poem a Day: Vorwort: Wozu soll ich Gedichte auswendig lernen?== Sogar ein kurzes Gedicht kann mehr als tausend Worte sagen. Als Ausdruck von Gedanken und Gefühlen sind Gedichte ein guter Weg die Grenzen zwischen emotionaler und rationaler Wahrnehmung aufzuheben. Sie auswendig zu lernen und zu rezitieren kann die in ihnen enthaltene Welt von Empfindungen in einem selbst lebendig werden lassen und mag zum Selbstverfassen von Gedichten anregen und so einen neuen Weg der Selbsterkenntnis eröffnen. ==A Poem a Day: 365 & 1 Gedichte== Jeweils 1 Gedicht & 1 persönliches Statement & 1 Kommentar oder 1 Interpretation oder 1 historischen Rückblick oder 1 Formale Analyse. === Januar === * [[A Poem a Day/ 01. Januar: Merseburgerzaubersprüche (Volksweise)|01. Januar: Merseburger Zaubersprüche I (Volksweise)]] * [[A Poem a Day/ 02. Januar: Merseburgerzaubersprüche II (Volksweise)|02. Januar: Merseburger Zaubersprüche II (Volksweise)]] === Februar === * [[A Poem a Day/ 05. Februar: Liebeserklärung an Mutter Erde|05. Februar: Liebeserklärung an Mutter Erde]] === März === * [[A Poem a Day/ 01. März: Vom Eise befreit (Johann Wolfgang von Goethe)|01. März: Vom Eise befreit (Johann Wolfgang von Goethe)]] === April === === Mai === * [[A Poem a Day/ 02. Mai: Komm lieber Mai und mache (Christian Adolph Overbeck)|02.Mai: Komm lieber Mai und mache (Christian Adolph Overbeck)]] * [[A Poem a Day/ 27. Mai: Nicht immer war ich schon so alt (Heinz Ehrhardt)|27.Mai: Nicht immer war ich schon so alt (Heinz Ehrhardt)]] === Juli === * [[A Poem a Day/ 07. Juli: Der römische Brunnen (Conrad Ferdinand Meyer)|07. Juli: Der römische Brunnen (Conrad Ferdinand Meyer)]] === August === * [[A Poem a Day/ 01. August: Überall (Joachim Ringelnatz)|01. August: Überall (Joachim Ringelnatz)]] * [[A Poem a Day/ 08. August: Kriegslied (Mathias Claudius)|08. August: Kriegslied (Mathias Claudius)]] === September === * [[A Poem a Day/ 1. September: Der Zauberlehrling (Johann Wolfgang von Goethe)|1. September: Der Zauberlehrling (Johann Wolfgang von Goethe)]] * [[A Poem a Day/ 2. September: Vergänglichkeit der Schönheit (Christian Hoffmann von Hoffmannswaldau)|2. September: Vergänglichkeit der Schönheit (Christian Hoffmann von Hoffmannswaldau)]] * [[A Poem a Day/ 3. September: Septembermorgen (Eduard Mörike)|3. September: Septembermorgen (Eduard Mörike)]] * [[A Poem a Day/ 9. September: Ginkgo Biloba (Johann Wolfgang von Goethe)|9. September: Ginkgo Biloba (Johann Wolfgang von Goethe)]] * [[A Poem a Day/ 17. September: The Charge of the Light Brigade (Alfred Lord Tennyson)|17. September: The Charge of the Light Brigade (Alfred Lord Tennyson)]] * [[A Poem a Day/ 26. September: Herbst (R.M. Rilke)|22. September: Herbst (R.M. Rilke)]] * [[A Poem a Day/ 26. September: Der Panther (R.M. Rilke)|26. September: Der Panther (R.M. Rilke)]] === Oktober === * [[A Poem a Day/ 2. Oktober: Herr von Ribbeck auf Ribbeck im Havelland (Theodor Fontane)| 2. Oktober: Herr von Ribbeck auf Ribbeck im Havelland (Theodor Fontane)]] * [[A Poem a Day/ 7. Oktober: Baum im Herbst (Hermann Hesse)| 7. Oktober: Baum im Herbst (Hermann Hesse)]] * [[A Poem a Day/ 11. Oktober: Herbsttag (R.M. Rilke)|11. Oktober: Herbsttag (R.M. Rilke)]] * [[A Poem a Day/ 12. Oktober: Herbstbild (Friedrich Hebbel)|12. Oktober: Herbstbild (Friedrich Hebbel)]] * [[A Poem a Day/ 13. Oktober: Blätter (R.M. Rilke)|13. Oktober: Blätter (R.M. Rilke)]] * [[A Poem a Day/ 25. Oktober: Mondnacht (Joseph von Eichendorff)|25. Oktober: Mondnacht (Joseph von Eichendorff)]] * [[A Poem a Day/ 30.Oktober: Des Pfarrers Tochter von Taubenhain|30.Oktober: Des Pfarrers Tochter von Taubenhain (Gottfried August Bürger)]] === November === * [[A Poem a Day/ 1. November: Herbst (Theodor Storm)|1. November: Herbst (Theodor Storm)]] * [[A Poem a Day/ 8. November: Septembermorgen (Eduard Möricke)|8. November: Septembermorgen (Eduard Möricke)]] * [[A Poem a Day/ 14. November: Der Erlkönig (Johann Wolfgang von Goethe)|14. November: Der Erlkönig (Johann Wolfgang von Goethe)]] * [[A Poem a Day/ 20. November: Schlesischen Weber (Heinrich Heine)|20. November: Schlesischen Weber (Heinrich Heine)]] === Dezember === * [[A Poem a Day/ 01. Dezember: Der Winter ist ein rechter Mann (Matthias Claudius)|01.Dezember: Der Winter ist ein rechter Mann (Matthias Claudius)]] * [[A Poem a Day/ 02. Dezember : Schenken (Joachim Ringelnatz)| 02. Dezember: Schenken (Joachim Ringelnatz)]] * [[A Poem a Day/ 21. Dezember : Es gibt so wunderweiße Nächte (Rainer Maria Rilke)| 21. Dezember: Es gibt so wunderweiße Nächte (Rainer Maria Rilke)]] * [[A Poem a Day/ 30. Dezember: Winternacht (Joseph von Eichendorff)|30. Dezember : Winternacht (Joseph von Eichendorff)]] ==A Poem a Day: Wie soll ich auswendig lernen lernen? Tipps und Tricks== === Tipp 1 === Das Gedicht sollte dir gefallen. Gedichte auswendig zu lernen, nur weil man es muss, ist eine geeignete Methode einem den Geschmack an Lyrik zu verderben. Eigentümlicherweise sind dieselben Kinder und Jugendliche oft in der Lage, eine komplette Folge von Liedern fast auswendig mitzusingen, ohne dass sie sich wirklich dafür angestrengt haben. Was einem gefällt, das lernt sich viel leichter. === Tipp 2 === Das Gedicht sollte dir etwas sagen, oder dich emotional berühren. In Gedichten stecken in vielen Fällen wesentlich mehr Informationen, als man den paar Worten zutrauen mag. Mit Gedichten schafft man es, die flüchtigen Gefühle und Eindrücke, die man selbst im Leben sammelt, eine Form zu geben, die es einem ermöglicht, dieses Gefühl und den Eindruck oder die Erinnerungen, die man mit dem Gedicht verknüpft hat, wieder wach zurufen. *[[A Poem a Day/ 11. Oktober: Herbsttag (R.M. Rilke)#Memento Mori|Beispiel: Herbsttag (Memento Mori)]] === Tipp 3 === Suche die innere Logik. Viele Gedichte haben einen in sich stimmigen Ablauf. Es gibt oft einen bestimmten Grund, warum bestimmte Strophen an genau dieser Stelle auftauchen und nicht etwa zwei Strophen später. Diesen Handlungsstrang gilt es zu entdecken. Dabei sollte man in erster Linie dem folgen, was der Dichter (vermutlich) sagen wollte. Sollte dieses nicht möglich sein, so schadet es nichts, sich einen eigenen Handlungsstrang oder eine eigene innere Ordnung zu erfinden, an dem sich das Gedächtnis entlang hangeln kann. Jedoch sollte man sich dabei immer bewusst sein, was im Gedicht steckt[[w:Exegese|(Exegese)]]<ref>Die '''Exegese''' ([[w:Griechische Sprache|griech.]] ''exégesis'' = Auslegung, Erläuterung) ist ein Fachbegriff der [[w:Hermeneutik|Hermeneutik]] und beschreibt verschiedene Methoden, den Inhalt eines Textes zu [[w:Interpretation|interpretieren]].</ref>, und was man selbst hineininterpretert hat [[w:Eisegese|Eisegese]]<ref>'''Eisegese''' (v. [[w:Griechische Sprache|griech.]]: εισήγηση = die Einlegung) ist ein etwas abschätzig gemeinter Begriff, der ausdrücken soll, dass man etwas in einen Text herausliest (besser hineininterpretiert), das aber nicht dort darin steht oder gemeint ist. </ref>. Solange man sich dessen bewusst ist, was man selbst hineininterpretiert oder drum herum ausgeschmückt hat, kann man dieses gut als Eselsbrücke für das Lernen verwenden. Es darf hinterher nur nicht Bestandteil einer Interpretation für z.B. einen Deutschunterricht werden. Eine weitere Methode ein Gedicht sinnvoll „auszuschmücken“ ist es, sich eine Bildergeschichte zu dem Gedicht zu malen, die einem hilft, sich die Reihenfolge zu merken. *[[A Poem a Day/ 25. Oktober: Mondnacht (Joseph von Eichendorff)#Statement|Beispiel: Statement von "die Mondnacht"]] === Tipp 4 === Im Gedichtvortrag hört es sich oft nicht besonders schön an, wenn man das Gedicht herunterleiert. Doch zum Lernen ist dieses Herunterleiern eine gute Hilfe. Der Rhythmus, der Reim und das Metrum (und sollte es vorhanden sein auch eine Melodie) sind hervorragende Gedächtnisstützen. === Tipp 5 === Die "Ich packe einen Koffer"-Methode. Sie eignet sich um noch möglichst schnell ein Gedicht zu pauken. *Man liest einen Satz, und sagt diesen auf. *Man kontrolliert den ersten Satz und liest den zweiten und sagt beides auf *Man kontrolliert die ersten beiden Sätze, liest den dritten und sagt alles drei auf Damit fährt man strophenweise fort. Nach jeder Strophe sagt man die kompletten vorherigen Strophen auf. === Tipp 6 === Wiederholen, wiederholen, wiederholen. Dabei muss man nicht unbedingt alles selbst wiederholen, sondern man kann es auch durch Zuhören, gegenseitiges Abfragen, Lesen etc. wiederholen. Bei Liedtexten kann natürlich der CD- bzw. MP3-Player ungemein beim Lernen helfen. === Tipp 7 === Wiederholen, wiederholen, wiederholen. Nicht nur in der akuten Lernphase, sondern auch noch einmal nach einer Minute, nach eine Stunde, nach einen Tag, eine Woche und einem Monat, nachdem man zum ersten mal das Gedicht auswendig gelernt hat. === Tipp 8 === Gedichte auswendig lernen. So banal sich dieses anhört, je mehr man Gedichte, Lieder, Texte, Bibelverse, Poesie-Album-Sprüche u.s.w. auswendig lernt, desto einfacher fällt es einem, Texte auswendig zu lernen. === Tipp 9 === Sage Gedichte laut auf. Dabei versuche nicht nur darauf zu achten, ob man kein Wort vergessen hat, sondern konzentriere dich darauf, wie sich das Gedicht für einen Zuhörer anhören mag. Gedichte wollen vorgetragen werden. Dabei ist es wichtig, ob das Gedicht spannend, lustig, traurig oder auch eintönig klingen sollte. Versuche es dann auch so zu sprechen, wie du es hören möchtest. Dadurch erhält das Gedicht viel mehr Farbe und ist dadurch auch leichter zu lernen. *[[A Poem a Day/ 1. September: Der Zauberlehrling (Johann Wolfgang von Goethe:Regieanweisung)|Beispiel: "Der Zauberlehrling"]] === Tipp 10 === Wer ein Mikrofon und ein Aufzeichnungsgerät (altmodisch: Kassettenrecorder; neumodischer: PC, Laptop, Netbook, Handy), alternativ einen MP3-Player mit integriertem Mikrofon besitzt und sich nicht davor scheut, seine eigene Stimme von einer Aufzeichnung zu hören (sie klingt für einen selber anders, als man sich sowieso sprechen hört), kann auswendig zu lernendes Material einmalig aufzeichnen und die entstehende Aufnahme wiederholt abhören. Gerade bei längeren Werken kann dies für die eigenen Stimmbänder schonender sein als Tipp 9. == Wie schreibe ich am besten Gedichte, die mir auch nach Wochen noch gefallen? == === Themenwahl === Am besten ist es, wenn man sich nicht dazu zwingen muss, ein Gedicht zu schreiben, weil man denkt: "ich will oder muss jetzt aber!". Ich habe die Erfahrung gemacht, das Gedichte „zu mir kommen“ , was bedeutet, dass ich erst einmal im Kopf mit Gedanken, Worten und Wörtern herumspiele. Manchmal ist es sinnvoll, einzelne von ihnen aufzuschreiben, um sie besser betrachten zu können. Es geht dabei vordergründig um die Aussage, die sie für mich haben und die ich vermitteln will. Diese Intentionen mache ich mir dann zum Thema. Manchmal ist es aber auch eine bestimmte Situation oder Atmosphäre, die ich vermitteln möchte, weil ich sie gerade frisch erlebt habe. === Das Gedicht entsteht === Als nächstes gibt es eine Art Gedankensammlung, die man schriftlich oder auch nur mit ein paar Stichworten machen kann, wobei Stich-/Schlagworte oft das Weiterdenken anregen. Nun kann man beginnen, die ersten Verse zu schreiben, zu reimen oder einfach seine Metrik zu finden. Gerade jetzt wird viel Platz auf einem Schmierblatt benötigt. Es ist sinnvoll, Radiergummi und Bleistift griffbereit zu haben, da viele Worte, Versverteilungen und Formulierungen oft nicht auf Anhieb passen. Wenn man mit seinem Ausdruck relativ zufrieden ist, geht es noch mal an die Feinarbeit. === Letzter Schliff === Der „letzte Schliff“ ist häufig der Arbeitsschritt, der die meiste Zeit in Anspruch nimmt. Man liest Wort für Wort, Vers für Vers, Strophe für Strophe mal laut, mal leise. Man überlegt sich jedes Wort in jedem Vers. verschiebt einen Zeilensprung, tauscht Verse, manchmal ganze Strophen untereinander. Oft schleichen sich „Reim dich oder ich fress dich“- Stellen ein. Man sollte versuchen, diese durch besser klingende Passagen zu ersetzen. Zum Schluss schreibt man das Gedicht noch mal in der Fassung auf, für die man sich entschieden hat. Wenn jetzt beim Schreiben oder beim nochmaligen laut Lesen etwas Störendes auffällt, kann man mit dem Schliff fortfahren – ansonsten kann man es für sein Gemüt noch einmal ins „Reine“ schreiben und auf sein Werk auch ein wenig stolz sein. Es ist keine Seltenheit, so ordentlich bearbeitete Gedichte schon nach mehrmaligem Vorlesen fast auswendig zu können, was auch recht vorteilhaft sein kann. ---- ;Fußnoten <references /> [[Kategorie:Buch]] m4drlv59aol99kt09y5lng1xta3ignv Benutzer:Mjchael/ Spielweise 2 28362 1091088 1090009 2026-09-19T14:32:48Z Mjchael 2222 /* Akkorde */ 1091088 wikitext text/x-wiki Hier sind Tests für das Projekt [[Gitarre: Lagerfeuerdiplom]] und den Folgekursen. Bitte diese Tests nicht löschen, jedoch Tipps wären wünschenswert. == Akut == ===Tonarten=== ==== Akkordstufen lydisch ==== {| class="wikitable" border="1" |-style="background:#B9FFC5" |- !Tonart ▼ !colspan="3"|Dur-Akkorde !colspan="3"|Moll-Akkorde !Dim |-style="background:#CCCCC; font-weight: bold;" !Akkord&shy;stufen ▶ |1<br>I |5<br>V |2<br>II |6<br>VI |3<br>III |j7<br>VII |4#<br>IV° |-style="background:#ffddff" !Cb lydisch |Cb&nbsp;(!) |Gb |Db |Abm |Ebm |Bbm |F° |-style="background:#ff99DD !Gb lydisch |Gb |Db |Ab |Ebm |Bbm |Fm |C° |-style="background:#ff9999" !Db lydisch |Db |Ab |Eb |Bbm |Fm |Cm |G° |-style="background:#ffdd99" !Ab lydisch |Ab |Eb |Bb |Fm |Cm |Gm |D° |-style="background:#ffff99" !Eb lydisch |Eb |Bb |F |Cm |Gm |Dm |A° |-style="background:#ddff99" !Bb lydisch |Bb |F |C |Gm |Dm |Am |E° |-style="background:#99FF99; font-weight: bold;" !F lydisch |F |C |G |Dm |Am |Em |B° |-style="background:#99ffdd" !C lydisch |C |G |D |Am |Em |Bm |F#° |-style="background:#99ffff" !G lydisch |G |D |A |Em |Bm |F#m |C#° |-style="background:#99ddff" !D lydisch |D |A |E |Bm |F#m |C#m |G#° |-style="background:#9999ff" !A lydisch |A |E |B |F#m |C#m |G#m |D#° |-style="background:#dd99ff" !E lydisch |E |B |F# |C#m |G#m |D#m |A#° |-style="background:#ffddff" !B lydisch |B |F# |C# |G#m |D#m |A#m |E#° (!) | |} ==== Akkordstufen ionisch (entspricht Dur) ==== {| class="wikitable" border="1" |-style="background:#B9FFC5" |- !Tonart ▼ !colspan="3"|Dur-Akkorde !colspan="3"|Moll-Akkorde !colspan="2"|Verminderter<br>Akkord |-style="background:#CCCCC; font-weight: bold;" !Akkord&shy;stufen ▶ |4<br>IV |1<br>I |5<br>V |2<br>II |6<br>VI |3<br>III |(3⁷)<br>(III⁷) |j7<br>VII° |-style="background:#ffddff" !Gb&nbsp;/&nbsp;Ebm |Cb&nbsp;(!) |Gb |Db<sup>(7)</sup> |Abm |Ebm |Bbm |(Bb7) |F° |-style="background:#ff99DD !Db&nbsp;/&nbsp;Bbm |Gb |Db |Ab<sup>(7)</sup> |Ebm |Bbm |Fm |(F7) |C° |-style="background:#ff9999" !Ab&nbsp;/&nbsp;Fm |Db |Ab |Eb<sup>(7)</sup> |Bbm |Fm |Cm |(C7) |G° |-style="background:#ffdd99" !Eb&nbsp;/&nbsp;Cm |Ab |Eb |Bb<sup>(7)</sup> |Fm |Cm |Gm |(G7) |D° |-style="background:#ffff99" !Bb&nbsp;/&nbsp;Gm |Eb |Bb |F<sup>(7)</sup> |Cm |Gm |Dm |(D7) |A° |-style="background:#ddff99" !F&nbsp;/&nbsp;Dm |Bb |F |C<sup>(7)</sup> |Gm |Dm |Am |(A7) |E° |-style="background:#99FF99; font-weight: bold;" !C&nbsp;/&nbsp;Am |F |C |G<sup>(7)</sup> |Dm |Am |Em |(E7) |B° |-style="background:#99ffdd" !G&nbsp;/&nbsp;Em |C |G |D<sup>(7)</sup> |Am |Em |Bm |(H7) |F#° |-style="background:#99ffff" !D&nbsp;/&nbsp;Bm |G |D |A<sup>(7)</sup> |Em |Bm |F#m |(F#7) |C#° |-style="background:#99ddff" !A&nbsp;/&nbsp;F#m |D |A |E<sup>(7)</sup> |Bm |F#m |C#m |(C#7) |G#° |-style="background:#9999ff" !E&nbsp;/&nbsp;C#m |A |E |B<sup>(7)</sup> |F#m |C#m |G#m |(G#7) |D#° |-style="background:#dd99ff" !B&nbsp;/&nbsp;G#m |E |B |F#<sup>(7)</sup> |C#m |G#m |D#m |(D#7) |A#° |-style="background:#ffddff" !F#&nbsp;/&nbsp;D#m |B |F# |C#<sup>(7)</sup> |G#m |D#m |A#m |(A#7) |E#° (!) | |} ==== Akkordstufen mixolydisch ==== {| class="wikitable" border="1" |-style="background:#B9FFC5" |- !Tonart ▼ !colspan="3"|Dur-Akkorde !colspan="3"|Moll-Akkorde !Dim |-style="background:#CCCCC; font-weight: bold;" !Akkord&shy;stufen ▶ |7<br>VIIb |4<br>IV |'''1<br>I''' |5<br>V |2<br>II |6<br>VI |3<br>III |-style="background:#ffddff" !Db mixolydisch |Cb&nbsp;(&#033;) |Gb |'''Db''' |Abm |Ebm |Bbm |F° |-style="background:#ff99DD !Ab mixolydisch |Gb |Db |'''Ab''' |Ebm |Bbm |Fm |C° |-style="background:#ff9999" !Eb mixolydisch |Db |Ab |'''Eb''' |Bbm |Fm |Cm |G° |-style="background:#ffdd99" !Bb mixolydisch |Ab |Eb |'''Bb''' |Fm |Cm |Gm |D° |-style="background:#ffff99" !F mixolydisch |Eb |Bb |'''F''' |Cm |Gm |Dm |A° |-style="background:#ddff99" !C mixolydisch |Bb |F |'''C''' |Gm |Dm |Am |E° |-style="background:#99FF99; font-weight: bold;" !G mixolydisch |F |C |'''G''' |Dm |Am |Em |B° |-style="background:#99ffdd" !D mixolydisch |C |G |'''D''' |Am |Em |Bm |F#° |-style="background:#99ffff" !A mixolydisch |G |D |'''A''' |Em |Bm |F#m |C#° |-style="background:#99ddff" !E mixolydisch |D |A |'''E''' |Bm |F#m |C#m |G#° |-style="background:#9999ff" !B mixolydisch |A |E |'''B''' |F#m |C#m |G#m |D#° |-style="background:#dd99ff" !F# mixolydisch |E |B |'''F#''' |C#m |G#m |D#m |A#° |-style="background:#ffddff" !C# mixolydisch |B |F# |'''C#''' |G#m |D#m |A#m |E#° (&#033;) |} ==== Akkordstufen dorisch ==== {| class="wikitable" border="1" |-style="background:#B9FFC5" |- !Tonart ▼ !colspan="3"|Dur-Akkorde !colspan="3"|Moll-Akkorde !Dim |-style="background:#CCCCC; font-weight: bold;" !Akkord&shy;stufen ▶ |3<br>IIIb |7<br>VIIb |4<br>IV |1<br>I |5<br>V |2<br>II |6<br>VI |-style="background:#ffddff" !Cb lydisch |Cb&nbsp;(!) |Gb |Db |Abm |Ebm |Bbm |F° |-style="background:#ff99DD !Gb lydisch |Gb |Db |Ab |Ebm |Bbm |Fm |C° |-style="background:#ff9999" !Db lydisch |Db |Ab |Eb |Bbm |Fm |Cm |G° |-style="background:#ffdd99" !Ab lydisch |Ab |Eb |Bb |Fm |Cm |Gm |D° |-style="background:#ffff99" !Eb lydisch |Eb |Bb |F |Cm |Gm |Dm |A° |-style="background:#ddff99" !Bb lydisch |Bb |F |C |Gm |Dm |Am |E° |-style="background:#99FF99; font-weight: bold;" !F lydisch |F |C |G |Dm |Am |Em |B° |-style="background:#99ffdd" !C lydisch |C |G |D |Am |Em |Bm |F#° |-style="background:#99ffff" !G lydisch |G |D |A |Em |Bm |F#m |C#° |-style="background:#99ddff" !D lydisch |D |A |E |Bm |F#m |C#m |G#° |-style="background:#9999ff" !A lydisch |A |E |B |F#m |C#m |G#m |D#° |-style="background:#dd99ff" !E lydisch |E |B |F# |C#m |G#m |D#m |A#° |-style="background:#ffddff" !B lydisch |B |F# |C# |G#m |D#m |A#m |E#° (!) | |} === Grundtöne der A-Formen === <score> << \cadenzaOn \new Staff { \clef "treble_8" \time 7/4 \once \override Staff.TimeSignature #'stencil = ##f \omit Stem <a, a>4 <bes, bes> <b, b> <c c'> <d d'> <e e'> <f f'> <g g'> <a a'> <b b'> <c' c''> \bar "|" }\addlyrics { A Bb B C D E F G A B C } \new TabStaff { \override Stem #'transparent = ##t \override Beam #'transparent = ##t { <a,\5 a\3>4 <bes,\5 bes\3>4 <b,\5 b\3>4 <c\5 c'\3> <d\5 d'\3> <e\5 e'\3> <f\5 f'\3> <g\5 g'\3> <a\5 a'\3> <b\5 b'\3> <c'\5 c''\3> \bar "|" } } >> </score> === Grundtöne der E-Formen === <score> << \cadenzaOn \new Staff { \clef "treble_8" \time 4/4 \once \override Staff.TimeSignature #'stencil = ##f \omit Stem <e, e e'>4 <f, f f'> <g, g g'> <a, a a'> <b, b b'> <c c' c''> <d d' d''> <e e' e''> \bar "|" }\addlyrics { E F G A B C D E } \new TabStaff { \override Stem #'transparent = ##t \override Beam #'transparent = ##t { <e,\6 e\4 e'\1>4 <f,\6 f\4 f'\1> <g,\6 g\4 g'\1> <a,\6 a\4 a'\1> <b,\6 b\4 b'\1> <c\6 c'\4 c''\1> <d\6 d'\4 d''\1> <e\6 e'\4 e''\1> \bar "|" } } >> </score> === She Moved Through The Fair === <score sound="1" raw="1"> \header { title = "She Moved Through The Fair" % subtitle = " ... " % piece = " ... " composer = "trad. Irish-Folk" % source = "using different sources" arranger = "Arr.: Mjchael" copyright = "ccbysa de.wikibooks.org/wiki/Gitarre" % footer = " ... " } myChords = { \chordmode { \set chordChanges = ##t \partial 4 a4 | \repeat volta 3 { g1 | a | g | a | g1 | a | g | a | g1 | a | g | a | g1 | a | g | a | } } } myDiskant = { % here don't use \relative c' \set Staff.midiInstrument = "acoustic guitar (nylon)" \stemUp \partial 4 b8 cis' | \repeat volta 3 { d'8 g d cis' g, g d' g | e'8 a e e' a, a cis' b | g d b, a d b, b g | a e a, a e a' e' fis'| g'4. a' e'4 | fis'8 e'4 e'4. e'4 d'4. cis' d'4 | e'4. e' e'8 fis' g'4. a' e'4 | fis'8 e'4 e'4. e'4 d'4. cis' d'4 | e'4. e' b8 cis' d'4. cis' d'4 | e'4. e' cis'8 b g4. a b4 | a4. a b8 cis' } } %% like: "let ring" in Powertab myMelody = \relative c' { \set Staff.midiInstrument = "acoustic guitar (nylon)" \stemUp \partial 4 b8 cis | \repeat volta 3 { d4. cis d4 | e4. e cis8 b g4. a b4 | a4. a e'8 fis g4. a e4 | fis8 e4 e4. e4 d4. cis d4 | e4. e e8 fis g4. a e4 | fis8 e4 e4. e4 d4. cis d4 | e4. e b8 cis d4. cis d4 | e4. e cis8 b g4. a b4 | a4. a b8 cis } } myBass = { % \override NoteHead #'color = #blue { \partial 4 r4 | \repeat volta 3 { g,4 d g, d | a, e a, e g,4 d g, d | a, e a, e g,4 d g, d | a, e a, e g,4 d g, d | a, e a, e g,4 d g, d | a, e a, e g,4 d g, d | a, e a, e g,4 d g, d | a, e a, e g,4 d g, d | a, e a, e } } } myGuitar = << \myDiskant \\ \myBass >> \score { << \new ChordNames { \myChords } \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 100 \key d \major \set Score.tempoHideNote = ##t \myGuitar } \new TabStaff { \myGuitar } >> \layout { } } \score { << % \new ChordNames { \myChords } \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 100 \key d \major \unfoldRepeats << \myGuitar \\ \myMelody >> } >> \midi { } } \paper { indent=0\mm line-width=120\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Die Moritat von Mackie Messer === <score sound="1" raw="1"> \header { title = "Die Moritat von Mackie Messer" % subtitle = " ... " % piece = " ... " poet = "Bertolt Brecht (*1898 - †1956)" composer = "Kurt Julian Weill (*1900 - †1950)" % source = "using different sources" arranger = "Arr.: Mjchael" copyright = "ccbysa de.wikibooks.org/wiki/Gitarre" % footer = " ... " } myChords = { \chordmode { \set chordChanges = ##t \partial 2 g2:7 | \repeat volta 3 { c1 c1 | d:m7 d:m7 | g:7 g: | c c | a1:m a:m | d:m7 d:m7| g:7 g:7 | c c | } } } myDiskant = { % here don't use \relative c' \set Staff.midiInstrument = "acoustic guitar (nylon)" \stemUp \partial 2 e4. g8 | \repeat volta 3 { } } %% like: "let ring" in Powertab myMelody = \relative c' { \set Staff.midiInstrument = "acoustic guitar (nylon)" \stemUp } myBass = { % \override NoteHead #'color = #blue { } } myGuitar = << \myDiskant \\ \myBass >> \score { << \new ChordNames { \myChords } \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 140 \key c \major \set Score.tempoHideNote = ##t \myGuitar } \new TabStaff { \myGuitar } >> \layout { } } \score { << % \new ChordNames { \myChords } \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 140 \key c \major \unfoldRepeats << \myGuitar \\ \myMelody >> } >> \midi { } } \paper { indent=0\mm line-width=120\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ===Dixie's Land=== <score lang="ABC" sound="1"> X:1 M:2/4 L:1/8 Q:100 K:C z2 zG/2-E/2|: CCC/2-D/2 E/2F/2| GG GE| w: I wish I was in the land of cot-ton, AA A3/2 G/2| A3/2 G/2A/2 B/2c/2 d/2| w: Old times there are not for-got-ten. e3 c/2G/2 | c3 G/2E/2 G3 D/2E/2 |1 | C2 z G/2-E/2 |2 C2 z (3G/2A/2B/2 :| | w: Look_ away, look_ away, look_ away. Di-xie | Land! I | Land! I__ | ce d>c| A c2 A| d3 A| d3 (3G/2A/2B/2 | w: wish I was in Di-xie, Hoo-ray! Hoo-ray! In__ | ce d>c | AB c>A | GGcG | EDCE w: Di-xie's Land I'll | take my stand to | live and die in Di-xie_ A- |: C3 E | D3 A | G E e>c |1 | dc2 A |2 dc2 z :| |] w: way A-| way a-|way down south in | Di-xie! A- | Di-xie! </score> ===Akkorde=== <score> << \chords {d2 d d s fis fis fis s c c c} \context Voice = "mel" { % simple D chord d'2 ^\markup \fret-diagram-verbose #'((mute 6) (mute 5) (open 4) (place-fret 3 2) (place-fret 2 3) (place-fret 1 2)) d' ^\markup \fret-diagram "6-x;5-x;4-o;3-2;2-3;1-2;" d' ^\markup \fret-diagram-terse "x;x;o;2;3;2;" r % fis major chord, 3/4 size, fingering labeled below string fis' ^\markup \override #'(size . 0.75) {\override #'(finger-code . below-string){\fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2) (place-fret 5 4 3) (place-fret 4 4 4) (place-fret 3 3 2) (place-fret 2 2 1) (place-fret 1 2 1))}} fis' ^\markup \override #'(finger-code . below-string) {\fret-diagram "s:0.75;c:6-1-2;6-2-1;5-4-3;4-4-4;3-3-2;2-2-1;1-2-1;"} fis' ^\markup \override #'(size . 0.75) {\override #'(finger-code . below-string){\fret-diagram-terse "2-1-(;4-3;4-4;3-2;2-1;2-1-);"}} r % c major barre chord, fingering labeled on frets c' ^\markup \override #'(dot-color . white) { \override #'(finger-code . in-dot) \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1) (place-fret 4 5 2) (place-fret 3 5 3) (place-fret 2 5 4) (place-fret 1 3 1) (barre 5 1 3)) } c' ^\markup \override #'(barre-type . straight) \fret-diagram "f:1;c:5-1-3;6-x;5-3-1;4-5-2;3-5-3;2-5-4;1-3-1;" c' ^\markup \override #'(dot-radius . 0.35) { \override #'(finger-code . in-dot) { \override #'(dot-color . white) { \fret-diagram-terse "x;3-1-(;5-2;5-3;5-4;3-1-);"}}} r % c major scale using open strings c' ^\markup \fret-diagram-verbose #'((mute 6) (place-fret 5 3) (open 4) (place-fret 4 2) (place-fret 4 3) (open 3) (place-fret 3 2) (open 2) (place-fret 2 1) (mute 1)) c' ^\markup \fret-diagram #'"6-x;5-3;4-o;4-2;4-3;3-o;3-2;2-o;2-1;1-x;" c' ^\markup \fret-diagram-terse #'"x;3;2 3;o 2;o 1;x;" % c major scale using no open strings c' ^\markup \fret-diagram-verbose #'((mute 6) (place-fret 5 3) (place-fret 5 5) (place-fret 4 2) (place-fret 4 3 red) (place-fret 4 5) (place-fret 3 2) (place-fret 3 4) (place-fret 3 5) (mute 2) (mute 1)) c' ^\markup \fret-diagram #'"6-x;5-3;5-5;4-2;4-3;4-5;3-2;3-4;3-5;2-x;1-x;" c' ^\markup \fret-diagram-terse #'"x;3 5;2 3 5;2 4 5;x;x;" % g major scale, no open strings, two octaves on six strings, white dots g' ^\markup \override #'(dot-color . white) {\fret-diagram-terse #'"3 5;2 3 5;2 4 5;2 4 5;3 5;2 3;" } r r r} >> </score> === Bm7-Form === <score> << \new ChordNames { \chordmode { % \set chordChanges = ##t b1:m7 b:m7 c:m7 c:m7 } } \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'white \override FretBoard.fret-diagram-details.orientation = #'landscape < b,-1 d a-2 b >1 % Bm < b,-1 d a-2 d'-3 >1 % Bm < c-3 es-1 bes-4 c'-1 >1 % Cm7 < c-2 es-1 bes-3 es'-4 >1 % Cm7 }>> </score> ===Schneeflöckchen, Weißröckchen=== <pre> Schneeflöckchen, Weißröckchen A E E A Schneeflöckchen, Weißröckchen, wann kommst du geschneit; A D E A Du wohnst in den Wolken, dein Weg ist so weit. A E E A Komm, setz dich ans Fenster, du lieblicher Stern; A D E A Malst Blumen und Blätter, wir haben dich gern. A E E A Schneeflöckchen, du deckst uns die Blümelein zu, A D E A Dann schlafen sie sicher in himmlischer Ruh'. A E E A Schneeflöckchen, Weißröckchen, komm zu uns ins Tal; A D E A dann baun wir den Schneemann und werfen den Ball. <\pre> ==Test: Todoliste== <nowiki>* {{todolink|Mjchael}}</nowiki> ergibt * {{todolink|Mjchael}} <nowiki>* {{todolink|Mjchael|Link zu meiner Todoliste}}</nowiki> ergibt * {{todolink|Mjchael|Link zu meiner Todoliste}} == Anleitung, um eine Navigationsleiste zu erstellen == ===Erstelle einen Rahmen für die Navigation=== *Erstelle eine Seite *<nowiki>[[MeinBuch/ Navi]]</nowiki> *Kopiere folgenden Code in das Buch hinein <pre style="white-space:normal;"> <div class="noprint" style="background-color: {{{bg|LemonChiffon}}}; -moz-border-radius:15px; border: 2px solid {{{border|sienna}}}; padding: 5px; clear: both;">[[Bild:{{{img|Book icoline.svg}}}|right|{{{px|80}}}px]] {{rot|'''{{{index|Navigation}}}|{{{color|saddlebrown}}}}}: '''&nbsp;[[MeinBuch:_Inhalt|Inhalt]] &#124; [[MeinBuch: {{{1}}}|{{{1}}}]][[Kategorie:{{{Kategorie|{{{1}}}}}}|{{{Kategorietitel|!}}}]]<br />{{{2}}}{{#if: {{{3|}}}| <br />{{{3}}}|}}{{#if: {{{4|}}}| <br />{{{4}}}|}}{{#if: {{{5|}}}| <br />{{{5}}}|}}{{#if: {{{6|}}}| <br />{{{6}}}|}}{{#if: {{{7|}}}| <br />{{{7}}}|}}{{#if: {{{8|}}}| <br />{{{8}}}|}}{{#if: {{{9|}}}| <br />{{{9}}}|}} </div> </pre> * tausche im Quelltext "MeinBuch" durch deinen Buchtitel aus. (2x!) * tausche, je nach dem, wie du dein Buch gliederst, gegebenenfalls im Quelltext den Doppelpunkt nach "MeinBuch" einen Back-Slash ('''\''') aus (2x!) * tausche im Quelltext "Book icoline.svg" durch dein Buchlogo aus. * passe die Farben "LemonChiffon", "sienna", "saddlebrown" deinem Geschmack an * tausche den Eintrag [[MeinBuch:_Inhalt|Inhalt]] durch den Link zu der Startseite oder der Inhaltsangabe deines Buches aus. == H7 C7 C9 == <score> << \new ChordNames { \chordmode { b1:7 c:7 c:9 c:9 }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'white \override FretBoard.fret-diagram-details.orientation = #'landscape < b,-2 dis-1 a-3 b fis'-4 > % B7 < c-3 e-2 bes-4 c'-1 e' > % C7 < c-2 e-1 bes-3 d'-4 > % C9 < c-2 e-1 bes-3 d'-4 g'-4 > % 99 } >> </score> == Farbige Akkorde == <score> << \new ChordNames { \chordmode { f1 g c c b } } \new Staff { \clef "treble_8" \override Voice.TextScript.size = 1.2 \override Voice.TextScript .fret-diagram-details.finger-code = #'below-string <f, c f a c' f'>1^\markup { \fret-diagram-verbose #'( (place-fret 6 1) (place-fret 5 3) (place-fret 4 3) (place-fret 3 2) (place-fret 2 1) (place-fret 1 1) (barre 6 1 1) ) } <g, b, d g b g'>1^\markup { \fret-diagram-verbose #'( (place-fret 6 3 2) (place-fret 5 2 1) (open 4 inverted) (open 3) (open 2) (place-fret 1 3 "#5") ) } <c g c' e' g'>1^\markup { \fret-diagram-verbose #'( (mute 6) (place-fret 4 5 1) (place-fret 3 5 2) (place-fret 2 5 3) ) } <c g c' e' g'>1^\markup { \fret-diagram-verbose #'( (place-fret 6 3 1 red parenthesized default-paren-color) (place-fret 5 3 1 inverted) (place-fret 4 5 2 blue parenthesized) (place-fret 3 5 3 blue) (place-fret 2 5 4 blue) (place-fret 1 3 1 inverted) ) } <b, fis b dis' fis'>1^\markup \override #'(fret-diagram-details . ((finger-code . in-dot))) \fret-diagram-verbose #`( (place-fret 5 2 1) (place-fret 4 4 "fis" red) (place-fret 3 4 "b" red) (place-fret 2 4 ,#{ \markup \concat { \vcenter "d" \fontsize #-5 \musicglyph "accidentals.sharp"} #} red) (place-fret 1 2 1) ) } >> </score> <score> << <b, fis b dis' fis'>1^\markup { \override #'(fret-diagram-details . ((finger-code . below-string) (dot-radius . 0.3) (string-label-font-mag . 0.3))) \override #'(size . 2) \center-column { "G/B" \fret-diagram-verbose #'( (mute 6) (place-fret 5 2 "M3") (place-fret 4 0 "P5" white) (place-fret 3 0 "R" white) (place-fret 2 0 "P5" white) (place-fret 1 3 "R" red)) } \hspace #3 \override #'(fret-diagram-details . ((finger-code . below-string) (dot-radius . 0.3) (string-label-font-mag . 0.3))) \override #'(size . 2) \center-column { "C/B♭" \fret-diagram-verbose #'( (mute 6) (place-fret 5 1 "m7") (place-fret 4 2 "M3") (place-fret 3 0 "P5" white) (place-fret 2 1 "R" red) (place-fret 1 0 "M3" white)) } } >> </score> == Skalen == === Quintverwandtschaft === <score raw="1"> \version "2.14.2" \markup { \override #'(size . 2.0) { \override #'(fret-diagram-details . ( (orientation . #'landscape ) (finger-code . #'in-dot ) (dot-color . #'black) (dot-radius . 0.3) (dot-position . 0.5) (top-fret-thickness . 5) (fret-count . 13) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 1 0 "E" darkorange1 ) (place-fret 1 1 "F" turquoise ) (place-fret 1 2 red ) (place-fret 1 3 "G" yellowgreen ) (place-fret 1 4 purple ) (place-fret 1 5 "A" goldenrod1 ) (place-fret 1 6 cyan ) (place-fret 1 7 "B" orangered ) (place-fret 1 8 "C" seagreen ) (place-fret 1 9 magenta ) (place-fret 1 10 "D" yellow3 ) (place-fret 1 11 blue ) (place-fret 1 12 "E" darkorange1 ) (place-fret 2 0 "B" orangered ) (place-fret 2 1 "C" seagreen ) (place-fret 2 2 magenta ) (place-fret 2 3 "D" yellow3 ) (place-fret 2 4 blue ) (place-fret 2 5 "E" darkorange1 ) (place-fret 2 6 "F" turquoise ) (place-fret 2 7 red ) (place-fret 2 8 "G" yellowgreen ) (place-fret 2 9 purple ) (place-fret 2 10 "A" goldenrod1 ) (place-fret 2 11 cyan ) (place-fret 2 12 "B" orangered ) (place-fret 3 0 "G" yellowgreen ) (place-fret 3 1 purple ) (place-fret 3 2 "A" goldenrod1 ) (place-fret 3 3 cyan ) (place-fret 3 4 "B"orangered ) (place-fret 3 5 "C" seagreen ) (place-fret 3 6 magenta ) (place-fret 3 7 "D" yellow3 ) (place-fret 3 8 blue ) (place-fret 3 9 "E" darkorange1 ) (place-fret 3 10 "F" turquoise ) (place-fret 3 11 red ) (place-fret 3 12 "G" yellowgreen ) (place-fret 4 0 "D" yellow3 ) (place-fret 4 1 blue ) (place-fret 4 2 "E" darkorange1 ) (place-fret 4 3 "F" turquoise ) (place-fret 4 4 red ) (place-fret 4 5 "G" yellowgreen ) (place-fret 4 6 purple ) (place-fret 4 7 "A" goldenrod1 ) (place-fret 4 8 cyan ) (place-fret 4 9 "B" orangered ) (place-fret 4 10 "C" seagreen ) (place-fret 4 11 magenta ) (place-fret 4 12 "D" yellow3 ) (place-fret 5 0 "A" goldenrod1 ) (place-fret 5 1 cyan ) (place-fret 5 2 "B" orangered ) (place-fret 5 3 "C" seagreen ) (place-fret 5 4 magenta ) (place-fret 5 5 "D" yellow3 ) (place-fret 5 6 blue ) (place-fret 5 7 "E" darkorange1 ) (place-fret 5 8 "F" turquoise ) (place-fret 5 9 red ) (place-fret 5 10 "G" yellowgreen ) (place-fret 5 11 purple ) (place-fret 5 12 "A" goldenrod1 ) (place-fret 6 0 "E" darkorange1 ) (place-fret 6 1 "F" turquoise ) (place-fret 6 2 red ) (place-fret 6 3 "G" yellowgreen ) (place-fret 6 4 purple ) (place-fret 6 5 "A" goldenrod1 ) (place-fret 6 6 cyan ) (place-fret 6 7 "B" orangered ) (place-fret 6 8 "C" seagreen ) (place-fret 6 9 magenta ) (place-fret 6 10 "D" yellow3 ) (place-fret 6 11 blue) (place-fret 6 12 "E" darkorange1 ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 2.0) { \override #'(fret-diagram-details . ( (orientation . #'landscape ) (finger-code . #'in-dot ) (dot-color . #'black) (dot-radius . 0.3) (dot-position . 0.5) (top-fret-thickness . 5) (fret-count . 13) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 1 0 "E" darkorange1 ) (place-fret 1 1 "F" turquoise ) (place-fret 1 2 ) (place-fret 1 3 "G" yellowgreen ) (place-fret 1 4 ) (place-fret 1 5 "A" goldenrod1 ) (place-fret 1 6 ) (place-fret 1 7 "B" orangered ) (place-fret 1 8 "C" seagreen ) (place-fret 1 9 ) (place-fret 1 10 "D" yellow3 ) (place-fret 1 11 ) (place-fret 1 12 "E" darkorange1 ) (place-fret 2 0 "B" orangered ) (place-fret 2 1 "C" seagreen ) (place-fret 2 2 ) (place-fret 2 3 "D" yellow3 ) (place-fret 2 4 ) (place-fret 2 5 "E" darkorange1 ) (place-fret 2 6 "F" turquoise ) (place-fret 2 7 ) (place-fret 2 8 "G" yellowgreen ) (place-fret 2 9 ) (place-fret 2 10 "A" goldenrod1 ) (place-fret 2 11 ) (place-fret 2 12 "B" orangered ) (place-fret 3 0 "G" yellowgreen ) (place-fret 3 1 ) (place-fret 3 2 "A" goldenrod1 ) (place-fret 3 3 ) (place-fret 3 4 "B"orangered ) (place-fret 3 5 "C" seagreen ) (place-fret 3 6 ) (place-fret 3 7 "D" yellow3 ) (place-fret 3 8 ) (place-fret 3 9 "E" darkorange1 ) (place-fret 3 10 "F" turquoise ) (place-fret 3 11 ) (place-fret 3 12 "G" yellowgreen ) (place-fret 4 0 "D" yellow3 ) (place-fret 4 1 ) (place-fret 4 2 "E" darkorange1 ) (place-fret 4 3 "F" turquoise ) (place-fret 4 4 ) (place-fret 4 5 "G" yellowgreen ) (place-fret 4 6 ) (place-fret 4 7 "A" goldenrod1 ) (place-fret 4 8 ) (place-fret 4 9 "B" orangered ) (place-fret 4 10 "C" seagreen ) (place-fret 4 11 ) (place-fret 4 12 "D" yellow3 ) (place-fret 5 0 "A" goldenrod1 ) (place-fret 5 1 ) (place-fret 5 2 "B" orangered ) (place-fret 5 3 "C" seagreen ) (place-fret 5 4 ) (place-fret 5 5 "D" yellow3 ) (place-fret 5 6 ) (place-fret 5 7 "E" darkorange1 ) (place-fret 5 8 "F" turquoise ) (place-fret 5 9 ) (place-fret 5 10 "G" yellowgreen ) (place-fret 5 11 ) (place-fret 5 12 "A" goldenrod1 ) (place-fret 6 0 "E" darkorange1 ) (place-fret 6 1 "F" turquoise ) (place-fret 6 2 ) (place-fret 6 3 "G" yellowgreen ) (place-fret 6 4 ) (place-fret 6 5 "A" goldenrod1 ) (place-fret 6 6 ) (place-fret 6 7 "B" orangered ) (place-fret 6 8 "C" seagreen ) (place-fret 6 9 ) (place-fret 6 10 "D" yellow3 ) (place-fret 6 11) (place-fret 6 12 "E" darkorange1 ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> ===Test=== <score raw="1"> \version "2.14.2" \markup { \override #'(size . 2.0) { \override #'(fret-diagram-details . ( (orientation . #'landscape ) (finger-code . #'in-dot ) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 5) (fret-count . 13) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 1 0 "E" ) (place-fret 1 1 "F" red3 ) (place-fret 1 2 "Gb" ) (place-fret 1 3 "G" darkorange1 ) (place-fret 1 4 "Ab") (place-fret 1 5 "A" yellow3 ) (place-fret 1 6 "Bb") (place-fret 1 7 "B" seagreen ) (place-fret 1 8 "C" ) (place-fret 1 9 "Db" blue3 ) (place-fret 1 10 "D" ) (place-fret 1 11 "Eb" darkviolet ) (place-fret 1 12 "E" ) (place-fret 2 0 "B" ) (place-fret 2 1 "C" red3 ) (place-fret 2 2 "Db") (place-fret 2 3 "D" darkorange1 ) (place-fret 2 4 "Eb" ) (place-fret 2 5 "E" yellow3 ) (place-fret 2 6 "F" ) (place-fret 2 7 "F#" seagreen ) (place-fret 2 8 "G" ) (place-fret 2 9 "Ab" blue3 ) (place-fret 2 10 "A" ) (place-fret 2 11 "Bb" darkviolet ) (place-fret 2 12 "B" ) (place-fret 3 0 "G" red3 ) (place-fret 3 1 "Ab" ) (place-fret 3 2 "A" darkorange1 ) (place-fret 3 3 "Bb" ) (place-fret 3 4 "B"yellow3 ) (place-fret 3 5 "C" ) (place-fret 3 6 "C#" seagreen ) (place-fret 3 7 "D" ) (place-fret 3 8 "Eb" blue3 ) (place-fret 3 9 "E" ) (place-fret 3 10 "F" darkviolet ) (place-fret 3 11 "Gb" ) (place-fret 3 12 "G" deeppink2 ) (place-fret 4 0 "D" red3 ) (place-fret 4 1 "Eb" ) (place-fret 4 2 "E" darkorange1 ) (place-fret 4 3 "F" ) (place-fret 4 4 "F#" yellow3 ) (place-fret 4 5 "G" ) (place-fret 4 6 "G#" seagreen ) (place-fret 4 7 "A" ) (place-fret 4 8 "Bb"blue3 ) (place-fret 4 9 "B" ) (place-fret 4 10 "C" darkviolet ) (place-fret 4 11 "Db" ) (place-fret 4 12 "D" deeppink2 ) (place-fret 5 0 "A" red3 ) (place-fret 5 1 "Bb" ) (place-fret 5 2 "B" darkorange1 ) (place-fret 5 3 "C" ) (place-fret 5 4 "C#" yellow3 ) (place-fret 5 5 "D" ) (place-fret 5 6 "D#" seagreen ) (place-fret 5 7 "E" ) (place-fret 5 8 "F" blue3 ) (place-fret 5 9 "F#") (place-fret 5 10 "G" darkviolet ) (place-fret 5 11 "Ab" ) (place-fret 5 12 "A" deeppink2 ) (place-fret 6 0 "E" red3 ) (place-fret 6 1 "F" ) (place-fret 6 2 "F#" darkorange1 ) (place-fret 6 3 "G" ) (place-fret 6 4 "G#" yellow3 ) (place-fret 6 5 "A" ) (place-fret 6 6 "A#" seagreen ) (place-fret 6 7 "B" ) (place-fret 6 8 "C" blue3 ) (place-fret 6 9 "C#" ) (place-fret 6 10 "D" darkviolet ) (place-fret 6 11 "Eb" ) (place-fret 6 12 "E" deeppink2 ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> ====Posten==== <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . #'landscape ) (finger-code . #'in-dot ) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 5) (fret-count . 7) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 1 0 "E" ) (place-fret 1 1 "F" red3 ) (place-fret 1 2 "Gb" ) (place-fret 1 3 "G" darkorange1 ) (place-fret 1 4 "Ab") (place-fret 1 5 "A" yellow3 ) (place-fret 1 6 "Bb") (place-fret 1 7 "B" seagreen ) (place-fret 2 0 "B" ) (place-fret 2 1 "C" red3 ) (place-fret 2 2 "Db") (place-fret 2 3 "D" darkorange1 ) (place-fret 2 4 "Eb" ) (place-fret 2 5 "E" yellow3 ) (place-fret 2 6 "F" ) (place-fret 2 7 "G#" seagreen ) (place-fret 3 0 "G" red3 ) (place-fret 3 1 "Ab" ) (place-fret 3 2 "A" darkorange1 ) (place-fret 3 3 "Bb" ) (place-fret 3 4 "B"yellow3 ) (place-fret 3 5 "C" ) (place-fret 3 6 "C#" seagreen ) (place-fret 3 7 "D" ) (place-fret 4 0 "D" red3 ) (place-fret 4 1 "Eb" ) (place-fret 4 2 "E" darkorange1 ) (place-fret 4 3 "F" ) (place-fret 4 4 "F#" yellow3 ) (place-fret 4 5 "G" ) (place-fret 4 6 "G#" seagreen ) (place-fret 4 7 "A" ) (place-fret 5 0 "A" red3 ) (place-fret 5 1 "Bb" ) (place-fret 5 2 "B" darkorange1 ) (place-fret 5 3 "C" ) (place-fret 5 4 "C#" yellow3 ) (place-fret 5 5 "D" ) (place-fret 5 6 "D#" seagreen ) (place-fret 5 7 "E" ) (place-fret 6 0 "E" red3 ) (place-fret 6 1 "F" ) (place-fret 6 2 "F#" darkorange1 ) (place-fret 6 3 "G" ) (place-fret 6 4 "G#" yellow3 ) (place-fret 6 5 "A" ) (place-fret 6 6 "A#" seagreen ) (place-fret 6 7 "B" ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . #'landscape ) (finger-code . #'in-dot ) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 5) (fret-count . 7) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 1 6 "Bb") (place-fret 1 7 "B" seagreen ) (place-fret 1 8 "C" ) (place-fret 1 9 "Db" blue3 ) (place-fret 1 10 "D" ) (place-fret 1 11 "Eb" darkviolet ) (place-fret 1 12 "E" ) (place-fret 2 6 "F" ) (place-fret 2 7 "F#" seagreen ) (place-fret 2 8 "G" ) (place-fret 2 9 "Ab" blue3 ) (place-fret 2 10 "A" ) (place-fret 2 11 "Bb" darkviolet ) (place-fret 2 12 "B" ) (place-fret 3 6 "C#" seagreen ) (place-fret 3 7 "D" ) (place-fret 3 8 "Eb" blue3 ) (place-fret 3 9 "E" ) (place-fret 3 10 "F" darkviolet ) (place-fret 3 11 "Gb" ) (place-fret 3 12 "G" deeppink2 ) (place-fret 4 6 "G#" seagreen ) (place-fret 4 7 "A" ) (place-fret 4 8 "Bb"blue3 ) (place-fret 4 9 "B" ) (place-fret 4 10 "C" darkviolet ) (place-fret 4 11 "Db" ) (place-fret 4 12 "D" deeppink2 ) (place-fret 5 6 "D#" seagreen ) (place-fret 5 7 "E" ) (place-fret 5 8 "F" blue3 ) (place-fret 5 9 "F#") (place-fret 5 10 "G" darkviolet ) (place-fret 5 11 "Ab" ) (place-fret 5 12 "A" deeppink2 ) (place-fret 6 6 "A#" seagreen ) (place-fret 6 7 "B" ) (place-fret 6 8 "C" blue3 ) (place-fret 6 9 "C#" ) (place-fret 6 10 "D" darkviolet ) (place-fret 6 11 "Eb" ) (place-fret 6 12 "E" deeppink2 ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> === Skala === <score> << \new Staff { \new Voice = “scale” \relative c { <f-1\6>4^\markup { \override #'(size . 5.0) { \override #'(fret-diagram-details . ( (orientation . #'landscape ) (finger-code . #'in-dot ) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 7) (fret-count . 5)) ) \fret-diagram-verbose #'( (place-fret 6 12 3 ) (place-fret 6 13 4 gold ) (place-fret 6 15 5 ) (place-fret 5 12 6 darkgreen ) (place-fret 5 14 "j7" gold) (place-fret 5 15 1 ) (place-fret 4 12 2 darkgreen ) (place-fret 4 14 3 ) (place-fret 4 15 4 gold ) (place-fret 3 12 5 ) (place-fret 3 14 6 darkgreen ) (place-fret 2 12 "j7" gold ) (place-fret 2 13 1 ) (place-fret 2 15 2 darkgreen ) (place-fret 1 12 3 ) (place-fret 1 13 4 gold ) (place-fret 1 15 5 ) ) } } <g-2> <a-4> <b-1\5> | } } >></score> (place-fret 12 1 1 inverted) == Akkordtabelle kurz == {| class="wikitable" border="1" |-style="background:#B9FFC5" |- !Tonart ▼ !colspan="3"|Dur-Akkorde !colspan="3"|Moll-Akkorde !colspan="2"|Moll-Dominante<br>und 7. Akkordstufe !Vorzeichen |-style="background:#CCCCC; font-weight: bold;" !Akkord&shy;stufen ▶ |4<br>IV |1<br>I |5<br>V |2<br>II |6<br>VI |3<br>III |(3⁷)<br>(III⁷) |j7<br>VII° <!-- |-style="background:#ffddff" !Gb&nbsp;/&nbsp;Ebm |Cb&nbsp;(!) |Gb |Db<sup>(7)</sup> |Abm |Ebm |Bbm |(Bb7) |Fm7b5 |bbbbbb(6) |-style="background:#ff99DD !Db&nbsp;/&nbsp;Bbm |Gb |Db |Ab<sup>(7)</sup> |Ebm |Bbm |Fm |(F7) |Cm7b5 |bbbbb(5) |-style="background:#ff9999" !Ab&nbsp;/&nbsp;Fm |Db |Ab |Eb<sup>(7)</sup> |Bbm |Fm |Cm |(C7) |Gm7b5 |bbbb(4) |-style="background:#ffdd99" !Eb&nbsp;/&nbsp;Cm |Ab |Eb |Bb<sup>(7)</sup> |Fm |Cm |Gm |(G7) |Dm7b5 |bbb(3) |-style="background:#ffff99" !Bb&nbsp;/&nbsp;Gm |Eb |Bb |F<sup>(7)</sup> |Cm |Gm |Dm |(D7) |Am7b5 |bb(2) |-style="background:#ddff99" !F&nbsp;/&nbsp;Dm |Bb |F |C<sup>(7)</sup> |Gm |Dm |Am |(A7) |Em7b5 |b(1) --> |-style="background:#99FF99; font-weight: bold;" !C&nbsp;/&nbsp;Am |F |'''C''' |G<sup>(7)</sup> |Dm |'''Am''' |Em |(E7) |Bm7b5 |0b 0# |-style="background:#99ffdd" !G&nbsp;/&nbsp;Em |C |'''G''' |D<sup>(7)</sup> |Am |'''Em''' |Bm |(H7) |F#m7b5 |# (1) |-style="background:#99ffff" !D&nbsp;/&nbsp;Bm |G |'''D''' |A<sup>(7)</sup> |Em |'''Bm''' |F#m |(F#7) |C#m7b5 |##(2) |-style="background:#99ddff" !A&nbsp;/&nbsp;F#m |D |'''A''' |E<sup>(7)</sup> |Bm |'''F#m''' |C#m |(C#7) |G#m7b5 |###(3) |-style="background:#9999ff" !E&nbsp;/&nbsp;C#m |A |'''E''' |B<sup>(7)</sup> |F#m |'''C#m''' |G#m |(G#7) |D#m7b5 |####(4) |-style="background:#dd99ff" !B&nbsp;/&nbsp;G#m |E |'''B''' |F#<sup>(7)</sup> |C#m |'''G#m''' |D#m |(D#7) |A#m7b5 |#####(5) <!-- |-style="background:#ffddff" !F#&nbsp;/&nbsp;D#m |B |F# |C#<sup>(7)</sup> |G#m |D#m |A#m |(A#7) |E#m7b5 (!) |######(6) --> |} = TEST = <score sound="1" raw="1"> \version "2.20.0" \header { title="Problem: Triads in der G-Form" subtitle="auf den unteren drei Saiten" subsubtitle="Dreiklänge auf den Diskantsaiten" arranger = "CC-BY-SA Wikibooks (mjchael)" } myKey = { \tempo 4 = 60 %Tempo ausblenden \set Score.tempoHideNote = ##t \clef "G_8" \time 4/4 \key c \major } myDiskant = { \set Staff.midiInstrument = #"electric guitar (jazz)" \stemUp \override NoteHead #'color = #darkgreen < g' b' d'' >1^\markup { \override #'(size . 2) %% Akkorddiagramm in Farbe { \override #'( fret-diagram-details . ( (orientation . #'landscape ) (finger-code . #'in-dot ) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) ) ) % \fret-diagram-verbose #'( (place-fret 1 10 "D" darkgreen ) (place-fret 2 12 "B" darkblue ) (place-fret 3 12 "G" black ) ) } } % G \override NoteHead #'color = #red < g' b' g'' >1^\markup { \override #'(size . 2) { \override #'( fret-diagram-details . ( (orientation . #'landscape ) (finger-code . #'in-dot ) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) ) ) \fret-diagram-verbose #'( (place-fret 1 15 "G" black ) (place-fret 2 12 "B" darkblue ) (place-fret 3 12 "G" black ) ) } } % Gno5 \override NoteHead #'color = #red < g' d'' g'' >1^\markup { \override #'(size . 2) %% Akkorddiagramm in Farbe { \override #'( fret-diagram-details . ( (orientation . #'landscape ) (finger-code . #'in-dot ) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) ) ) \fret-diagram-verbose #'( (place-fret 1 15 "G" black ) (place-fret 2 15 "D" darkgreen ) (place-fret 3 12 "G" black ) ) } } % G5 \override NoteHead #'color = #darkgreen < b' d'' g'' >1^\markup { \override #'(size . 2) { \override #'( fret-diagram-details . ( (orientation . #'landscape ) (finger-code . #'in-dot ) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) ) ) \fret-diagram-verbose #'( (place-fret 1 15 "G" black ) (place-fret 2 15 "D" darkgreen ) (place-fret 3 16 "B" darkblue ) ) } } % G } myChords = \chordmode { g1 \once \override ChordName.text = "G(no5)" g:3 g:5 g } myGuitar = \myDiskant %% Layout \score { << %% Akkordnamen \new ChordNames { \myChords } %% Noten \new Voice { \myKey \myGuitar } %% Tabulatur \new TabStaff { \tabFullNotation < g' b' d'' >1 % G < g' b' g'' >1 % Gno5 < g' d'' g'' >1 % G5 < b' d'' g'' >1 % G } >> \layout { \omit Voice.StringNumber \context { \Score \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/30) } } } %% Migiausgabe \score { << \unfoldRepeats { \new Staff << \myKey \myDiskant >> } >> \midi {} } %& unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> =Test2= =häufig genutzte Textbausteine= == Lilypond == === Tabulatur === === Lied mit Pseudo-Gitarrenbegleitung === <syntaxhighlight lang="latex"> <score sound="1" raw="1"> \version "2.20.0" \header { title = "MeinTitel" % subtitle = "MeinSubtitle" % poet = "Texter" % composer = "Komponist" % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key d\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myD = \chordmode { d,4 d d, d } myA = \chordmode { a,,4 a, a,, a, } myDA = \chordmode { d,4 d a,, a, } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myD \myA \myDA \myD } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c''{ a4 fis4 2 | g4 e4 2 | d4 fis a a | d,1 | \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Häns -- chen klein | ging al -- lein | in das Haus hin | -- ein. | } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> </syntaxhighlight> ;ergibt <score sound="1" raw="1"> \version "2.20.0" \header { title = "MeinTitel" % subtitle = "MeinSubtitle" % poet = "Texter" % composer = "Komponist" % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key d\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myD = \chordmode { d,4 d d, d } myA = \chordmode { a,,4 a, a,, a, } myDA = \chordmode { d,4 d a,, a, } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myD \myA \myDA \myD d,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c''{ a4 fis4 2 | g4 e4 2 | d4 fis a a | d,1 | \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Häns -- chen klein | ging al -- lein | in das Haus hin | -- ein. | } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Tab + Chord + Chorddiagram ==== <pre> <score sound="1" raw="1"> \version "2.20.0" \header { title="Basis-Pattern" encoder="mjchael" } myChords = \chordmode { %% nur nötig, wenn Akkorde erklingen sollen. % \set Staff.midiInstrument = #"acoustic guitar (nylon)" % \set chordChanges = ##t d1 } myDiskantWithChords = { d8^\markup { \override #'(fret-diagram-details . ((orientation . landscape))) \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;" } d' a fis' d d' a fis' \mark "4x" } myDiskant = { d8 d' a fis' d d' a fis' \mark "4x" } myBass = { d4 a d a } % Layout \score { << %% Akkordnamen \new ChordNames { \chordmode { \myChords } } { %% Noten \new Staff << \tempo 4 = 120 %% Tempo ausblenden \set Score.tempoHideNote = ##t \time 4/4 \key d \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 %% Balken nur über viertel Noten, nicht über halbe Noten \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/4) \set Timing.beatStructure = #'(1 1 1 1) % Noten im Diskant \myDiskantWithChords \\ %% Noten im Bass \myBass >> } %% Tabulatur \new TabStaff { \tabFullNotation %\repeat volta 4 << %% Tabulatur im Diskant \myDiskant \\ %% Tabulatur im Bass \myBass >> } >> \layout {} } % Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \key d \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 \myDiskant \\ \repeat volta 4 \myBass >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=70\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> </pre> ; Ergibt <score sound="1" raw="1"> \version "2.20.0" \header { title="Basis-Pattern" encoder="mjchael" } myChords = \chordmode { %% nur nötig, wenn Akkorde erklingen sollen. % \set Staff.midiInstrument = #"acoustic guitar (nylon)" % \set chordChanges = ##t d1 } myDiskantWithChords = { d8^\markup { \override #'(fret-diagram-details . ((orientation . landscape))) \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;" } d' a fis' d d' a fis' \mark "4x" } myDiskant = { d8 d' a fis' d d' a fis' \mark "4x" } myBass = { d4 a d a } % Layout \score { << %% Akkordnamen \new ChordNames { \chordmode { \myChords } } { %% Noten \new Staff << \tempo 4 = 120 %% Tempo ausblenden \set Score.tempoHideNote = ##t \time 4/4 \key d \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 %% Balken nur über viertel Noten, nicht über halbe Noten \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/4) \set Timing.beatStructure = #'(1 1 1 1) % Noten im Diskant \myDiskantWithChords \\ %% Noten im Bass \myBass >> } %% Tabulatur \new TabStaff { \tabFullNotation %\repeat volta 4 << %% Tabulatur im Diskant \myDiskant \\ %% Tabulatur im Bass \myBass >> } >> \layout {} } % Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \key d \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 \myDiskant \\ \repeat volta 4 \myBass >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=70\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Übung Nr. ?? ==== ;Als Versuch mal einen Choral. <score sound="1" raw="1"> \version "2.20.0" \header { title="3. Fingersatz (G-Form) in D-Dorisch" subtitle="Christ lag in Todesbanden" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #4 \set TabStaff.restrainOpenStrings = ##t \override Score.TimeSignature.stencil=##f a2 g4 a c d c (b) a r \bar"" a f g a g (f) e4 d2 \bar"'" a' g4 a c d c (b) a r \bar"" a f g a g8 (f) e4 d2 \bar"'" d4 f g d f g a r8 \bar"" a d4 c d (e) c b a r8 \bar"" a c4 a c g f8 (d) e4 d \bar"'" a' g8 (f e4) d1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ===Akkorde sollen nicht erklingen=== <pre> <score midi="1" vorbis="1"> << % Akkordnamen (siehe auch: \midi) \new ChordNames { \chordmode { c2 c:/b a1:m f g } } ... >> \layout {} \midi { % Notennamen sollen nicht erklingen \context { \ChordNames \remove "Staff_performer" } } </score> </pre> Alternativ: einen eigenen Score für Layout und einen anderen für Midi erstellen. Dazu arbeitet man besser mit Variablen im Raw-Modus. s.u. === Basis-Pattern (optimierter Code) === ;Problem 1 Kompletter Frescobaldi-Code funktioniert nur mit Raw-Modus (raw="1"). ;Problem 2 raw="1" erzeugt eine DinA4 Ausgabe, was für kleine Beispiele überdimensioniert ist. ;Lösung: Papierdefinitionen überschreiben mit \paper {...} <pre> <score sound="1" raw="1"> \version "2.20.0" \header { title="Basis-Pattern" encoder="mjchael" } %Diskant- bzw. Melodiesaiten Diskant = { c8 c' g e' b, c' g e' | % 1 Basis a,8 c' a e' e c' a e' | % 2 Basis f8 c' a f' a, c' a f' | % 3 Basis g,8 b g g' b, b g g' | % 4 Basis \mark "4x" } %Basssaiten, die hier nur mit dem Daumen gespielt werden. Bass = { c4 g b, g a, a e a f a a, a g, g b, g } % Layout- bzw. Bildausgabe \score { << \new ChordNames { \chordmode { c2 c:/b a1:m f g } } { %Noten \new Staff << \tempo 4 = 120 %Tempo für die kurzen Beispiele ausblenden \set Score.tempoHideNote = ##t \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 % Balken nur über viertel Noten, nicht über halbe Noten \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/4) \set Timing.beatStructure = #'(1 1 1 1) % Noten im Diskant \Diskant \\ % Noten im Bass - beachte: Wiederholungszeichen ist für Midi notwendig! \repeat volta 4 \Bass >> } % Tabulatur \new TabStaff { \tabFullNotation \repeat volta 4 << % Tabulatur im Diskant \Diskant \\ % Tabulatur im Bass \Bass >> } >> \layout {} } % Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 \Diskant \\ \repeat volta 4 \Bass >> } >> \midi {} } % unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> </pre> Kopiere den Code nach Frescobaldi und kommentiere den Score-Tag mit % aus, damit Frescobaldi diesen ignoriert. <pre> %<score sound="1" raw="1"> ... %</score> </pre> ;ergibt: <score sound="1" raw="1"> \version "2.20.0" \header { title="Basis-Pattern" encoder="mjchael" } %Diskant- bzw. Melodiesaiten Diskant = { c8 c' g e' b, c' g e' | % 1 Basis a,8 c' a e' e c' a e' | % 2 Basis f8 c' a f' a, c' a f' | % 3 Basis g,8 b g g' b, b g g' | % 4 Basis \mark "4x" } %Basssaiten, die hier nur mit dem Daumen gespielt werden. Bass = { c4 g b, g a, a e a f a a, a g, g b, g } % Layout- bzw. Bildausgabe \score { << \new ChordNames { \chordmode { c2 c:/b a1:m f g } } { %Noten \new Staff << \tempo 4 = 120 %Tempo ausblenden \set Score.tempoHideNote = ##t \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 % Balken nur über viertel Noten, nicht über halbe Noten \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/4) \set Timing.beatStructure = #'(1 1 1 1) % Noten im Diskant \Diskant \\ % Noten im Bass - beachte: Wiederholungszeichen ist für Midi notwendig! \repeat volta 4 \Bass >> } % Tabulatur \new TabStaff { \tabFullNotation \repeat volta 4 << % Tabulatur im Diskant \Diskant \\ % Tabulatur im Bass \Bass >> } >> \layout {} } % Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 \Diskant \\ \repeat volta 4 \Bass >> } >> \midi {} } % unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Schlagzeug === <score sound="1" raw="1"> \version "2.20.0" \header { title = "Schlagzeug" subtitle = "Töne und Bezeichnung" } myLyrics = \lyricmode { cymc cyms cymr hh hhc hho hhho hhp cb hc bd sn ss tomh tommh tomml toml tomfh tomfl } myDrum = \drummode { cymc cyms cymr hh hhc hho hhho hhp \break cb hc bd sn ss tomh tommh tomml toml tomfh tomfl s16 } \score { << \new DrumStaff \with { % \remove Bar_engraver % \remove Time_signature_engraver % \hide Stem % \override Stem.Y-extent = ##f } \myDrum \new Lyrics \myLyrics >> \layout {} \midi {} } \paper { indent=0\mm line-width=120\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <score sound="1" raw="1"> \version "2.20.0" \header { title = "Schlagzeugbeispiel" subtitle = "Einfacher 4/4-Takt" } % cymc cyms cymr hh hhc hho hhho hhp % cb hc bd sn ss tomh tommh tomml toml tomfh tomfl s16 myHands = \drummode { hh16 hh hh hh hh hh hh hh hho8 hhc hh16 hh hh hh } myFeeds = \drummode { <bd snare>4 sn8. 16 bd4 sn4 } myDrum = { \new DrumStaff << \new DrumVoice { \voiceOne \myHands } \\ { \voiceTwo \myFeeds} >> } \score { << \new DrumStaff \with { \remove Bar_engraver \remove Time_signature_engraver \hide Stem \override Stem.Y-extent = ##f } \myDrum >> \layout {} \midi {} } \paper { indent=0\mm line-width=120\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === C-Dur- bzw. A-Moll-Tonleiter === <pre> === C-Dur- bzw. A-Moll-Tonleiter === ;in der G-Dur- bzw. E-Moll-Form <score sound="1" raw="1"> \version "2.20.0" \header { title = "Übung 1" subtitle = "reine Skala" } Melody = { \set Staff.midiInstrument = "electric guitar (clean)" \repeat volta 2 { \stemUp \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t a,8 b, c d e f g a | b8 c' d' e' f' g' a' b' | c''8 b' a' g' f' e' d' c' | b8 a g f e d c a, | } } Gitarre = \Melody \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 100 \key c \major \set Score.tempoHideNote = ##t \Gitarre } \new TabStaff { \Gitarre } >> \layout { } } \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 100 \key c \major \unfoldRepeats \Gitarre } >> \midi { } } \paper { indent=0\mm line-width=120\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> </pre> ergibt (ohne Überschrift - s.o.): ;in der G-Dur- bzw. E-Moll-Form <score sound="1" raw="1"> \version "2.20.0" \header { title = "Übung 1" subtitle = "reine Skala" } Melody = { \set Staff.midiInstrument = "electric guitar (clean)" \repeat volta 2 { \stemUp \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t a,8 b, c d e f g a | b8 c' d' e' f' g' a' b' | c''8 b' a' g' f' e' d' c' | b8 a g f e d c a, | } } Gitarre = \Melody \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 100 \key c \major \set Score.tempoHideNote = ##t \Gitarre } \new TabStaff { \Gitarre } >> \layout { } } \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 100 \key c \major \unfoldRepeats \Gitarre } >> \midi { } } \paper { indent=0\mm line-width=120\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Skalen ==== <score> \new Staff{ c'1^\markup { \fret-diagram-terse #"2 4 6;x;o;1 2;3 9;1 5 12;"} <d a d' f'>1^\markup { \override #'(fret-diagram-details . ((orientation . landscape))) \fret-diagram-verbose #'( (mute 6) (place-fret 6 2) (place-fret 6 4) (place-fret 6 5) (place-fret 6 8) (mute 5) (open 4) (place-fret 3 2) (place-fret 3 5) (place-fret 2 3) (place-fret 1 1) ) } } </score> == CAGED == <score raw="1"> \version "2.14.2" \markup \override #'(fret-diagram-details . ( (number-type . roman-upper) (finger-code . in-dot) (orientation . landscape))) { %% s:3 = 3x so groß %% f:1 zeigt Finger als Kreise %% f:2 zeigt Finger neben den Saiten %% 6-3-2 Saite-Bund-Finger %% oder %% 6-3-2 Saite-Bund-Intervall %% 4-o zeigt 4. Saite offen \fret-diagram #"s:3;f:1; 1-12-3;1-13-4;1-15-5; 2-12-7;2-13-1;2-15-2; 3-12-5;3-14-6; 4-12-2;4-14-3;4-15-4; 5-12-6;5-14-7;5-15-1; 6-12-3;6-13-4;6-15-5;" \fret-diagram #"s:3;f:1; 1-12-3;1-13-4;1-15-5; 2-12-7;2-13-1;2-15-2; 3-12-5;3-14-6; 4-12-2;4-14-3;4-15-4; 5-12-6;5-14-7;5-15-1; 6-12-3;6-13-4;6-15-5;" \fret-diagram #"s:3;f:1; 1-12-3;1-13-4;1-15-5; 2-12-7;2-13-1;2-15-2; 3-12-5;3-14-6; 4-12-2;4-14-3;4-15-4; 5-12-6;5-14-7;5-15-1; 6-12-3;6-13-4;6-15-5;" } \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> === ABC-Notation === {{:Regal:Musik/ Vorlage:ABC-Notation}} [[Regal:Musik/ Vorlage:ABC-Notation]] ;Nützliche Links * http://www.mediawiki.org/wiki/Extension:Score * http://abcnotation.com/examples <score lang="ABC"> X:1 M:C L:1/4 K:C "C"C, D, E, F,|G, A, B, C|D E F G|A B c d| w: C D E F G e f g a|b c' d' e'|f' g' a' b'|] </score>. ===Melodie und Text=== <pre> <score> { \key d \major \time 2/2 \relative c' { \partial 2 d2 | e2 g2 e2} \addlyrics {A boy was born } } </score> </pre> ; ergibt <score> { \key d \major \time 2/2 \relative c' { \partial 2 d2 | e2 g2 e2} \addlyrics {A boy was born } } </score> === Rhyhtmusnotation mit Lilypond === <pre><score sound="1" raw="1"> \version "2.20.0" \header { title="4/4-Schlag mit D und A-Dur im Wechsel" encoder="mjchael" } myChords = \new ChordNames { \chordmode { d1 a d a }} myRhythm = { \repeat volta 4 { <a d a>4 \downbow <a d' fis'> \downbow <a d a>4 \downbow <a d' fis'> \downbow <e, a e>4 \downbow <a cis' e'> \downbow <e, a e>4 \downbow <a cis' e'> \downbow <a d a>4 \downbow <a d' fis'> \downbow <a d a>4 \downbow <a d' fis'> \downbow <e, a e>4 \downbow <a cis' e'> \downbow <e, a e>4 \downbow <a cis' e'> \downbow \mark "4x" }} \score { << %layout \myChords \new Voice \with { \consists "Pitch_squash_engraver" }{ \set Staff.midiInstrument = "acoustic guitar (nylon)" \improvisationOn \override NoteHead.X-offset = 0 \myRhythm } >> \layout{} } \score { << % midi \unfoldRepeats { \tempo 4 = 120 \time 4/4 \key d \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \myRhythm <a d a d' fis'>1 \downbow } >> \midi{} } \paper { indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> </pre> ; ergibt: <score sound="1" raw="1"> \version "2.20.0" \header { title="4/4-Schlag mit D und A-Dur im Wechsel" encoder="mjchael" } myChords = \new ChordNames { \chordmode { d1 a d a }} myRhythm = { \repeat volta 4 { <a d a>4 \downbow <a d' fis'> \downbow <a d a>4 \downbow <a d' fis'> \downbow <e, a e>4 \downbow <a cis' e'> \downbow <e, a e>4 \downbow <a cis' e'> \downbow <a d a>4 \downbow <a d' fis'> \downbow <a d a>4 \downbow <a d' fis'> \downbow <e, a e>4 \downbow <a cis' e'> \downbow <e, a e>4 \downbow <a cis' e'> \downbow \mark "4x" }} \score { << % layout \myChords \new Voice \with { \consists "Pitch_squash_engraver" }{ \set Staff.midiInstrument = "acoustic guitar (nylon)" \improvisationOn \override NoteHead.X-offset = 0 \myRhythm } >> \layout{} } \score { << % midi \unfoldRepeats { \tempo 4 = 120 \time 4/4 \key d \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \myRhythm <a d a d' fis'>1 \downbow } >> \midi{} } \paper { indent=0\mm line-width=120\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ;Danke an Malte vom Lilipond-Forum für seine Unterstützung! {{smiley}} --[[Benutzer:Mjchael|mjchael]] 19:25, 6. Jul. 2019 (CEST) ==== Alles auf einer Linie ==== <score sound="1"> << \new RhythmicStaff { \new Voice = "myRhythm" \relative { \set Staff.midiInstrument = #"lead 7 (fifths)" \time 4/4 c 4 e8 f g2 r4 g g f g1 } } \new Lyrics { \lyricsto "myRhythm" { This is my song I like to sing } } >> </score> ===Modales Transponieren=== \modalTranspose c e'' { c d e f g a b } { c b, a, g, } <score vorbis="1"> { \clef treble \modalTranspose c c' { c d e f g a b } { c8 d e f } \modalTranspose c d' { c d e f g a b } { c d e f } \modalTranspose c e' { c d e f g a b } { c d e f } \modalTranspose c f' { c d e f g a b } { c d e f } \modalTranspose c g' { c d e f g a b } { c d e f } \modalTranspose c a' { c d e f g a b } { c d e f } \modalTranspose c b' { c d e f g a b } { c d e f } \modalTranspose c c'' { c d e f g a b } { c d e f } \modalTranspose c d'' { c d e f g a b } { c d e f } \modalTranspose c e'' { c d e f g a b } { c d e f } \modalTranspose c f'' { c d e f g a b } { c d e f } \modalTranspose c g'' { c d e f g a b } { c d e f } \modalTranspose c c''' { c d e f g a b } { c b, a, g, } \modalTranspose c b'' { c d e f g a b } { c b, a, g, } \modalTranspose c a'' { c d e f g a b } { c b, a, g, } \modalTranspose c g'' { c d e f g a b } { c b, a, g, } \modalTranspose c f'' { c d e f g a b } { c b, a, g, } \modalTranspose c e'' { c d e f g a b } { c b, a, g, } \modalTranspose c d'' { c d e f g a b } { c b, a, g, } \modalTranspose c c'' { c d e f g a b } { c b, a, g, } \modalTranspose c b' { c d e f g a b } { c b, a, g, } \modalTranspose c a' { c d e f g a b } { c b, a, g, } \modalTranspose c g' { c d e f g a b } { c b, a, g, } \modalTranspose c f' { c d e f g a b } { c b, a, g,~ } c'1 \bar "|." } </score> === incl. Midi-Output === <score lang="ABC" midi="1" vorbis="1"> X:1 T:Ohne Titel C:Aufgezeichnet 1784 A:Seibis nahe Lichtenberg in Oberfranken S:Handschrift, bezeichnet und datiert: "Heinrich Nicol Philipp zu Seibis den 30 Junius 1784" M:4/4 L:1/4 K:D dd d2 | ee e2 | fg ad | cB cA |\ dd d2 | ee e2 | fg ad | ed/c/ d2 :| |:\ fg ad | cB cA | fg ad | cB cA |\ dd d2 | ee e2 | fg ad | ed/c/ d2 :| </score> == A B C die Katze liegt im Schnee == <score sound="1" raw="1"> \version "2.20.0" \header { title="Folk-Pattern" encoder="mjchael" } %Diskant- bzw. Melodiesaiten Diskant = { c4 g8 e' b, c' g4 | % 1 Folk a,4 a8 e' e c' a4 | % 2 Folk f4 a8 f' a, c' a4 | % 3 Folk g,4 g8 g' b, b g4 | % 4 Folk \mark "4x" } %Basssaiten, die hier nur mit dem Daumen gespielt werden. Bass = { c4 g b, g a, a e a f a a, a g, g b, g } % Layout- bzw. Bildausgabe \score { << \new ChordNames { \chordmode { c2 c:/b a1:m f g } } { %Noten \new Staff << \tempo 4 = 120 %Tempo ausblenden \set Score.tempoHideNote = ##t \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 % Balken nur über viertel Noten, nicht über halbe Noten \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/4) \set Timing.beatStructure = #'(1 1 1 1) % Noten im Diskant \Diskant \\ % Noten im Bass - beachte: Wiederholungszeichen ist für Midi notwendig! \repeat volta 4 \Bass >> } % Tabulatur \new TabStaff { \tabFullNotation \repeat volta 4 << % Tabulatur im Diskant \Diskant \\ % Tabulatur im Bass \Bass >> } >> \layout {} } % Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 \Diskant \\ \repeat volta 4 \Bass >> } >> \midi {} } % unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Vorlage === <score sound="1" raw="1"> \version "2.20.0" \header { title="A B C die Katze liegt im Schnee (in D)" encoder="mjchael" } akkorde = \chordmode { \germanChords d2 d2 a:7 d g a g a g d a:7 d } melodie = \relative c' { \clef "treble" \time 2/4 \tempo 4 = 100 \key d\major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" d,4 fis a r8 d a8. g16 fis8 e d4 r8 a' g fis e d cis d e a g fis e d cis d e d g8. g16 fis8 d b'8. b16 a8 d a8. g16 fis8 e d4 r4 \bar "|." } text = \lyricmode { \set stanza = "1." A, B, C, die Kat -- ze lief im Schnee, und als sie dann nach Hau -- se kam, da hatt' sie wei -- ße Stie -- fel an, o je -- mi -- ne, o je -- mi -- ne, die Kat -- ze lief im Schnee. } \score { << \new ChordNames { \akkorde } \new Voice = "Lied" { \melodie } \new Lyrics \lyricsto "Lied" { \text } % Tabulatur \new TabStaff { \tabFullNotation \melodie } >> \layout { } } \score { \unfoldRepeats << \new ChordNames { \akkorde } \new Voice = "Lied" { \melodie } >> \midi { } } % unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Vereinfachen === <score sound="1" raw="1"> \version "2.20.0" \header { title="A B C die Katze liegt im Schnee (in C)" encoder="mjchael" } akkorde = \chordmode { \germanChords c2 c2 g:7 c f g f g f c g:7 c } melodie = \relative c' { \clef "treble" \time 2/4 \tempo 4 = 100 \key c\major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" c,4 e g r8 c g8. f16 e8 d c4 r8 g' f e d c b c d g f e d c b c d c f8. f16 e8 c a'8. a16 g8 c g8. f16 e8 d c4 r4 \bar "|." } text = \lyricmode { \set stanza = "1." A, B, C, die Kat -- ze lief im Schnee, und als sie dann nach Hau -- se kam, da hatt' sie wei -- ße Stie -- fel an, o je -- mi -- ne, o je -- mi -- ne, die Kat -- ze lief im Schnee. } \score { << \new ChordNames { \akkorde } \new Voice = "Lied" { \melodie } \new Lyrics \lyricsto "Lied" { \text } %% Tabulatur \new TabStaff { \tabFullNotation \melodie } >> \layout { } } \score { \unfoldRepeats << \new ChordNames { \akkorde } \new Voice = "Lied" { \melodie } >> \midi { } } % unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ;Ambitus ermitteln Tiefste Note ist C, die höchste ist C. ;Stimme in den Diskant verlegen Hier hilft die Erfahrung. Die einfachste Tonart ist C-Dur, aber die Stimme liegt zwischen den Bass- und Melodieseiten. Da ist kein Platz mehr für einen Bass und ein paar Harmonietöne. Die nächst einfache Tonart ist G-Dur. Die Noten kämen auf die Diskantsaiten, und die Basssaiten währen für die Begleitung frei. === Melodie in den Diskant === <score sound="1" raw="1"> \version "2.20.0" \header { title="A B C die Katze liegt im Schnee (in G)" encoder="mjchael" } akkorde = \chordmode { \germanChords g2 g2 d:7 g c d c d c g d:7 g } melodie = \relative g' { \clef "treble" \time 2/4 \tempo 4 = 100 \key g\major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" g,4 b d r8 g d8. c16 b8 a g4 r8 d' c b a g fis g a d c b a g fis g a g c8. c16 b8 g e'8. e16 d8 g d8. c16 b8 a g4 r4 \bar "|." } text = \lyricmode { \set stanza = "1." A, B, C, die Kat -- ze lief im Schnee, und als sie dann nach Hau -- se kam, da hatt' sie wei -- ße Stie -- fel an, o je -- mi -- ne, o je -- mi -- ne, die Kat -- ze lief im Schnee. } \score { << \new ChordNames { \akkorde } \new Voice = "Lied" { \melodie } \new Lyrics \lyricsto "Lied" { \text } % Tabulatur \new TabStaff { \tabFullNotation \melodie } >> \layout { } } \score { \unfoldRepeats << \new ChordNames { \akkorde } \new Voice = "Lied" { \melodie } >> \midi { } } % unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==Drei Chinesen mit dem Kontrabass== Lied mit simpler Akkordbegleitung. Die Begleitung ähnelt einer Gitarrenbegleitung, nutzt aber einfache Klavierakkorde ausschließlich in der Grundstellung. Um zu überprüfen ob die Klavierbegleitung der Gitarrenbegleitung einigermaßen nahe kommt, gibt es einen Schalter, der nur zu Prüfzwecken gebraucht wird. <pre> <score sound="1" raw="1"> \version "2.20.0" \header { title = "Drei Chinesen mit dem Kontrabass" composer = "T+M: Volkslied" arranger = "arr: ccbysa Mjchael" } % Akkorde myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" \set chordChanges = ##t g,,4 g, g,, g, a,,:m a,:m a,,:m a,:m d,:7 d:7 d,:7 d:7 g,, g, g,, g, g,,:7 g,:7 g,,:7 g,:7 c, c c, c d,:7 d:7 d,:7 d:7 g,, g, g,, g, } myMelody = \relative c' { \clef "treble" \time 4/4 \tempo 4 = 120 \key g\major \set Staff.midiInstrument = #"trombone" g'4. g8 g g fis g a4 a a2 a8 a a a a a g a b4 b8 b b4 r8 g d' d d d d4 b8 g e'4 e e2 d4. e8 d c b a g4 g g2 \bar "|." } myLyrics = \lyricmode { \set stanza = "1." Drei Chi -- ne -- sen mit dem Kon -- tra -- bass sa -- ßen auf der Stra -- ße und er -- zähl -- ten sich was. Da kam die Po -- li -- zei: Ja, was ist denn das? Drei Chi -- ne -- sen mit dem Kon -- tra -- bass. } \score { << \new ChordNames { \myChords } \new Voice = "Lied" { \myMelody } \new Lyrics \lyricsto "Lied" { \myLyrics } % \new TabStaff { \myChords } %%check >> \midi { } \layout { } } % unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> </pre> ;ergibt: <score sound="1" raw="1"> \version "2.20.0" \header { title = "Drei Chinesen mit dem Kontrabass" composer = "T+M: Volkslied" arranger = "arr: ccbysa Mjchael" } % Akkorde myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" \set chordChanges = ##t g,,4 g, g,, g, a,,:m a,:m a,,:m a,:m d,:7 d:7 d,:7 d:7 g,, g, g,, g, g,,:7 g,:7 g,,:7 g,:7 c, c c, c d,:7 d:7 d,:7 d:7 g,, g, g,, g, } myMelody = \relative c' { \clef "treble" \time 4/4 \tempo 4 = 120 \key g\major \set Staff.midiInstrument = #"trombone" g'4. g8 g g fis g a4 a a2 a8 a a a a a g a b4 b8 b b4 r8 g d' d d d d4 b8 g e'4 e e2 d4. e8 d c b a g4 g g2 \bar "|." } myLyrics = \lyricmode { \set stanza = "1." Drei Chi -- ne -- sen mit dem Kon -- tra -- bass sa -- ßen auf der Stra -- ße und er -- zähl -- ten sich was. Da kam die Po -- li -- zei: Ja, was ist denn das? Drei Chi -- ne -- sen mit dem Kon -- tra -- bass. } \score { << \new ChordNames { \myChords } \new Voice = "Lied" { \myMelody } \new Lyrics \lyricsto "Lied" { \myLyrics } % \new TabStaff { \myChords } %%check >> \midi { } \layout { } } % unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> == Tonleiter == <score sound="1"> { \relative c' { \clef treble c2 d4 e f g a b c1 \break c2 b4 a g f e d c1 } \addlyrics { "1" "2" "3" "4" "5" "6" "j7" "8" "8" "j7" "6" "5" "4" "3" "2" "1" } } </score> == Akkorde == <score raw="1"> \paper{ indent=0\mm line-width=120\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f } \markup \override #'(fret-diagram-details . ( (number-type . arabic) (finger-code . in-dot) )) { \fret-diagram #"s:2;f:1;6-3-2;5-2-1;5-5-4;4-4-3;" % Prozentzeuchen ist für Kommentare % s:3 vergrößert das Griffbild (3x size) % f:1 nummerierter Fingersatz % 6-3-2 = 6.Saite-3.Bund-2.Finger " " % Platzhalter \fret-diagram #"s:3;f:1;5-4-2;4-3-1;4-6-4;3-5-3;" " " \fret-diagram #"s:3;f:2;6-3-2;5-2-1;4-o;3-o;2-o;1-3-3;" % f:2 shows fingers beneath the strings % 4-o indicates 4th string is played open } </score> ==Progression== <score> << \new ChordNames { \chordmode { c1 c:/b a:m a:m/g f d:/fis g g:7 }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'white \override FretBoard.fret-diagram-details.orientation = #'landscape < c-3 e-2 g c'-1 e' > < b,-2 g c'-1 e' > < a, e-2 a-3 c'-1 e' > < g,-4 a, e-2 a-3 c'-1 e' > < f,-1 c-3 f-4 a-2 f'-1 > < fis,-2 a, d a-3 c'-1 fis'-4> < g,-3 b,-2 d g b g'-4> < g,-3 b,-2 d g b f'-1> } >> </score> = Lilypond-Probleme= == Doppelte Notenhälse == Punktierte halbe Noten im Bass ( c,2. ) erhalten in der Tabulatur zwei Notenhälse. Das ist für völlige Anfänger verwirrend. <score sound="1" raw="1"> \version "2.20.0" \header { title="3/4 mit Wechselbass" encoder="mjchael" } %Diskant- bzw. Melodiesaiten Diskant = { r4 < g c' e'> < g c' e'> | r < g c' e'> < g c' e'> | % C /B r4 < a c' e'> < a c' e'> | r < a c' e'> < a c' e'> | % Am r4 < a c' f'> < a c' f'> | r < a c' f'> < a c' f'> | % F r4 < g b g'> < g b g'> | r < g b g'> < g b g'> | % G \mark "4x" } %Basssaiten, die hier nur mit dem Daumen gespielt werden. Bass = { c2. b, a, e f a, g, b, } % Layout- bzw. Bildausgabe \score { << \new ChordNames { \chordmode { c2. c:/b a:m a:m/e f f:/a g g:/b } } { %Noten \new Staff << \tempo 4 = 120 %Tempo ausblenden \set Score.tempoHideNote = ##t \time 3/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 % Noten im Diskant \Diskant \\ % Noten im Bass - beachte: Wiederholungszeichen ist für Midi notwendig! \repeat volta 4 \Bass >> } % Tabulatur \new TabStaff { \tabFullNotation \repeat volta 4 << % Tabulatur im Diskant \Diskant \\ % Tabulatur im Bass \Bass >> } >> \layout {} } % Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 \Diskant \\ \repeat volta 4 \Bass >> } >> \midi {} } % unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Lösung === Lösche oder kommentiere \tabFullNotation aus \new TabStaff { % \tabFullNotation ... <score sound="1" raw="1"> \version "2.20.0" \header { title="3/4 mit Wechselbass" encoder="mjchael" } %Diskant- bzw. Melodiesaiten Diskant = { r4 < g c' e'> < g c' e'> | r < g c' e'> < g c' e'> | % C /B r4 < a c' e'> < a c' e'> | r < a c' e'> < a c' e'> | % Am r4 < a c' f'> < a c' f'> | r < a c' f'> < a c' f'> | % F r4 < g b g'> < g b g'> | r < g b g'> < g b g'> | % G \mark "4x" } %Basssaiten, die hier nur mit dem Daumen gespielt werden. Bass = { \override NoteHead.color = #red \override Stem.color = #red \override Beam.color = #red \override Accidental.color = #red \override Staff.LedgerLineSpanner.color = #red c2. b, a, e f a, g, b, } % Layout- bzw. Bildausgabe \score { << \new ChordNames { \chordmode { c2. c:/b a:m a:m/e f f:/a g g:/b } } { %Noten \new Staff << \tempo 4 = 120 %Tempo ausblenden \set Score.tempoHideNote = ##t \time 3/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 % Noten im Diskant \Diskant \\ % Noten im Bass - beachte: Wiederholungszeichen ist für Midi notwendig! \repeat volta 4 \Bass >> } % Tabulatur \new TabStaff { % \tabFullNotation \repeat volta 4 << % Tabulatur im Diskant \Diskant \\ % Tabulatur im Bass \Bass >> } >> \layout {} } % Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 \Diskant \\ \repeat volta 4 \Bass >> } >> \midi {} } % unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> == Stimmkreuzung == 2 Notenköpfe für einen Ton Unschöne Pausen <score lang="lilypond" > { << \clef "treble_8" { r8 g c' e' r a d' f'} \\ { c2 d } >> } </score> Unschöne doppelten Notenköpfe <score lang="lilypond" > { << \clef "treble_8" { c8 g c' e' d a d' f'} \\ { c2 d } >> } </score> ;Lösung \mergeDifferentlyHeadedOn <score lang="lilypond" > { \mergeDifferentlyHeadedOn << \clef "treble_8" { c8 g c' e' d a d' f'} \\ { c2 d } >> } </score> === Arpeggio === <score lang="lilypond" > << \new Staff { e2 \grace { c16 d e f } e2 } \new Staff { c2 \grace { g8 b } c2 } >> </score> == Guitar-Cords == \include "predefined-guitar-fretboards.ly" is not posible. <pre> <score lang="lilypond" raw="1"> \include "predefined-guitar-fretboards.ly" \version "2.16.0" mychords = \chordmode { c1 c:m c:aug c:dim c:dim7 c:7 c:maj7 c:m7 c:9 \break } ... </pre> == Eingeschobene Stimme kommt nicht in die Tabulatur == <score sound="1" raw="1"> \version "2.20.0" \header { title = " Op. 31 Etude No.1 Andante " % subtitle = " ... " % piece = " ... " composer = "Ferdinand Sor (*1778-†1839)" % opus = "Op.31" % source = "using different sources" arranger = "Mjchael" copyright = "ccbysa de.wikibooks.org/wiki/Gitarre" % footer = " ... " } Diskant = \relative c' { \set Staff.midiInstrument = "acoustic guitar (nylon)" %Part 1 \override NoteHead #'color = #red \partial 4 \repeat volta 2 { g4 e'2 c4 | g c e | g-4 f-1 d-4 | b2 g4 | g2 c4 | c b c | %% kurzfristig zweistimmig << { d2.-4~ | d } \new Voice { \override NoteHead #'color = #green %% g4\rest = 1/4 Pause in Höhe g g,4\rest g4 g | g4 g g } >> \break %% wieder einstimmigen \override NoteHead #'color = #red e'2 c4 | g c e | g-3 fis-2 f-1 | d-4 b g | c2 e4 | a,-2 d-4 b | c2 e4 | c r4 } } Bass = \relative c' { \override NoteHead #'color = #blue \partial 4 \repeat volta 2 { s4 | c,2. | e | d | f-3 | e | e4 d c | b2.-2~ | b | c2. | e | d | f-4 | e4 g c, | f2-3 g4 | c, e g | <c, e> s4 } } Gitarre = << \Diskant \\ \Bass >> \score { << \new Voice { \clef "treble_8" \time 3/4 \tempo 4 = 120 \key c \major \set Score.tempoHideNote = ##t \Gitarre } \new TabStaff { \Gitarre } >> \layout { } } \score { << \new Voice { \clef "treble_8" \time 3/4 \tempo 4 = 120 \key c \major \unfoldRepeats \Gitarre } >> \midi { } } \paper { indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <pre> <score sound="1" raw="1"> \version "2.20.0" \header { title = " Op. 31 Etude No.1 Andante " % subtitle = " ... " % piece = " ... " composer = "Ferdinand Sor (*1778-†1839)" % opus = "Op.31" % source = "using different sources" arranger = "Mjchael" copyright = "ccbysa de.wikibooks.org/wiki/Gitarre" % footer = " ... " } Diskant = \relative c' { \set Staff.midiInstrument = "acoustic guitar (nylon)" %Part 1 \override NoteHead #'color = #red \partial 4 \repeat volta 2 { g4 e'2 c4 | g c e | g-4 f-1 d-4 | b2 g4 | g2 c4 | c b c | %% kurzfristig zweistimmig << { d2.-4~ | d } \new Voice { \override NoteHead #'color = #green %% g4\rest = 1/4 Pause in Höhe g g,4\rest g4 g | g4 g g } >> \break %% wieder einstimmigen \override NoteHead #'color = #red e'2 c4 | g c e | g-3 fis-2 f-1 | d-4 b g | c2 e4 | a,-2 d-4 b | c2 e4 | c r4 } } Bass = \relative c' { \override NoteHead #'color = #blue \partial 4 \repeat volta 2 { s4 | c,2. | e | d | f-3 | e | e4 d c | b2.-2~ | b | c2. | e | d | f-4 | e4 g c, | f2-3 g4 | c, e g | <c, e> s4 } } Gitarre = << \Diskant \\ \Bass >> \score { << \new Voice { \clef "treble_8" \time 3/4 \tempo 4 = 120 \key c \major \set Score.tempoHideNote = ##t \Gitarre } \new TabStaff { \Gitarre } >> \layout { } } \score { << \new Voice { \clef "treble_8" \time 3/4 \tempo 4 = 120 \key c \major \unfoldRepeats \Gitarre } >> \midi { } } \paper { indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> </pre> == Lösung == Danke an das [https://lilypondforum.de/index.php/topic,1001.0.html LilipondForum.de] für die Hilfe. new Botton statt new Voice <pre> \new Bottom = "middle" { % \override NoteHead #'color = #green \voiceThree %% g4\rest = 1/4 Pause in Höhe g g,4\rest g4 g | g4 g g } </pre> <score sound="1" raw="1"> \version "2.20.0" \header { title = " Op. 31 Etude No.1 Andante " % subtitle = " ... " % piece = " ... " composer = "Ferdinand Sor (*1778-†1839)" % opus = "Op.31" % source = "using different sources" arranger = "Mjchael" copyright = "ccbysa de.wikibooks.org/wiki/Gitarre" % footer = " ... " } Diskant = \relative c' { \set Staff.midiInstrument = "acoustic guitar (nylon)" %Part 1 \override NoteHead #'color = #red \partial 4 \repeat volta 2 { g4 e'2 c4 | g c e | g-4 f-1 d-4 | b2 g4 | g2 c4 | c b c | %% kurzfristig zweistimmig << { d2.-4~ | d } \new Bottom = "middle" { \override NoteHead #'color = #green \voiceThree %% g4\rest = 1/4 Pause in Höhe g g,4\rest g4 g | g4 g g } >> \break %% wieder einstimmigen \override NoteHead #'color = #red e'2 c4 | g c e | g-3 fis-2 f-1 | d-4 b g | c2 e4 | a,-2 d-4 b | c2 e4 | c r4 } } Bass = \relative c' { \override NoteHead #'color = #blue \partial 4 \repeat volta 2 { s4 | c,2. | e | d | f-3 | e | e4 d c | b2.-2~ | b | c2. | e | d | f-4 | e4 g c, | f2-3 g4 | c, e g | <c, e> s4 } } Gitarre = << \Diskant \\ \Bass >> \score { << \new Voice { \clef "treble_8" \time 3/4 \tempo 4 = 120 \key c \major \set Score.tempoHideNote = ##t \Gitarre } \new TabStaff { \Gitarre } >> \layout { } } \score { << \new Voice { \clef "treble_8" \time 3/4 \tempo 4 = 120 \key c \major \unfoldRepeats \Gitarre } >> \midi { } } \paper { indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> == Formatierungstest == === Ausklappbare Box === <pre><div style="clear:both;" class="NavFrame"> <div class="NavHead">Hier stehen die Details</div> <div class="NavContent" style="text-align:left;"> Hier steht der präzisierende Text im Wiki-Format </div></div></pre> <div style="clear:both;" class="NavFrame"> <div class="NavHead">Hier stehen die Details</div> <div class="NavContent" style="text-align:left;"> Hier steht der präzisierende Text im Wiki-Format </div></div> ;Klappbox <nowiki>{{Navigationsleiste |titel=MeinTitel |inhalt=MeinInhalt}}</nowiki> {{Navigationsleiste |titel=MeinTitel |inhalt=MeinInhalt}} ;Verschachtelte Klappboxen incl. Linkangaben und Formatierung {{Navigationsleiste |titel=[[Gitarre:_Lagerfeuerdiplom|<< Lagerfeuerdiplom]] |inhalt=[[Wikibooks:Ich brauche Hilfe]] - [[Wikibooks:Löschkandidaten]] - [[Wikibooks:Verbesserungsvorschläge]] {{Navigationsleiste |titel=[[Gitarre|Bücher]] |inhalt={{:Gitarre/ Navi_Bände}} |border=1px dashed red |bgHead=pink |bgContent=yellow }} |border=1px dashed red |bgHead=pink |bgContent=yellow }} = Auf A4 vormatierter Div = <div style="height: 257mm; width: 170mm; margin: 5mm; padding: 15mm; border: 1px #333333 solid; overflow: auto;"> == Thema: Diatonische Intervalle == === Tabellen === {| border="1" | colspan="3" align="center" |ausgehend von einer Dur-Tonleiter | &nbsp; | colspan="4" align="center" |Vergleichstonart = C-Dur |- ! Tonstufen ! Intervall ! Funktion ! Modus bzw. Kirchen-tonart ! Grund-Akkord ! Septim-Akkorde ! Jazzakkorde&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ! Intervalle des Akkordes bzw. des Modus |- | 1 ( 8 ) | Prime ( Oktave ) | Tonika | ionisch | C-Dur | Cj7 | Cj7/9(/11(/13)) | 1/2/3/4/5/6/j7 |- | 2 (9) | Sekunde (None) | Subdominanten-Parallele | dorisch | D-Moll | Dm7 | Dm7/b9(/11(/13)) | 1/2/b3/4/5/6/7 |- | 3 (10) | Terz (Dezime) | Dominanten-Parallele | phrygisch | E-Moll | Em7 | Em7/b9(/11(/b13)) | 1/b2b/3/4/5/b6/7 |- | 4 (11) | Quarte(Undezime) | Subdominante | lydisch | F-Dur | Fj7 | Fj7/9(/#11(/13)) | 1/2/3/#4/5/6/j7 |- | 5 (12) | Quinte(Duodezime) | Dominante | mixolydisch | G-Dur | G7 | G7/9(/11(/13)) | 1/2/3/4/5/6/7 |- | 6 (13) | Sexte (Tredezime ) | Tonika-Parallele | äolisch | A-Moll | Am7 | Am7/9(/11(/b13)) | 1/2/b3/4/5/b6/7 |- | 7 (14) | Septime(Quartdezime) | (verminderter Septakkord oder verkürzter Dom. Septakkord ) | lokrisch | Hm/5b bzw. h0 bzw. Hdim | Hm7/b5 | Hm7/b5/b9(/11(/b13)) | 1/b2/b3/4/b5/b6/7 |} zu verkürzter Dom. Septakkord: ein verminderter m7b5 kann als ein 7/9er ohne Grundton umgedeutet werden. Hm7b5 = G7/9 ohne Grundton bzw. G7/9/H. {{Vorlage:Tipp 50px |Tipp-Test mal sehen was passiert}} === Eine Vollständige Transponier-Tabelle für alle Durtonleitern === Bei dieser Tabelle werden auch die eher untypischen Tonarten bzw. Töne wie <span style="background-color:#ffcccc;">Cb E# und H#</span> mit berücksichtigt, da diese in manchen Fällen unvermeidbar sind. Trotzdem werden sie in der Praxis wenn möglich umgangen. Trotzdem kommt man bei der Tonart F#-Dur bzw. Gb-Dur um die Erhöhung von E zu E# bzw. die Erniedrigung von C zu Cb nicht drum herum. Mann sollte aber, wenn es irgend möglich ist, diese Tonart einfach meiden (oder als Gitarrenspieler einfach mit einem Capo spielen und dann die Tonart F angeben...) Solche seltsamen Töne können übrigens auch bei einigen Jazz-Akkorden oder Molltonarten (z.B. Verminderte oder übermäßige Akkorde) unvermeidbar sein. Die Unart einiger Hobby-Musiker ist es, für ihre Akkorde bevorzugt Kreuztonarten zu wählen. Wenn man nur drei oder vier Akkorde aufzeichnen will, mag man als Gitarrenspieler auch damit zurecht kommen. Solange es nur um die Position von Akkordbildern auf dem Griffbrett geht, müsste man sich darum auch keine weiteren Gedanken machen. Probleme entstehen erst, wenn ein Gitarrenspieler in einer Band spielt, und er den anderen Musikern erklären soll, was er da eigentlich spielt. Ein Gitarrenspieler, der nur Kreuztonarten verwendet, hat sich wahrscheinlich nie Gedanken darüber gemacht, wie eigentlich die restlichen Töne des Akkordes heißen müssten. Es kommen nämlich für den Klavierspieler oder Saxophonisten einige doppelt erhöhte Töne wie <span style="background-color:#ff3333;">Cisis und Fisis</span> hinzu, die dieser erst einmal verdauen muss. Und auch wenn man selbst herumtrickst, und Cisis als D und Fissis als G bezeichnet, so verzeiht einem ein halbwegs anständig programmiertes Noten- oder Tabulatur-Programm nicht solche Fehler, und spuckt unlesbare Noten und Tabulaturen aus. Natürlich möchte ein Musiker in der Praxis nur ungerne mit solchen Tönen umgehen. Trotz der ganzen Vorrede wurden diese exotischen Tonarten mit aufgeführt; ;Jedoch nicht um sie zu verwenden, ;sondern um sie zu meiden. Denn woher sollte ein Musiker sonst wissen, das man einen D#-Dur-Akkord '''NICHT''' verwenden sollte, da dessen Dur-Terz ein <span style="background-color:#ff3333;">Fisis</span> also ein doppelt erhöhtes F ist. Und ein D#7 hätte sogar noch die Septime <span style="background-color:#ff3333;">Cisis</span> mit dabei. Ja, so etwas ist grausig! Hätte man dagegen ein Eb gewählt, dann wären alle Töne und Vorzeichen im grünen Bereich geblieben. <ref>Wenn man unbedingt eine Tonart mit mehr als 6 Vorzeichen braucht, um z.B. einen harmonischen Verlauf wie einen Quintfall nachzuzeichnen, kann man im ersten Schritt die Vorzeichen der "exotischen Tonart" angeben und im zweiten Schritt dann die alternative enharmonische Verwechslung</ref> Meist kann man solche Problem also dadurch umgehen, dass man (besonders bei Durtonarten) nicht die Kreuztonart wählt, sondern die enharmonische Verwechslung (sprich die B-Tonart) nimmt. (In der Tabelle stehen die leichter zu lesenden Alternativen eine Reihe unten drunter und ist mit der "&asymp;" gekennzeichnet.) Die Töne einer Tonleiter werden hier untereinander und nicht nebeneinander geschrieben. <table border="1" style="width:60px; overflow:auto; text-align:center;"> <tr style="background-color:#EEEEEE; font-family:Arial, Helvetica, sans-serif;"> <td style="height:25px;">Tonleiter</td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">Db</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">D#</td> <td style="width:20px; height:25px">Eb</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px;">E#</td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">Gb</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">Ab</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px;">Bb <!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">H<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">H# <!-- Hyperlink zur Refferenz --></td> </tr> <tr> <td style="height:25px;">Ersatztonart</td> <td style="width:50px; height:25px; background-color:#FFFF00;">&nbsp;</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Db</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Eb</td> <td style="width:20px; height:25px">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&asymp;&nbsp;F</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Gb</td> <td style="width:50px; height:25px;">&asymp;&nbsp;F#</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Ab</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Bb</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&asymp;&nbsp;C</td> </tr> <tr> <td style="height:25px;">Stufe 1</td> <td style="width:50px; height:25px; background-color:#FFFF00;">C</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">Db</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">Eb</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">Gb</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">Ab</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px;">Bb&nbsp; <!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">H<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp; <!-- Hyperlink zur Refferenz --></td> </tr> <tr> <td style="height:25px;">Stufe 2</td> <td style="width:50px; height:25px; background-color:#FFFF00;">D</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">Eb</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px; background-color:#FF3333;">F##</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">Ab</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px;">Bb&nbsp; <!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp; <!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px; background-color:#FF3333;">C##</td> </tr> <tr> <td style="height:25px;">Stufe 3</td> <td style="width:50px; height:25px; background-color:#FFFF00;">E</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px; background-color:#FF3333;">F##</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px; background-color:#FF3333;">G##</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px;">Bb&nbsp; <!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp; <!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px; background-color:#FF3333;">C##</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px; background-color:#FF3333;">D##</td> </tr> <tr> <td style="height:25px;">Stufe 4</td> <td style="width:50px; height:25px; background-color:#FFFF00;">F</td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">Gb</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">Ab</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px;">Bb&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">H&nbsp; <!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FFCCCC;">Cb</td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">Db</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">Eb</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> </tr> <tr> <td style="height:25px;">Stufe 5</td> <td style="width:50px; height:25px; background-color:#FFFF00;">G</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">Ab</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px;">Bb&nbsp; <!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp; <!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">Db</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">Eb</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px; background-color:#FF3333;">F##</td> </tr> <tr> <td style="height:25px;">Stufe 6</td> <td style="width:50px; height:25px; background-color:#FFFF00;">A</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px;">Bb&nbsp; <!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp; <!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px; background-color:#FF3333;">C##</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">Eb</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px; background-color:#FF3333;">F##</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px; background-color:#FF3333;">G##</td> </tr> <tr> <td style="height:25px;">Stufe 7</td> <td style="width:50px; height:25px; background-color:#FFFF00;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp; <!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px; background-color:#FF3333;">C##</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px; background-color:#FF3333;">D##</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px; background-color:#FF3333;">F##</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px; background-color:#FF3333;">G##</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px; background-color:#FF3333;">A##</td> </tr> </table> === Tonleiter Transponieren im Quintenzirkel (einfach) === Die obere Tabelle ist zwar vollständig, aber nicht gerade übersichtlich. Um ein bisschen Ordnung hinein zu bekommen, werden die einzelnen Tonleitern im Quintenzirkel angeordnet. Dieses hat zur Folge, dass alle einfachen Tonarten in die Mitte rutschen, und die schweren (zumindest was die Anzahl der Vorzeichen betrifft) an den Rand gedrängt werden. Man erkennt schon auf den ersten Blick, dass etwas Ordnung in das Chaos hinein gekommen ist. von jeder Tonart aus unterscheidet sich die vorhergehende Tonart sowie die nachfolgende Tonart nur um einen Vorzeichen. Welches Vorzeichen hinzukommt (von der mittleren Tonart C-Dur ausgehend), wurde fett hervorgehoben. <table border="1" style="width:600px; overflow:auto; text-align:center;" id="table1"> <tr style="background-color:#EEEEEE; font-family:Arial, Helvetica, sans-serif;"> <td style="height:25px;">Tonart</td> <td style="width:50px; height:25px;">Gb</td> <td style="width:50px; height:25px;">Db</td> <td style="width:50px; height:25px;">Ab</td> <td style="width:20px; height:25px">Eb</td> <td style="width:50px; height:25px;">Bb<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px;">H<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px;">E#</td> <td style="width:50px; height:25px;">H#<!-- Hyperlink zur Refferenz --></td> </tr> <tr> <td style="height:25px;">Ersatztonart</td> <td style="width:50px; height:25px;">&asymp;&nbsp;F#</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:20px; height:25px">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px; background-color:#FFFF00;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Gb</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Db</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Ab</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Eb</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Bb<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">&asymp;&nbsp;F</td> <td style="width:50px; height:25px;">&asymp;&nbsp;C</td> </tr> <tr> <td style="height:25px;">Stufe 1</td> <td style="width:50px; height:25px;">Gb</td> <td style="width:50px; height:25px;">Db</td> <td style="width:50px; height:25px;">Ab</td> <td style="width:50px; height:25px;">Eb</td> <td style="width:50px; height:25px;">Bb&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px; background-color:#FFFF00;">C</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px;">H<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp;<!-- Hyperlink zur Refferenz --></td> </tr> <tr> <td style="height:25px;">Stufe 2</td> <td style="width:50px; height:25px;">Ab</td> <td style="width:50px; height:25px;">Eb</td> <td style="width:50px; height:25px;">Bb&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px; background-color:#FFFF00;">D</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FF3333;">F##</td> <td style="width:50px; height:25px; background-color:#FF3333;">C##</td> </tr> <tr> <td style="height:25px;">Stufe 3</td> <td style="width:50px; height:25px;">Bb&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px; background-color:#FFFF00;">E</td> <td style="width:50px; height:25px;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FF3333;">F##</td> <td style="width:50px; height:25px; background-color:#FF3333;">C##</td> <td style="width:50px; height:25px; background-color:#FF3333;">G##</td> <td style="width:50px; height:25px; background-color:#FF3333;">D##</td> </tr> <tr> <td style="height:25px;">Stufe 4</td> <td style="width:50px; height:25px; background-color:#FFCCCC;"><em><strong>Cb</strong></em></td> <td style="width:50px; height:25px;"><em><strong>Gb</strong></em></td> <td style="width:50px; height:25px;"><em><strong>Db</strong></em></td> <td style="width:50px; height:25px;"><em><strong>Ab</strong></em></td> <td style="width:50px; height:25px;"><em><strong>Eb</strong></em></td> <td style="width:50px; height:25px;"><em><strong>Bb&nbsp;<!-- Hyperlink zur Refferenz --></strong></em></td> <td style="width:50px; height:25px; background-color:#FFFF00;">F</td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> </tr> <tr> <td style="height:25px;">Stufe 5</td> <td height="32" style="width:50px; height:25px;">Db</td> <td style="width:50px; height:25px;">Ab</td> <td style="width:50px; height:25px;">Eb</td> <td style="width:50px; height:25px;">Bb&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px; background-color:#FFFF00;">G</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FF3333;">F##</td> </tr> <tr> <td style="height:25px;">Stufe 6</td> <td style="width:50px; height:25px;">Eb</td> <td style="width:50px; height:25px;">Bb&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px; background-color:#FFFF00;">A</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FF3333;">F##</td> <td style="width:50px; height:25px; background-color:#FF3333;">C##</td> <td style="width:50px; height:25px; background-color:#FF3333;">G##</td> </tr> <tr> <td style="height:25px;">Stufe 7</td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">D</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px; background-color:#FFFF00;"><em><strong>H&nbsp;<!-- Hyperlink zur Refferenz --></strong></em></td> <td style="width:50px; height:25px;"><em><strong>F#</strong></em></td> <td style="width:50px; height:25px;"><em><strong>C#</strong></em></td> <td style="width:50px; height:25px;"><em><strong>G#</strong></em></td> <td style="width:50px; height:25px;"><em><strong>D#</strong></em></td> <td style="width:50px; height:25px;"><em><strong>A#</strong></em></td> <td style="width:50px; height:25px; background-color:#FFCCCC;"><em><strong>E#</strong></em></td> <td style="width:50px; height:25px; background-color:#FFCCCC;"><em><strong>H#&nbsp;<!-- Hyperlink zur Refferenz --></strong></em></td> <td style="width:50px; height:25px; background-color:#FF3333;"><em><strong>F##</strong></em></td> <td style="width:50px; height:25px; background-color:#FF3333;"><em><strong>C##</strong></em></td> <td style="width:50px; height:25px; background-color:#FF3333;"><em><strong>G##</strong></em></td> <td style="width:50px; height:25px; background-color:#FF3333;"><em><strong>D##</strong></em></td> <td style="width:50px; height:25px; background-color:#FF3333;"><em><strong>A##</strong></em></td> </tr> </table><hr /> === Tonleiter Transponieren im Quintenzirkel (doppelt) === Wir sind mit dem Sortieren aber noch nicht am Ende. Wir haben nur die einzelnen Tonleitern im Quintenzirkel sortiert. Für viele weitere Aspekte, wie Akkorde, Intervalle innerhalb einer Tonleiter und ähnliches mehr empfiehlt es sich, auch die einzelnen Tonstufen jeder Tonleiter im Quintenzirkel zu sortieren. Wer kaum etwas mit Harmonielehre zu tun hat, dem mag dieses seltsam vorkommen. Wer aber schon mehr mit Jazz-Akkorden und Transponieren zu tun hat, dem sollte diese Sortierung vertraut sein. Allen anderen kann ich an dieser Stelle nur sagen, dass sich eine solche Sortierung lohnt, weil man viel mehr Sachen relativ einfach daraus ablesen kann. Was man alles daraus ablesen kann, dass muss aber an anderer Stelle erläutert werden. Also für diejenigen, die sich noch nicht mit dem Quintenzirkel vertraut gemacht haben, verlangt die nächste Tabelle einiges an Abstraktionsvermögen. Es scheint nämlich auf den ersten Blick gar keinen Sinn zu machen, die normale Reihenfolge der Töne durcheinander zu bringen. Doch auch bei der Akkordbegleitung (Griffe der Gitarre oder Umkehrungen beim Klavier) denkt man sich viele Akkorde nicht nebeneinander wie an einer Perlenschnur. Auf dem Griffbrett der Gitarre wird man hinterher diese Sortierung wiederentdecken, indem man einzelne Töne innerhalb eines Bundes (zumindest für die ersten vier Saiten) betrachtet. Z.B. E A D G ist der Quintenzirkel rückwärts. "Geh du alter Esel..." Also die einzelnen Tonstufen jeder Tonleiter werden ebenfalls im Quintenzirkel sortiert. ;die eigentliche Dur-Tonart befindet sich jetzt in der zweite Reihe und ist blau hervorgehoben. (und natürlich noch in der Titelleiste) Da an dieser stelle noch nicht alles ausgeführt werden kann, wurden zumindest einmal die üblichen Akkord-Erweiterungen für Akkorde in einer bestimmten Stufe mit angegeben, sowie die übliche Improvisationsskala für diesen Akkord. Dieses dürfte allerdings nur für fortgeschrittene Gitarrenspieler (vor allem Jazzer) interessant sein. <div style="overflow: auto;"> <table border="1" style="width:584px; overflow:auto; text-align:center" id="table1"> <tr style="background-color:#EEEEEE; font-family:Arial, Helvetica, sans-serif;"> <td style="width:50px; height:25px;">Stufe</td> <td style="width:50px; height:25px;">Gb</td> <td style="width:50px; height:25px;">Db</td> <td style="width:50px; height:25px;">Ab</td> <td style="width:20px; height:25px">Eb</td> <td style="width:22px; height:25px">Bb<!-- Hyperlink zur Refferenz --></td> <td style="width:23px; height:25px">F</td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">G</td> <td style="width:19px; height:25px">D</td> <td style="width:20px; height:25px">A</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px;">H<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px;">E#</td> <td style="width:27px; height:25px">H#<!-- Hyperlink zur Refferenz --></td> <td style="height:25px" colspan="4">Jazzakkorde</td> <td style="width:27px; height:25px">Funktionen</td> <td style="width:27px; height:25px">Modi</td> <td style="width:27px; height:25px">Intervalle&nbsp;des Modus&nbsp;bzw der&nbsp;Funktion </td> <td style="width:27px; height:25px">Stufe</td> </tr> <tr> <td height="32" style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&asymp;&nbsp;F#</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:20px; height:25px">&nbsp;</td> <td style="width:22px; height:25px">&nbsp;</td> <td style="width:23px; height:25px">&nbsp;</td> <td style="width:50px; height:25px; background-color:#FFFF00;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:19px; height:25px">&nbsp;</td> <td style="width:20px; height:25px">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&nbsp;</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Gb</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Db</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Ab</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Eb</td> <td style="width:50px; height:25px;">&asymp;&nbsp;Bb<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">&asymp;&nbsp;F</td> <td style="width:27px; height:25px">&asymp;&nbsp;C</td> <td style="height:25px" colspan="4">Optionstöne</td> <td style="width:27px; height:25px">Akkorde</td> <td style="width:27px; height:25px">Melodie</td> <td style="width:27px; height:25px">&nbsp;</td> <td style="width:27px; height:25px">&nbsp;</td> </tr> <tr> <td style="width:50px; height:25px;">4</td> <td style="width:50px; height:25px; background-color:#FFCCCC;"><em><strong>Cb</strong></em></td> <td style="width:50px; height:25px;"><em><strong>Gb</strong></em></td> <td style="width:50px; height:25px;"><em><strong>Db</strong></em></td> <td style="width:50px; height:25px;"><em><strong>Ab</strong></em></td> <td style="width:22px; height:25px"><em><strong>Eb</strong></em></td> <td style="width:23px; height:25px"><em><strong>Bb&nbsp;<!-- Hyperlink zur Refferenz --></strong></em></td> <td style="width:50px; height:25px; background-color:#FFFF00;">F</td> <td style="width:50px; height:25px;">C</td> <td style="width:19px; height:25px">G</td> <td style="width:20px; height:25px">D</td> <td style="width:50px; height:25px;">A</td> <td style="width:50px; height:25px;">E</td> <td style="width:50px; height:25px;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:27px; height:25px; background-color:#FFCCCC">E#</td> <td style="width:27px; height:25px">j7</td> <td style="width:27px; height:25px">9</td> <td style="width:27px; height:25px">11#</td> <td style="width:27px; height:25px">13</td> <td style="width:27px; height:25px">Subdominante</td> <td style="width:27px; height:25px">lydisch</td> <td style="width:27px; height:25px">1&nbsp;5&nbsp;2&nbsp;6&nbsp;3&nbsp;7&nbsp;4# </td> <td style="width:27px; height:25px">4</td> </tr> <tr> <td style="width:50px; height:25px;">1</td> <td style="width:50px; height:25px;"><font color="#0000FF">Gb</font></td> <td style="width:50px; height:25px;"><font color="#0000FF">Db</font></td> <td style="width:50px; height:25px;"><font color="#0000FF">Ab</font></td> <td style="width:50px; height:25px;"><font color="#0000FF">Eb</font></td> <td style="width:22px; height:25px"><font color="#0000FF">Bb&nbsp;<!-- Hyperlink zur Refferenz --></font></td> <td style="width:23px; height:25px"><font color="#0000FF">F</font></td> <td style="width:50px; height:25px; background-color:#FFFF00;"> <font color="#0000FF">C</font></td> <td style="width:50px; height:25px;"><font color="#0000FF">G</font></td> <td style="width:19px; height:25px"><font color="#0000FF">D</font></td> <td style="width:20px; height:25px"><font color="#0000FF">A</font></td> <td style="width:50px; height:25px;"><font color="#0000FF">E</font></td> <td style="width:50px; height:25px;"><font color="#0000FF">H<!-- Hyperlink zur Refferenz --></font></td> <td style="width:50px; height:25px;"><font color="#0000FF">F#</font></td> <td style="width:50px; height:25px;"><font color="#0000FF">C#</font></td> <td style="width:50px; height:25px;"><font color="#0000FF">G#</font></td> <td style="width:50px; height:25px;"><font color="#0000FF">D#</font></td> <td style="width:50px; height:25px;"><font color="#0000FF">A#</font></td> <td style="width:50px; height:25px; background-color:#FFCCCC;"> <font color="#0000FF">E#</font></td> <td style="width:27px; height:25px; background-color:#FFCCCC"> <font color="#0000FF">H#&nbsp;<!-- Hyperlink zur Refferenz --></font></td> <td style="width:27px; height:25px">j7</td> <td style="width:27px; height:25px">9</td> <td style="width:27px; height:25px">11</td> <td style="width:27px; height:25px">13</td> <td style="width:27px; height:25px">Tonika</td> <td style="width:27px; height:25px">ionisch</td> <td style="width:27px; height:25px">4&nbsp;1&nbsp;5&nbsp;2&nbsp;6&nbsp;3&nbsp;7</td> <td style="width:27px; height:25px">1</td> </tr> <tr> <td height="32" style="width:50px; height:25px;">5</td> <td height="32" style="width:50px; height:25px;">Db</td> <td style="width:50px; height:25px;">Ab</td> <td style="width:50px; height:25px;">Eb</td> <td style="width:50px; height:25px;">Bb&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:22px; height:25px">F</td> <td style="width:23px; height:25px">C</td> <td style="width:50px; height:25px; background-color:#FFFF00;">G</td> <td style="width:50px; height:25px;">D</td> <td style="width:19px; height:25px">A</td> <td style="width:20px; height:25px">E</td> <td style="width:50px; height:25px;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:27px; height:25px; background-color:#FF3333">F##</td> <td style="width:27px; height:25px">7</td> <td style="width:27px; height:25px">9</td> <td style="width:27px; height:25px">11</td> <td style="width:27px; height:25px">13</td> <td style="width:27px; height:25px">Dominante</td> <td style="width:27px; height:25px">mixo-lydisch</td> <td style="width:27px; height:25px">7b&nbsp;4&nbsp;1&nbsp;5&nbsp;2&nbsp;6&nbsp;3</td> <td style="width:27px; height:25px">5</td> </tr> <tr> <td style="width:50px; height:25px;">2</td> <td style="width:50px; height:25px;">Ab</td> <td style="width:50px; height:25px;">Eb</td> <td style="width:50px; height:25px;">Bb&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F</td> <td style="width:22px; height:25px">C</td> <td style="width:23px; height:25px">G</td> <td style="width:50px; height:25px; background-color:#FFFF00;">D</td> <td style="width:50px; height:25px;">A</td> <td style="width:19px; height:25px">E</td> <td style="width:20px; height:25px">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F#</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FF3333;">F##</td> <td style="width:27px; height:25px; background-color:#FF3333">C##</td> <td style="width:27px; height:25px">m7</td> <td style="width:27px; height:25px">9</td> <td style="width:27px; height:25px">11</td> <td style="width:27px; height:25px">13</td> <td style="width:27px; height:25px">Subdominanten-parallele</td> <td style="width:27px; height:25px">dorisch</td> <td style="width:27px; height:25px">3b&nbsp;7&nbsp;4&nbsp;1&nbsp;5&nbsp;2&nbsp;6</td> <td style="width:27px; height:25px">2</td> </tr> <tr> <td style="width:50px; height:25px;">6</td> <td style="width:50px; height:25px;">Eb</td> <td style="width:50px; height:25px;">Bb&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">C</td> <td style="width:22px; height:25px">G</td> <td style="width:23px; height:25px">D</td> <td style="width:50px; height:25px; background-color:#FFFF00;">A</td> <td style="width:50px; height:25px;">E</td> <td style="width:19px; height:25px">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:20px; height:25px">F#</td> <td style="width:50px; height:25px;">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FF3333;">F##</td> <td style="width:50px; height:25px; background-color:#FF3333;">C##</td> <td style="width:27px; height:25px; background-color:#FF3333">G##</td> <td style="width:27px; height:25px">m7</td> <td style="width:27px; height:25px">9</td> <td style="width:27px; height:25px">11</td> <td style="width:27px; height:25px">13b</td> <td style="width:27px; height:25px">Tonika-parallele</td> <td style="width:27px; height:25px">äolisch</td> <td style="width:27px; height:25px">6b&nbsp;3b&nbsp;7&nbsp;4&nbsp;1&nbsp;5&nbsp;2</td> <td style="width:27px; height:25px">6</td> </tr> <tr> <td style="width:50px; height:25px;">3</td> <td style="width:50px; height:25px;">Bb&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">G</td> <td style="width:22px; height:25px">D</td> <td style="width:23px; height:25px">A</td> <td style="width:50px; height:25px; background-color:#FFFF00;">E</td> <td style="width:50px; height:25px;">H&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:19px; height:25px">F#</td> <td style="width:20px; height:25px">C#</td> <td style="width:50px; height:25px;">G#</td> <td style="width:50px; height:25px;">D#</td> <td style="width:50px; height:25px;">A#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">E#</td> <td style="width:50px; height:25px; background-color:#FFCCCC;">H#&nbsp;<!-- Hyperlink zur Refferenz --></td> <td style="width:50px; height:25px; background-color:#FF3333;">F##</td> <td style="width:50px; height:25px; background-color:#FF3333;">C##</td> <td style="width:50px; height:25px; background-color:#FF3333;">G##</td> <td style="width:27px; height:25px; background-color:#FF3333">D##</td> <td style="width:27px; height:25px">m7</td> <td style="width:27px; height:25px">9b</td> <td style="width:27px; height:25px">11</td> <td style="width:27px; height:25px">13b</td> <td style="width:27px; height:25px">Dominanten-parallele</td> <td style="width:27px; height:25px">phrygisch</td> <td style="width:27px; height:25px">2b&nbsp;6b&nbsp;3b&nbsp;7&nbsp;4&nbsp;1&nbsp;5</td> <td style="width:27px; height:25px">3</td> </tr> <tr> <td style="width:50px; height:25px;">7</td> <td style="width:50px; height:25px;">F</td> <td style="width:50px; height:25px;">C</td> <td style="width:50px; height:25px;">G</td> <td style="width:50px; height:25px;">D</td> <td style="width:22px; height:25px">A</td> <td style="width:23px; height:25px">E</td> <td style="width:50px; height:25px; background-color:#FFFF00;"><em><strong>H&nbsp;<!-- Hyperlink zur Refferenz --></strong></em></td> <td style="width:50px; height:25px;"><em><strong>F#</strong></em></td> <td style="width:19px; height:25px"><em><strong>C#</strong></em></td> <td style="width:20px; height:25px"><em><strong>G#</strong></em></td> <td style="width:50px; height:25px;"><em><strong>D#</strong></em></td> <td style="width:50px; height:25px;"><em><strong>A#</strong></em></td> <td style="width:50px; height:25px; background-color:#FFCCCC;"><em><strong>E#</strong></em></td> <td style="width:50px; height:25px; background-color:#FFCCCC;"><em><strong>H#&nbsp;<!-- Hyperlink zur Refferenz --></strong></em></td> <td style="width:50px; height:25px; background-color:#FF3333;"><em><strong>F##</strong></em></td> <td style="width:50px; height:25px; background-color:#FF3333;"><em><strong>C##</strong></em></td> <td style="width:50px; height:25px; background-color:#FF3333;"><em><strong>G##</strong></em></td> <td style="width:50px; height:25px; background-color:#FF3333;"><em><strong>D##</strong></em></td> <td style="width:27px; height:25px; background-color:#FF3333"><em><strong>A##</strong></em></td> <td style="width:27px; height:25px">m7b5</td> <td style="width:27px; height:25px">9b</td> <td style="width:27px; height:25px">11</td> <td style="width:27px; height:25px">13b</td> <td style="width:27px; height:25px">verm.Dom. Septakkord</td> <td style="width:27px; height:25px">locrisch</td> <td style="width:27px; height:25px">5b&nbsp;2b&nbsp;6b&nbsp;3b&nbsp;7&nbsp;4&nbsp;1</td> <td style="width:27px; height:25px">7</td> </tr> </table> </div> Hier wurden also nicht nur die die einzelnen Spalten mit den jeweiligen Tonarten im Quintenzirkel sortiert, sondern auch innerhalb der Tonleiter die einzelnen Töne. Sowohl die Spalten als auch die Reihen sind jetzt im Quintenzirkel. Auch wenn man diese Tabelle noch nicht ganz durchschaut hat, fällt einem sofort der systematische Aufbau ins Auge. Auch wenn einem der ganze Aufbau noch nicht klar sein sollte, empfehle ich allen angehenden Musikern, sich eingehender damit zu befassen. Sobald man einmal hinter den Aufbau gestiegen ist, benötigt man für viele Fragen aus der Harmonielehre überhaupt keine Tabellen mehr, sondern nur noch den Quintenzirkel. Denn alle Informationen die man aus diesen Tabellen ablesen kann liefert einem der Quintenzirkel frei Haus. Die einzige Aufgabe, die einem bleibt, ist die Töne bei Bedarf wieder in die richtige Reihenfolge (der Tonhöhe nach) zu sortieren. === Lerntipp: === Für den Quintenzirkel sollte man sich die Zahlenreihenfolge 4 '''1''' 5 '''2''' 6 '''3''' 7 merken. * Die Tonfolge F C G D A E H entspricht dieser Zahlenfolge. * Die Buchstabenfolge und Zahlenfolge taucht immer wieder in allen Tonleitern, Akkordintervallen, Modi (und mit den Oktaven auch in den Jazz-Akkorden) auf. **Voraussetzung dafür ist nur, dass alles im diatonischen System bleibt **und alles im Quintenzirkel angeordnet wird. * Im kompletten Quintenzirkel taucht die Buchstabenfolge F C G D A E H wenigstens drei mal hintereinander auf ** Fb Cb Gb Db Ab Eb Bb - F C G D A E H - F# C# G# D# A# E# H# ** zuerst mit Bb - dann ohne Vorzeichen - dann mit Kreuzen vergleicht man die Intervalle der jeweiligen Funktionen und Modis, so taucht auch dort die gleiche Reihenfolge in Ziffern auf. * 4 1 5 2 6 3 7 wenigstens drei mal hintereinander ** 4b 1b 5b 2b 6b 3b 7b - 4 1 5 2 6 3 7 - 4# 1# 5# 2# 6# 3# 7# ==Sammelmappe anlegen== <pre><nowiki> {{Gespeicherte Sammlung}} === Blues === ==== Wikibooks ==== :[[Gitarre: Blues-_und_Rock'n'Roll-Diplom]] :[[Gitarre: Einstieg in den Blues]] :[[Gitarre: erste Blueskadenzen]] :[[Gitarre: Blueszupfen mit 6er und 7er-Akkorden Wiederh.]] :[[Gitarre: Blues mit Shuffle]] :[[Gitarre: Blues mit 6er und 7er-Akkorden auf Barré]] :[[Gitarre: Ein Rock'n'Roll-Riff]] :[[Gitarre: Das 8-Takt-Blues-Schema]] :[[Gitarre: Basstöne beim Standard-Blues]] :[[Gitarre: Die Pentatonik im Blues]] [[Kategorie:Sammlungen|blues]] </nowiki></pre> ==Vorlagentests== *[[Benutzer:Mjchael/Vorlagentest]] {{:Benutzer:Mjchael/Vorlagentest}} *<nowiki>{{SUBPAGENAME}}</nowiki> = {{SUBPAGENAME}} *<nowiki>{{BASEPAGENAME}}</nowiki> = {{BASEPAGENAME}} *<nowiki>{{NAMESPACE}}</nowiki> = {{NAMESPACE}} *<nowiki>{{FULLPAGENAME}}</nowiki> = {{FULLPAGENAME}} *<nowiki>{{#time}}</nowiki> = {{#time}} *<nowiki>{{#time:z}}</nowiki> = Tag des Jahres {{#time:z}} ==Automatisch Kategorien eintragen lassen== {{Notiz|In der Hilfe zur Kategorie steht, dass wir nicht automatisch Kategorien für die Bücher einrichten wollen. Daher ist dieses Kapitel ungültig. Es bleibt nur für den Syntax noch hier stehen, um diesen vielleicht an anderer Stelle noch mal zu verwenden. Dieses Kapitel wird gelöscht werden, wenn dieses Tutorial so weit fertig ist, das es mit in die Hilfe übernommen werden kann.|}}Ich gehe wieder in die Vorlage '''<nowiki>[[MeinBuch/:Navi]]</nowiki>''' und trage dort noch folgendes ein: :<nowiki>{{</nowiki>Navigationsleiste &#124;titel'''<nowiki> &#61;[[MeinBuch: Inhalt|MeinBuch]]</nowiki>''' &#124;inhalt&#61;'''<nowiki>[[MeinBuch:_Einleitung|Einleitung]]</nowiki>''' - '''<nowiki>[[MeinBuch:_Hauptteil|Hautteil]] - [[MeinBuch:_Teil I|Teil I]] - [[MeinBuch:_Teil II|Teil II]] - [[MeinBuch:_Teil III|Teil III]] - [[MeinBuch:_Anhang|Anhang]] }}</nowiki>{{rot|<nowiki><includeonly>[[Kategorie:Meinbuch]]</nowiki></includeonly>'''|maroon}} Mit diesem Eintrag wird dafür gesorgt, dass jede Seite, auf der diese Navigation erscheint auch eine Kategorie eingetragen wird, unter welcher man alle Seiten zu deinem Buch finden kann. Dieses erspart dir, auf jeder Seite deines Buches '''{{rot|<nowiki>[[Kategorie:Meinbuch]]</nowiki>|maroon}}''' ans Fußende zu setzen. Durch das '''<nowiki><includeonly>...</includeonly></nowiki>''' sorgst du dafür, dass der Eintrag der Vorlage nur in die Buchseiten eingetragen wird, aber dass dieser Eintrag nicht für die Vorlage selbst gilt. Damit stellst du sicher, dass nicht auch die Navigationsvorlagen mit in der Kategorie deines Buches erscheinen. ==== Parameter nutzen ==== Wir haben aber jetzt ein kleines Problemchen. Angenommen du möchtest dir diese Navigationsleiste auch auf deiner Benutzerseite einfügen, um schneller in deine Projekte zu gelangen. Dann taucht auch deine Benutzerseite in der Kategorie deines Buchprojektes auf. Das ist nicht unbedingt wünschenswert. Also müssen wir irgendwie dafür sorgen, dass man diesen Eintrag wieder abschalten kann. Dazu verwenden wir einen Parameter, denn wir schlichtweg '''Kategorie''' nennen. Parameter hast du schon oben in der Navigationsleistenvorlage kennengelernt. Einzelne Parameter werden durch ein Pipe-Zeichen (der senkrechte Strich '|') abgetrennt. Nach dem Parameter folgt ein Gleichheitszeichen mit dem Inhalt des Parameters. Wer schon mal Programmiert hat, weiß, dass ein Parameter so was wie eine Variable ist, die man mit verschiedenem Inhalt füllen kann. :'''|titel=...''' :'''|inhalt=...''' Also richten wir auch für die Kategorie einen Parameter ein. <nowiki><includeonly></nowiki>{{rot|<nowiki>{{#if:</nowiki>}}{{grün|<nowiki>{{{Kategorie|}}}</nowiki>}}{{rot|<nowiki>||</nowiki>}}{{blau|<nowiki>[[Kategorie:MeinBuch]]</nowiki>}}{{rot|<nowiki>}}</nowiki>}}<nowiki></includeonly></nowiki> ===== if-then-else (wenn-dann-sonst) ===== die if-then-else-Vorlage überprüft, ob ein Parameter vorhanden ist. Wenn der Parameter vorhanden ist, dann trägt sie den ersten Parameter ein, andernfalls den zweiten. <nowiki><includeonly></nowiki>{{rot|<nowiki>{{#if:</nowiki>}}{{grün|<nowiki>{{{Parameter vorhanden|}}}</nowiki>}}{{rot|<nowiki>|</nowiki>dann trage dies ein<nowiki>|</nowiki>}}{{blau|<nowiki>sonst trage das ein</nowiki>}}{{rot|<nowiki>}}</nowiki>}}<nowiki></includeonly></nowiki> Wenn du jetzt mal die obere Vorlage dir genauer anschaust, dann siehst du nach :<nowiki><includeonly></nowiki>{{rot|<nowiki>{{#if:</nowiki>}}{{grün|<nowiki>{{{Kategorie|}}}</nowiki>}} zwei Pipe-Zeichen :{{rot|<nowiki>||</nowiki>}} Eigentlich erwartet man zwischen den beiden Pipe-Zeichen das was eingetragen werden soll, wenn der Parameter (hier Kategorie=) gesetzt wurde. :{{rot|<nowiki>|</nowiki>}}Inhalt wenn Parameter gesetzt ist{{rot|<nowiki>|</nowiki>}} Wir wenden hier einen kleinen Programmiertrick an. Wenn wir '''nicht''' wollen, dass die Kategorie mit auf eine Seite eingetragen wird, dann schreiben wir ;|Kategorie=false Wenn also der Parameter "Kategorie" gesetzt ist, dann wird eben '''nichts''' eingetragen. Andernfalls (wenn also der Parameter "Kategorie" nicht gesetzt ist) dann wird der Standardeintrag, nämlich die Kategorie des Buches eingetragen. Also nochmal alles zusammen: :<nowiki>{{</nowiki>Navigationsleiste |titel='''<nowiki>[[MeinBuch: Inhalt|MeinBuch]]</nowiki>''' |inhalt='''<nowiki>[[MeinBuch:_Einleitung|Einleitung]]</nowiki>''' - '''<nowiki>[[MeinBuch:_Hauptteil|Hautteil]] - [[MeinBuch:_Teil I|Teil I]] - [[MeinBuch:_Teil II|Teil II]] - [[MeinBuch:_Teil III|Teil III]] - [[MeinBuch:_Anhang|Anhang]] }}</nowiki><nowiki><includeonly></nowiki>{{rot|<nowiki>{{#if:</nowiki>}}{{grün|<nowiki>{{{Kategorie|}}}</nowiki>}}{{rot|<nowiki>||</nowiki>}}{{blau|<nowiki>[[Kategorie:MeinBuch]]</nowiki>}}{{rot|<nowiki>}}</nowiki>}}<nowiki></includeonly></nowiki> = A4 als Div Ende = </div> == Navitest == (Kopie aus den engl. Wikibooks) <div style="clear:both;" class="NavFrame"> <div style="margin: 0.2em auto; border:1px solid #e1b039; background:lightblue;" class="toccolours" cellpadding="3" class="NavHead">'''[[b:en:Guitar]]''' </div> <div class="NavContent" align=left> {| |align=left|'''Getting Started:''' [[b:en:Guitar/Different Types of Guitars|Different Types of Guitars]] <nowiki>|</nowiki> [[b:en:Guitar/Anatomy of a Guitar|Anatomy of a Guitar]] <nowiki>|</nowiki> [[b:en:Guitar/Buying a Guitar|Buying a Guitar]] <nowiki>|</nowiki> [[b:en:Guitar/Buying an Amplifier|Buying an Amplifier]] <nowiki>|</nowiki> [[b:en:Guitar/Setting up the Guitar|Setting up the Guitar]] <nowiki>|</nowiki> [[b:en:Guitar/Tablature|Tablature]] <nowiki>|</nowiki> [[b:en:Guitar/Lead Guitar and Rhythm Guitar|Lead Guitar and Rhythm Guitar]] |- |align=left|'''For Beginners:''' [[b:en:Guitar/The Basics|The Basics]] <nowiki>|</nowiki> [[b:en:Guitar/Intervals and Power Chords|Double-stops and Power Chords]] <nowiki>|</nowiki> [[b:en:Guitar/Open Chords|Open Chords]] <nowiki>|</nowiki> [[b:en:Guitar/Muting and Raking|Muting and Raking]] <nowiki>|</nowiki> [[b:en:Guitar/Learning Songs|Learning Songs]] <nowiki>|</nowiki> [[b:en:Guitar/Song Library|Song Library]] |- |align=left|'''Lead Guitar:''' [[b:en:Guitar/Picking and Plucking|Picking and Plucking]] <nowiki>|</nowiki> [[b:en:Guitar/Scales|Scales]] <nowiki>|</nowiki> [[b:en:Guitar/Arpeggios and Sweep Picking|Arpeggios and Sweep Picking]] <nowiki>|</nowiki> [[b:en:Guitar/Slides|Slides]] <nowiki>|</nowiki> [[b:en:Guitar/Hammer-ons, Pull-offs, and Trills|Hammer-ons, Pull-offs, and Trills]] <nowiki>|</nowiki> [[b:en:Guitar/Bending and Vibrato|Bending and Vibrato]] <nowiki>|</nowiki> [[b:en:Guitar/Harmonics|Harmonics]] <nowiki>|</nowiki> [[b:en:Guitar/Vibrato Bar Techniques|Vibrato Bar Techniques]] <nowiki> | </nowiki> [[b:en:Guitar/Tapping|Tapping]] |- |align=left|'''Rhythm Guitar:''' [[b:en:Guitar/Chords|Chords]] <nowiki>|</nowiki> [[b:en:Guitar/Barre Chords|Barre Chords]] <nowiki>|</nowiki> [[b:en:Guitar/Chord Progressions|Chord Progressions]] <nowiki>|</nowiki> [[b:en:Guitar/Alternate Picking|Alternate Picking]] <nowiki>|</nowiki> [[b:en:Guitar/Tremolo Picking|Tremolo Picking]] <nowiki>|</nowiki> [[b:en:Guitar/Rhythm|Rhythm]] |- |align=left|'''Playing Styles:''' [[b:en:Guitar/Folk Guitar|Folk Guitar]] <nowiki>|</nowiki> [[b:en:Guitar/Blues|Blues]] <nowiki>|</nowiki> [[b:en:Guitar/Slide Guitar|Slide Guitar]] <nowiki>|</nowiki> [[b:en:Guitar/Rock/Alternative Guitar|Rock Guitar]] <nowiki>|</nowiki> [[b:en:Guitar/Country and Western|Country and Western]] <nowiki>|</nowiki> [[b:en:Guitar/Metal|Metal]] <nowiki>|</nowiki> [[b:en:Guitar/Jazz|Jazz]] <nowiki>|</nowiki> [[b:en:Guitar/Classical Guitar|Classical Guitar]] <nowiki>|</nowiki> [[b:en:Guitar/Flamenco|Flamenco]] |- |align=left|'''General Guitar Theory:''' [[b:en:Guitar/Tone and Volume|Tone and Volume]] <nowiki>|</nowiki> [[b:en:Guitar/Singing and Playing|Singing and Playing]] <nowiki>|</nowiki> [[b:en:Guitar/Writing Songs|Writing Songs]] <nowiki>|</nowiki> [[b:en:Guitar/Playing With Others|Playing With Others]] <nowiki>|</nowiki> [[b:en:Guitar/Recording Music|Recording Music]] <nowiki>|</nowiki>[[b:en:Guitar/Tuning Your Ear|Tuning Your Ear]] <nowiki>|</nowiki> [[b:en:Guitar/How to Continue Learning|How to Continue Learning]] |- |align=left|'''Equipment:''' [[b:en:Guitar/Guitar Accessories|Guitar Accessories]] <nowiki>|</nowiki> [[b:en:Guitar/Effects Pedals|Effects Pedals]] <nowiki>|</nowiki> [[b:en:Guitar/E-bow|E-Bow]] <nowiki>|</nowiki> [[b:en:Guitar/Cables|Cables]] <nowiki>|</nowiki> [[b:en:Guitar/Bass Guitar|Bass Guitar]] <nowiki>|</nowiki> [[b:en:Guitar/Harmonica and Guitar Combo|Harmonica and Guitar Combo]] |- |align=left|'''Maintenance:''' [[b:en:Guitar/Guitar Maintenance and Storage|Guitar Maintenance and Storage]] <nowiki>|</nowiki> [[b:en:Guitar/Adjusting the Guitar|Adjusting the Guitar]] <nowiki>|</nowiki> [[b:en:Guitar/Stringing the Guitar|Stringing the Guitar]] |- |align=left|'''Appendices:''' [[b:en:Guitar/Dictionary|Dictionary]] <nowiki>|</nowiki> [[b:en:Guitar/Alternate Tunings|Alternate Tunings]] <nowiki>|</nowiki> [[b:en:Guitar/Chord Reference|Chord Reference]] <nowiki>|</nowiki> [[b:en:Guitar/Blanks|Blanks]] |- |} </div> </div> == Buch-paten == *{{Admininfo|mjchael}} *{{Admininfo|Red_Rooster}} *{{Admininfo|Sloyment}} *{{Admininfo|Paniolo}} ==Wikiteilnahmen== [http://toolserver.org/~vvv/sulutil.php?rights=1&user=mjchael wo war ich schon] {{fußnoten}} 6uzqoyffpps9ke8znqq1nu7mq77hhy9 Benutzer:Mjchael/Werkstatt 2 55243 1091084 1081700 2026-09-19T14:23:41Z Mjchael 2222 /* Akut */ 1091084 wikitext text/x-wiki <!-- BEGINN SEITE --> {| width="100%" cellspacing="0" cellpadding="0" valign="top"| |- <!-- SEITE:TABS --> |<!-- BEGINN SEITE:TABS --> {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" |- {{Benutzer:Mjchael/TabVoll|#dfefdf|User:Mjchael|Mjchael}} {{Benutzer:Mjchael/TabVoll|#f0f0f8|User:Mjchael/Projekte|Projekte}} {{Benutzer:Mjchael/TabOffen|#f0f0f8|User:Mjchael/Werkstatt|Werkstatt}} {{Benutzer:Mjchael/TabVoll|#f0f0f8|User:Mjchael/ Hilfen|Hilfen}} {{Benutzer:Mjchael/TabVoll|#f0f0f8|User:Mjchael/Sammlungen|Sammlungen}} | style="background-color:#f8f8ff;border-bottom:1px solid #000" width="100"| &nbsp; |}<!-- ENDE SEITE:TABS --> {|width="100%" cellpadding="2" cellspacing="0" style="text-align:left; border:solid #000000; border-width:0px 1px 1px 1px;" valign="top"| |- |bgcolor="#dfefdf" valign="top"|<!-- Äußere Tabelle linke Spalte --> <!-- Anfang Inhalt --> *[[:Kategorie:todo Mjchael|meine Todo-Liste]] === Akut === ;Bm7-Form <score> << \new ChordNames { \chordmode { \set chordChanges = ##t b:m7 b:m7 c:m7 c:m7 } } \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'white \override FretBoard.fret-diagram-details.orientation = #'landscape < b,-1 d a-2 b >1 % Bm < b,-1 d a-2 d-3 >1 % Bm < c,-3 es-1 b-4 c'-1 >1 % Cm7 < c,-3 es-1 b-4 e'-4 >1 % Cm7 }>> } </score> {{:Gitarre/ Navi|Formen-Systematik| {{:Gitarre: Formen-Systematik/ Navi}}| img=Guitar 1.svg |bg=#F8f8f8|border=#666666|color=#333333|px=80|navi=Formen-Systematik}} <score sound="1" raw="1"> \version "2.20.0" \header { title="Kadenzen in C" subtitle="Dreiklänge auf den Diskantsaiten (6. Bund)" arranger = "CC-BY-SA Wikibooks (mjchael)" } myKey = { \tempo 4 = 120 %Tempo ausblenden \set Score.tempoHideNote = ##t \clef "G_8" \time 4/4 \key c \major } myDiskant = { \repeat volta 4{ \repeat volta 2{ \set Staff.midiInstrument = #"electric guitar (jazz)" \stemUp < e'\3 g'\2 c''\1 >2 % C < f'\3 a'\2 c''\1 > % F < d'\3 g'\2 b'\1 >4 % G < d'\3 f'\2 b'\1 >4 % B° < e'\3 g'\2 c''\1 >2 % C } % \repeat volta 2{ \set Staff.midiInstrument = #"electric guitar (clean)" < e'\3 a'\2 c''\1 >2 % Am < f'\3 a'\2 d''\1 > % Dm < e'\3 g'\2 b'\1 >4 % Em < e'\3 gis'\2 b'\1 > % E < e'\3 a'\2 c''\1 >2 % Am } % } } myFretBoards = { \new FretBoards { % \override FretBoards.FretBoard.size = #'1.5 % \override FretBoard.fret-diagram-details.finger-code = #'in-dot % \override FretBoard.fret-diagram-details.dot-color = #'white % \override FretBoard.fret-diagram-details.orientation = #'landscape \myDiskant } } myChords = \chordmode { c2 f g4 b:dim c2 | a2:m d:m e4:m e a2:m | } myGuitar = \myDiskant %% Layout \score { << %% Griffbilder \myFretBoards %% Akkordnamen \new ChordNames { \myChords } %% Noten \new Voice { \myKey \myGuitar } %% Tabulatur \new TabStaff { \tabFullNotation \myGuitar } >> \layout { \omit Voice.StringNumber } } %% Migiausgabe \score { << \unfoldRepeats { \new Staff << \myKey \myDiskant >> } >> \midi {} } %& unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> {{Todo|Cups (When I'm Gone) by Anna Kendrick<br> Hello by Adele<br>Just The Way You Are by Bruno Mars<br>Someone You Loved by Lewis Capaldi|Mjchael}} <poem> Father Charles Goes Down And Ends Battle 3 times • 1st with b • 2nd natural • 3rd with # Fb Cb Gb Db Ab Eb Bb F C G D A E B F# C# G# D# A# E# B# You have to know or to learn C G D A E stands for C D E _ G A _ C major pentatonic A _ C D E _ G A minor pentatonic Fb Cb Gb Db Ab Cb Gb Db Ab Eb Gb Db Ab Eb Bb Db Ab Eb Bb F Ab Eb Bb F C Eb Bb F C G Bb F C G D F C G D A C G D A E G D A E B D A E B F# A E B F# C# E B F# C# G# B F# C# G# D# F# C# G# D# A# C# G# D# A# E# The first note is the root of the major pentatonic The 4th note is the root of the minor pentatonic. One sentence Father Charles Goes Down And Ends Battle Less to lern, more benefits. </poem> <poem> Strategie Tonart runter • Capo rauf C Dur [ F C G Dm Am Em ] C - 3 = A D - 5 = A E - 7 = A A Dur [ D A E Bm F#m C#m ] A - 2 = G C - 5 = G D - 7 = G G Dur [ C G D Am Em Bm ] G - 3 = E A - 5 = E C - 8 = E E Dur = [ A E B7 F#m C#m G#m ] E - 2 = D G - 5 = D A - 7 = D D Dur = [ G D A Em Bm F#m ] D - 2 = C E - 4 = C G - 7 = C C Dur [ F C G Dm Am Em ] Hast du jetzt eine andere Tonart als Start, musst du nur einen Bund hinzufügen oder abziehen (Bb F B Eb Db...) Zwei Grundlagen sind unverzichtbar 1) Der Quintenzirkel um die zusammengehörigen Akkorde zu kennen Fähige Clevere Gitarristen Denken An Ein Barré Father Charles Goes Down And Ends Battle Fb Cb Gb Db Ab Eb Bb F C G D A E B F# C# G# D# A# E# B# 2) Das die Tonleiter (Das Alphabet) runter... G F E D C B A G F E D C B A ... und die Halbtonschritte dazwischen um die Abstände abzuzählen... Für Kreuztonarten G F# F E D# D C# C B A# A G# G F# F E D# D C# C B A# A Für die B-Tonarten G Gb F E Eb D Db C B Bb A Ab G Gb F E Eb D Db C B Bb A Ab Die Kreuz- und B-Tonarten wollen wir eigentlich ganz vermeiden G _ F E _ D _ C B _ A _ G _ F E _ D _ C B _ A _ G Hier siehst du, warum die meisten Capo-Positionen zwei Bünde entfernt sind. Nun zählt auch F und B nicht zu den Lieblingstonarten der Gitarristen. G _ _ E _ D _ C _ _ A _ G _ _ E _ D _ C _ _ A _ G So kommen die Abstände von 3 Bünden zustande. G - 3 = E ( übersprungenes F ) C - 3 = A ( übersprungenes B ) </poem> == Vorübung Still got the Blues == <score sound="1" raw="1"> \version "2.20.0" %{ \header { title="1. Fingersatz (E-(F)-Form) in C-Dur" subtitle="Eintaktige Sequenzen" } %} %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key c \major c8 d e f e d c4 b8 c d e d c b4 a8 b c d c b a \tweak color #red gis a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { c d e f e d c b c d e d c b \break a b c d c b a "g#" a } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=90\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==Lilypond Version== {{Regal:Musik/ Lilypond Version}} === Bonus Balladendiplom === <score sound="1" raw="1"> \version "2.20.0" \header { title="Basis-Pattern" subtitles="My December (Linking Park)" encoder="mjchael" } %Diskant- bzw. Melodiesaiten myDiskant = { d8 d' a f' d d' a f' | % 1 c8 c' g e' c c' g e' | % 1 d8 d' a f' d d' a f' | % 1 c8 c' g e' c c' g e' | % 1 } %Basssaiten, die hier nur mit dem Daumen gespielt werden. myBass = { d4 a d a c4 g c g d4 a d a c4 g c g } % Layout- bzw. Bildausgabe \score { << \new ChordNames { \chordmode { d1:m c d1:m c } } { %Noten \new Staff << \tempo 4 = 120 %Tempo ausblenden \set Score.tempoHideNote = ##t \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 % Balken nur über viertel Noten, nicht über halbe Noten \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/4) \set Timing.beatStructure = #'(1 1 1 1) % Noten im Diskant \myDiskant \\ % Noten im Bass - beachte: Wiederholungszeichen ist für Midi notwendig! \repeat volta 4 \myBass >> } % Tabulatur \new TabStaff { \tabFullNotation \repeat volta 4 << % Tabulatur im Diskant \myDiskant \\ % Tabulatur im Bass \myBass >> } >> \layout {} } % Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 \myDiskant \\ \repeat volta 4 \myBass >> } >> \midi {} } % unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <div style="background-color:FFF;"> === Danny Boy === <score sound="1" raw="1"> \version "2.20.0" \header { title = "Danny Boy" subtitle = "A Londonderry Air (before 1855)" poet = "Lyrics: Frederic Weatherly (1910)" % composer = "Komponist" % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myD = \chordmode { d,4 d d, d } myA = \chordmode { a,,4 a, a,, a, } myDA = \chordmode { d,4 d a,, a, } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 % \myD \myA \myDA \myD % d,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c'{ \partial 4. fis8 g a | b4. a8[ b] e[ d b] | a( g) e4 r8 g b c | d4. e8 d b g b | a2 r8 fis8 g a | b4. a8[ b] e[ d b] | a( g) e4. fis8 g a | b4. c8 b a g fis | g2 r8 d' e fis | g4. fis8 fis e d e | \tweak color #red d( b) g4 r8 d'8 e fis | \break % 11 g4. fis8 fis e d b | a2 r8 d8 8 8 | b'4. a8 8 g e g | d( b) g4 r8 fis8 g a | b e d b a g e fis | g2~ 8 \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Oh, Dan -- ny Boy, the pipes, the pipes are cal -- ling From glen to glen, and down the moun -- tain side The sum -- mer's gone and all the ro -- ses fal -- ling It's you, it's you must go and I must bide. But come ye back when sum -- mer's in the mea -- dow. Or when the val -- ley's hushed and white with snow. And I'll be here in sun -- shine or in sha -- dow. Oh Dan -- ny Boy, oh, Dan -- ny Boy, I love you so. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Tom Dooley to Tabs === <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myG = \chordmode { g,,4 g,8 4 8 4 } myGAm = \chordmode { g,,4 g,8 a,4:m a,8:m a,4:m} myD = \chordmode { d,4 d8 4 8 4 } myDsept = \chordmode { d,4:7 d8:7 d4:7 d8:7 d4:7 } myAm = \chordmode { a,,4:m a,8:m a,4:m a,8:m a,4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myG \myG \myGAm \myD \myAm \myD \myDsept \myG g,,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c'{ d8 4 8 e g4. | b4. b8( b2)| d,8 4 8 e g4. | a1 | d,8 4 e4 g4. | a4. a8~ a2| a8 4 b8 a4 e4 | g1 \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Von G nach C ==== <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key c\major } %% Akkorde %% Lagerfeuer-Schlag %% 1 . 2 + . + 4 . myC = \chordmode { c,4 c8 4 8 4 } myCDm = \chordmode { c,4 c8 d4:m d8:m d4:m} myG = \chordmode { g,,4 g,8 4 8 4 } myGsept = \chordmode { g,,4:7 g,8:7 g,4:7 g,8:7 g,4:7 } myDm = \chordmode { d,4:m d8:m d4:m d8:m d4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myC \myC \myCDm \myG \myDm \myG \myGsept \myC c,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" g8 g8( g8) 8 a c4. | e4. e8( e2)| g,8 g8~ g8 8 a c4. | d1 | g,8 8~ 8 a4 c4. | d4. d8~ d2| d8 d8~ d8 e8 d4 a4 | c1 \bar "|." } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Von G nach C in den Bass ==== <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key c\major } %% Akkorde %% Lagerfeuer-Schlag %% 1 . 2 + . + 4 . myC = \chordmode { c,4 c8 4 8 4 } myCDm = \chordmode { c,4 c8 d4:m d8:m d4:m} myG = \chordmode { g,,4 g,8 4 8 4 } myGsept = \chordmode { g,,4:7 g,8:7 g,4:7 g,8:7 g,4:7 } myDm = \chordmode { d,4:m d8:m d4:m d8:m d4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myC \myC \myCDm \myG \myDm \myG \myGsept \myC c,1 %Schlusston } myMelody = \relative c' { \myKey \set Staff.midiInstrument = #"trombone" g8 4 8 a c4. | e4. e8( e2)| g,8 4 8 a c4. | d1 | g,8 4 a4 c4. | d4. d8~ d2| d8 4 e8 d4 a4 | c1 \bar "|." } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== bon G nach D ==== <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myG = \chordmode { g,,4 g,8 4 8 4 } myGAm = \chordmode { g,,4 g,8 a,4:m a,8:m a,4:m} myD = \chordmode { d,4 d8 4 8 4 } myDsept = \chordmode { d,4:7 d8:7 d4:7 d8:7 d4:7 } myAm = \chordmode { a,,4:m a,8:m a,4:m a,8:m a,4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myG \myG \myGAm \myD \myAm \myD \myDsept \myG g,,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c'{ d8 d8( d8) 8 e g4. | b4. b8( b2)| d,8 4 8 e g4. | a1 | d,8 4 e4 g4. | a4. a8~ a2| a8 4 b8 a4 e4 | g1 \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> == Yes Sir That's my Baby == {{:Liederbuch/ Vorlage:Liedheader |Liedtyp= Charleston (1924) |Alternativtitel= |Text= Gus Kahn (*1886 - † 1941) |Melodie= Walter Donaldson (*1893 - † 1947) |Urheber= |Tonart= |Bearbeiter= Mjchael |Co-Bearbeiter= }} * {{w|Yes Sir, That’s My Baby}} Der Protagonist (Mann oder Frau) bestätigt den Gesprächspartnern, nun verlobt zu sein, und läd diese zur Hochzeit ein. <poem> {{crd|C}} Who's that coming down the {{crd|C#dim}} street, {{crd|G}} who's that looking so petite {{crd|G7}} Who's that coming down to meet me {{crd|C}} here. {{crd|Dm7}} {{crd|G7}} {{crd|C}} Who's that - you know who I {{crd|C#dim}} mean? {{crd|G7}} Sweetest 'who' you've ever seen {{crd|D7}} I {{crd|Am7}} could {{crd|D7}} tell {{crd|Am7}} her {{crd|D7}} miles {{crd|Am7}} a-{{crd|D7}}way from {{crd|G7}} here. {{crd|Em}} {{crd|B7}} {{crd|G7}} {{crd|C}} Yes, sir, that's my {{crd|C#dim}} baby, {{crd|G}} no, sir, I don't mean maybe {{crd|G7}} Yes, sir, that's my baby {{crd|C}} now. {{crd|G7}} {{crd|C}} Yes, ma'am we've de-{{crd|C#dim}}cided, {{crd|G}} no, ma'am we won't hide it {{crd|G7}} Yes ma'am you're invited {{crd|C}} now. By the {{crd|C7}} way, by the {{crd|F}} way, when we {{crd|D7}} reach the preacher I'll {{crd|G7}} say {{crd|G7+5}} {{crd|C}} Yes, sir, that's my {{crd|C#dim}} baby, {{crd|G}} no, sir, I don't mean maybe {{crd|G7}} Yes, sir, that's my baby {{crd|C}} now. {{crd|C}} Well well, 'lookit' that {{crd|C#dim}} baby, {{crd|G}} Do tell, don't say "maybe", {{crd|G7}} Hell's bells, won't she cause some {{crd|C}} row? Pretty {{crd|C7}} soon, Pretty {{crd|F}} soon, We will {{crd|D7}} hear that Lohengrin {{crd|G7}} tune, (I'm sayin'){{crd|G7+5}} {{crd|C}} Who for should she {{crd|C#dim}} be sir, {{crd|G}} No one else but me sir, {{crd|G7}} Yes sir, That's my Baby {{crd|C}} now. {{crd|C7}} {{crd|C}} Yes sir, that's my {{crd|C#dim}} Baby {{crd|G}} Yes sir, I don't mean maybe, {{crd|G7}} Yes sir, That's my Baby {{crd|C}} now </poem> === Yes Sir, That's My Baby (Var2) === <poem> {{crd|C}} Yes {{crd|Am}} sir, {{crd|C}} that's my {{crd|Am}} baby {{crd|G7}} No {{crd|Dm}} sir, {{crd|G7}} don't be {{crd|Dm}} maybe {{crd|G7}} Yes {{crd|Am}} sir, {{crd|G7}} that's my {{crd|Dm}} baby {{crd|C}} now {{crd|G7}} {{crd|C}} Yes {{crd|Am}} ma'am, {{crd|C}} we've de{{crd|Am}}cided {{crd|G7}} No {{crd|Dm}} ma'am, {{crd|G7}} we won't {{crd|Dm}} hide it {{crd|G7}} Yes {{crd|Am}} ma'am, {{crd|G7}} that's my {{crd|Dm}} baby {{crd|C}} now By the way, {{crd|C7}} by the {{crd|F}} way When we {{crd|D7}} meet that preacher I'll {{crd|G7}} say with {{crd|G7sus2}} feel{{crd|G7}}ing {{crd|C}} Yes {{crd|Am}} sir, {{crd|C}} that's my {{crd|Am}} baby {{crd|G7}} No {{crd|Dm}} sir, {{crd|G7}} don't be {{crd|Dm}} maybe <div>{{crd|G7}} Yes {{crd|Am}} sir, {{crd|G7}} that's my {{crd|Dm}} baby {{crd|C}} now. </poem> * {{Youtube-Suche|Yes+Sir+That's+My+Baby|Yes Sir, That's My Baby}} ===Early One Morning=== <poem> ;1 {{crd|D}}Early one morning, just {{crd|G}}as the sun was {{crd|A}}rising I {{crd|D}}heard a maiden singing, from the {{crd|G}}va-{{crd|A}}lley be-{{crd|D}}low: ;Chorus {{crd|A}}Oh, don't de-{{crd|D}}ceive me, {{crd|A}}Oh never {{crd|D}}leave me, {{crd|D}}How could you {{crd|G}}use, a {{crd|D}}poor {{crd|A}}maiden {{crd|D}}so? ;2 Oh {{crd|D}}gay is garland, and {{crd|G}}fresh are the {{crd|A}}roses, I've {{crd|D}}culled from the garden, to {{crd|G}}bind u-{{crd|A}}pon thy {{crd|D}}brow. ;3 Re-{{crd|D}}member the vows, that you {{crd|G}}made to your {{crd|A}}Mary Re-{{crd|D}}member the bow'r, where you {{crd|G}}promised {{crd|A}}to be {{crd|D}}true. ;4 Thus {{crd|D}}sang the poor maid, her {{crd|G}}sorrows be{{crd|A}}wailing, Thus, {{crd|D}}sang the poor maid, in the {{crd|G}}va-{{crd|A}}lley be-{{crd|D}}low. </poem> ===Down In The River To Pray=== <poem> As I went down in the river to pray Studying about that good old way And who shall wear the starry crown Good Lord, show me the way! O sisters let's go down, Let's go down, come on down, O sisters let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the robe and crown Good Lord, show me the way! O brothers let's go down, Let's go down, come on down, Come on brothers let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the starry crown Good Lord, show me the way! O fathers let's go down, Let's go down, come on down, O fathers let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the robe and crown Good Lord, show me the way! O mothers let's go down, Let's go down, don't you want to go down, Come on mothers let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the starry crown Good Lord, show me the way! O sinners let's go down, Let's go down, come on down, O sinners let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the robe and crown Good Lord, show me the way! </poem> === Wild Mountain Thyme === [[Datei:Wild mountain thyme - geograph.org.uk - 25029.jpg|mini]] {{listen|filename=Christoph Nolte - The Rocky Road - The Wild Mountain Thyme.ogg|title=The Wild Mountain Thyme|description="Wild Mountain Thyme" performed by Christoph Nolte}} <score lang="ABC" sound="1"> X: 5 T: Wild Mountain Thyme R: barndance M: 4/4 L: 1/8 K: Gmaj GE|"G"D2 D2 "C"E<G-GA|"G"G6 Bd|"C"e3 e e3 d|"G"Bd-d4 Bd "C"e4 "G"d3 B|"Em"A<G-G4AB|"Am"c3B A3G|"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA| "G"G6 Bd|"C"e3 e e3 d|"G"Bd-d4 Bd|"C"e4 "G"d3 B|"Em"A<G-G4AB| "Am"c3B A3G|"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA|"G"G6| </score> < !-- <score sound="1" raw="1"> \version "2.20.0" \header { title = "Wild Mountain Thyme" % subtitle = "MeinSubtitle" % poet = "Texter" % composer = "Komponist" % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myD = \chordmode { d,4 d d, d } myA = \chordmode { a,,4 a, a,, a, } myDA = \chordmode { d,4 d a,, a, } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t \partial 4 s4 \myD \myA \myDA \myD d,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c''{ \partial 4 g8 e d4 d e16 g8.~8 a | g2. b8 d | e4. e8 e4. d8 | b d8~2 b8 d | % GE|"G"D2 D2 "C"E<G-GA|"G"G6 Bd|"C"e3 e e3 d|"G"Bd-d4 Bd e2 d4. b8 | a16 g8.~2 a8 b | c4. b8 a4. g8 |e8 g8~2 g8 e | d4 4 e16 g8.~g8 a % "C"e4 "G"d3 B|"Em"A<G-G4AB|"Am"c3B A3G |"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA| c4. b8 a4. g8 | e g8~2 8 e | d4 4 e16 g8.~8 a | g2. % "Am"c3B A3G|"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA|"G"G6| \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Häns -- chen klein | ging al -- lein | in das Haus hin | -- ein. | } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> --> (also known as "Purple Heather" and "Will Ye Go, Lassie, Go?") is a Scottish/Irish folk song. <poem> ;1 O the summer time has come And the trees are sweetly blooming And wild mountain thyme Grows around the purple heather. Will you go, lassie, go? ;Chorus And we'll all go together, To pull wild mountain thyme, All around the purple heather. Will you go, lassie, go? ;2 I will build my love a tower, By yon clear crystal fountain, And on it I will pile, All the flowers of the mountain. Will you go, lassie, go? ;3 I will range through the wilds And the deep land so dreary And return with the spoils To the bower o' my dearie. Will ye go lassie go ? ;4 If my true love she'll not come, Then I'll surely find another, To pull wild mountain thyme, All around the purple heather. Will you go, lassie, go? </poem> == Akkordfolge NEM == <score> << \new ChordNames { \chordmode { d1 c g b }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'white \override FretBoard.fret-diagram-details.orientation = #'landscape < d-1\5 a-2\4 d'-3\3 fis'-4\2 a'-1\1 > % d < c-1\5 g-2\4 c'-3\3 e'-4\2 g'-1\1 > % C/B < g,-1 d-3 g-4 b-2 d'-1 g'-1 > % G < b,-1\5 fis-2\4 b-3\3 dis'-4\2 fis'-1\1 > % B } >> </score> <score> << \new ChordNames { \chordmode { c1 a g e d }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot % \override FretBoard.fret-diagram-details.dot-color = #'blue \override FretBoard.fret-diagram-details.orientation = #'landscape < e\6 c'\5 e'\4 g'\3 c''\2 e''\1 > % C < e\6 a\5 e'\4 a'\3 cis''\2 e''\1 > % A < g\6 b\5 d'\4 g'\3 b'\2 g''\1 > % G < e\6 b\5 e'\4 gis'\3 b'\2 e''\1 > % E < d'\4 a'\3 d''\2 fis''\1 > % d } \new ChordNames { \chordmode { c1:m a:m g:m e:m d:m }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'blue \override FretBoard.fret-diagram-details.orientation = #'landscape < es\6 c'\5 es'\4 g'\3 c''\2 es''\1 > % C < e\6 a\5 e'\4 a'\3 c''\2 e''\1 > % A < g\6 bes\5 d'\4 g'\3 bes'\2 g''\1 > % G < e\6 b\5 e'\4 g'\3 b'\2 e''\1 > % E < d'\4 a'\3 d''\2 f''\1 > % d } >> </score> == Canon in D == <score sound="1" raw="1"> \version "2.20.0" \header { title = "Canon" composer = "M: Johann Pachebel (1653-1706)" key="D" composer= "Pachelbel" arranger = "arr.: ccbysa Wikibooks (mjchael)" } myKey = { \language "deutsch" \tempo 4 = 100 %Tempo ausblenden \set Score.tempoHideNote = ##t \clef "G_8" \time 4/4 \key d \major \set Staff.midiInstrument = #"electric guitar (clean)" } myMelody = \relative c { \myKey \set minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \stemUp \repeat volta 2{} %^\markup { \bold {Em7} } %\break fis2 e d cis h a h cis \voiceOne fis' e d cis h a h cis fis e d cis h a h cis d4 \oneVoice d e cis d fis a a, h g fis a g d' cis a d8 cis d fis, a a cis4 d8 d fis4 a a8 h g fis e g fis e d cis \voiceOne h cis d4~ d8 cis16 d cis4 d8 cis d fis, a4 cis d fis a a8 h g fis e g fis e d cis h a d4 ~ d8 cis16 d cis4\trill \oneVoice \set Timing.beatStructure = #'(1 1 1 1) d8 fis16 g a8 fis16 g a a, h cis d e fis g fis8 d16 e fis8 fis,16 g a h a g a fis g a d8 h16 a g8 fis16 e fis e d e fis g a h d8 h16a h8 e16 d cis h cis d e fis g e fis8 d16 cis d8 fis, e cis'16 d e8 cis % fis d16 cis d8 fis, e cis'16 d e8 cis d h16 a h8 d, cis fis16 g a8 fis h g16 fis g8 h a fis'16 e fis8 d h d16 cis d8 fis, e a d cis \voiceOne \set Timing.beatStructure = #'(2 2) d4. fis8 fis g fis e d4. d8 d e d cis h4. h8 a4 d d8 c h c a2 \oneVoice d4 fis8 a a h a g \voiceOne s1 s h,2 a ~ a4 \oneVoice d e cis d fis, a4. h8 g4 d fis a \voiceOne g fis e a fis1\fermata \bar "||." % \bar "|." | } Gitarre = \myMelody %% Layout = Noten mit Tab \score { << %% Noten \new Voice { \myKey \Gitarre } %% Tabulatur \new TabStaff { \tabFullNotation \Gitarre } >> \layout {} } %% Midiausgabe \score { << \unfoldRepeats { \new Staff << \myKey \Gitarre >> } >> \midi {} } %& unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %& DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> == Takte auszählen == GEMISCHTE TAKTE AUSZÄHLEN Speziell ein Tutorial für Kerstin Jentzsch Ich gehe mal davon aus, das du dich ganz grob mit den Notenwerten auskennst, und eine Methode suchst, wie du sie beim täglichen Üben einsetzen kannst. Versuche es mal mit Zahlen. Die Idee hab ich von Mike Schönmehl "Jazz und Pop Musiklehre" Atlantis-Schott-Musikverlag Alle viertel-Noten werden mit einfachen Zahlen ausgesprochen 1 . 2 . 3 . 4 . Eins zwei drei vier oder fünf sechs sieben acht oder neun zehn elf zwölf Es ist egal welche dieser Zahlenfolgen du nimmst es ist für jede Zahl nur eine Silbe. Jetzt komme die Achtel: 1 + 2 + 3 + 4 + Drei-zehn, vier-zehn, fünf-zehn, sech-zehn sieb-zehn, ach-zehn, neun-zehn, zwan-zig Was auch gut geht ist Ein-er, Zwei-er, Drei-er, vier-er Hier haben alle Zahlen zwei Silben und teilen sich wie zwei Achtel auf. Jetzt kommen die Sechzehntel 1 e + e 2 e + e 3 e + e 4 e + e Ein-und-zwan-zig, Zwei-und-zwan-zig, Drei-und-zwan-zig, Vier-und-zwan-zig Fünf-und-zwan-zig, Sechs-und-zwan-zieg, sieben-und-zwan-zieg, Acht-und-zwan-zig Hier haben alle Zahlen vier Silben und teilen sich wie vier Sechzentel auf. Jetzt die Triolen: 1-er-lei 2-er-lei 3-er-lei 4-er-lei Ein-hun-dert, Zwei-hun-dert, Drei-hun-dert, Vier-hun-dert Hier haben alle Zahlen drei Silben und teilen sich wie drei Triolen auf. Wir sind es beim Zählen gewöhnt, in bestimmten Schritten zu zählen, so das wir 1-12 meist genau so langsam bzw. schnell zählen wie 13-20 oder wie 21-29. Und auch die Hunderter werden im gleichen Schritt gezählt. Man macht ganz automatisch zwei-Achtel, vier-Sechzentel oder 3-Triolen. Man kann versuchen, sich für viele Rhyhtmen einfach eine Zahlenfolge aufschreiben, und sich auch neue Kombinationen einfallen lassen. Wie wäre es wenn man viertel, triolen und Sechzentel miteiander übt? Eins | Zwei-hund-dert | drei | vier-und-zwan-zig Ein-und-zwan-zig| zwei | drei-hun-dert | vier Zehner-Zahlen könnten sich sogar für einen Schuffle eignen 1 . + 2 . + 3 . + 4 . + Bei der Zehn muss man sich was einfallen lassen, aber dann kann man gut im Shuffle zählen Zehn---tel, Zwan---zig, Drei---ßig, Vier---zig Zehn---tel, Zwei-hund-dert, Drei---ßig, Vier---zig So in etwa Die Methode ist nicht der Weisheit letzter Schluss, aber vielleicht hilft es dem einen oder anderen beim Üben. Gruß Mjchael ===Gallerie von Red_Rooster=== Die meisten Gifs und JPG wurden von Red_Rooster hochgeladen. Die müssen nach SVG umgestaltet werden. <!-- Bilder durch SVG ersetzen --> {{Klappbox|style=border:1px solid grey; margin:6px 0 6px 0;|bg1=#EAEAEA|verborgen=true|ta1=left|fw1=bold |Titel= Bilder durch SVG ersetzen |Inhalt= {{rot|Bilder nicht löschen!!!!!!!!! Sie müssen weltweit durch SVG ausgetauscht werden, und dann erst auf den Commons für die Schnelllöschung vorgeschlagen werden, und dann erst dürfen sie entfernt werden. Und das mache ich selbst!}} <gallery> Image:00.01.D.1.png| Image:00.01.D.2.png| Image:01.01.D_A1.png| Image:01.01.D_A2.png| Image:01.01.D_A3.png| Image:01.01.D_A4.png| Image:01.01.D_A5.png| Image:01.01.D_A6.png| Image:01.01.D_A7.png| Image:01.01.D_A8.png| Image:01.01.D_A91.png| Image:01.01.D_A92.png| Image:02.01.D.gif| Image:02.01.DG1.gif| Image:02.01.DG2.gif| Image:02.01.DG3.gif| Image:02.01.G.gif| Image:02.01.G_Schluessel.png| Image:%03.01.C.gif| Image:03.01.D_C.gif| Image:03.01.G C.png| Image:Druck_mittig.png| Image:Druck_zu_dicht.png| Image:Druck_zu_weit.png| Image:%Durstellung.gif| Image:Durstellung1_4.gif| Image:EADGHE.gif| Image:%G_Langsam.gif| Image:Halbtonschritte_I.gif| Image:HCF.gif| Image:Mollstellung1_3.gif| Image:MR_Durstellung.gif| Image:MR_Mollstellung.gif| </gallery> }} <pre> {{duplicate|Crd_Form_C.svg}} *replaced by [[image:Crd Form C.svg]] *original is unused or replaced --~~~~ </pre> == Spielwiese == *[[Benutzer:Mjchael/ Spielweise | Spielweise (Tests für meine Projekte)]] == Zeichnen und Schreiben == *[[Gitarre: Grifftabelle einfach | einfache Grifftabelle]] *[[Liederbuch]] (weitere Übungsbeispiele für die "Diplome" == Eigendichtungen == *[[Benutzer:Mjchael/ Eigendichtungen | Lob und Kritik und Ideen für selbstkomponierte Lieder]] ==Lieder== [[Liederbuch/ Pläne und Wünsche]] == Seitenüberblick == <!-- Alle Gitarrenseiten --> {{Klappbox|style=border:1px solid grey; margin:6px 0 6px 0;|bg1=#EAEAEA|verborgen=true|ta1=left|fw1=bold |Titel= Alle Gitarrenseiten |Inhalt={{Spezial:Prefixindex/Gitarre}} }} <!-- Alle Liederbuchseiten --> {{Klappbox|style=border:1px solid grey; margin:6px 0 6px 0;|bg1=#EAEAEA|verborgen=true|ta1=left|fw1=bold |Titel= Alle Liederbuchseiten |Inhalt={{Spezial:Prefixindex/Liederbuch}} }} <!-- Ende Inhalt --> |} <!-- Ende Äußere Tabelle --> j3fmn7fqyfttapwm1mzp3hvlto5w03g 1091085 1091084 2026-09-19T14:24:20Z Mjchael 2222 /* Akut */ 1091085 wikitext text/x-wiki <!-- BEGINN SEITE --> {| width="100%" cellspacing="0" cellpadding="0" valign="top"| |- <!-- SEITE:TABS --> |<!-- BEGINN SEITE:TABS --> {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" |- {{Benutzer:Mjchael/TabVoll|#dfefdf|User:Mjchael|Mjchael}} {{Benutzer:Mjchael/TabVoll|#f0f0f8|User:Mjchael/Projekte|Projekte}} {{Benutzer:Mjchael/TabOffen|#f0f0f8|User:Mjchael/Werkstatt|Werkstatt}} {{Benutzer:Mjchael/TabVoll|#f0f0f8|User:Mjchael/ Hilfen|Hilfen}} {{Benutzer:Mjchael/TabVoll|#f0f0f8|User:Mjchael/Sammlungen|Sammlungen}} | style="background-color:#f8f8ff;border-bottom:1px solid #000" width="100"| &nbsp; |}<!-- ENDE SEITE:TABS --> {|width="100%" cellpadding="2" cellspacing="0" style="text-align:left; border:solid #000000; border-width:0px 1px 1px 1px;" valign="top"| |- |bgcolor="#dfefdf" valign="top"|<!-- Äußere Tabelle linke Spalte --> <!-- Anfang Inhalt --> *[[:Kategorie:todo Mjchael|meine Todo-Liste]] === Akut === ;Bm7-Form <score> << \new ChordNames { \chordmode { \set chordChanges = ##t b:m7 b:m7 c:m7 c:m7 } } \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'white \override FretBoard.fret-diagram-details.orientation = #'landscape < b,-1 d a-2 b >1 % Bm < b,-1 d a-2 d-3 >1 % Bm < c,-3 es-1 b-4 c'-1 >1 % Cm7 < c,-3 es-1 b-4 e'-4 >1 % Cm7 }>> </score> {{:Gitarre/ Navi|Formen-Systematik| {{:Gitarre: Formen-Systematik/ Navi}}| img=Guitar 1.svg |bg=#F8f8f8|border=#666666|color=#333333|px=80|navi=Formen-Systematik}} <score sound="1" raw="1"> \version "2.20.0" \header { title="Kadenzen in C" subtitle="Dreiklänge auf den Diskantsaiten (6. Bund)" arranger = "CC-BY-SA Wikibooks (mjchael)" } myKey = { \tempo 4 = 120 %Tempo ausblenden \set Score.tempoHideNote = ##t \clef "G_8" \time 4/4 \key c \major } myDiskant = { \repeat volta 4{ \repeat volta 2{ \set Staff.midiInstrument = #"electric guitar (jazz)" \stemUp < e'\3 g'\2 c''\1 >2 % C < f'\3 a'\2 c''\1 > % F < d'\3 g'\2 b'\1 >4 % G < d'\3 f'\2 b'\1 >4 % B° < e'\3 g'\2 c''\1 >2 % C } % \repeat volta 2{ \set Staff.midiInstrument = #"electric guitar (clean)" < e'\3 a'\2 c''\1 >2 % Am < f'\3 a'\2 d''\1 > % Dm < e'\3 g'\2 b'\1 >4 % Em < e'\3 gis'\2 b'\1 > % E < e'\3 a'\2 c''\1 >2 % Am } % } } myFretBoards = { \new FretBoards { % \override FretBoards.FretBoard.size = #'1.5 % \override FretBoard.fret-diagram-details.finger-code = #'in-dot % \override FretBoard.fret-diagram-details.dot-color = #'white % \override FretBoard.fret-diagram-details.orientation = #'landscape \myDiskant } } myChords = \chordmode { c2 f g4 b:dim c2 | a2:m d:m e4:m e a2:m | } myGuitar = \myDiskant %% Layout \score { << %% Griffbilder \myFretBoards %% Akkordnamen \new ChordNames { \myChords } %% Noten \new Voice { \myKey \myGuitar } %% Tabulatur \new TabStaff { \tabFullNotation \myGuitar } >> \layout { \omit Voice.StringNumber } } %% Migiausgabe \score { << \unfoldRepeats { \new Staff << \myKey \myDiskant >> } >> \midi {} } %& unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> {{Todo|Cups (When I'm Gone) by Anna Kendrick<br> Hello by Adele<br>Just The Way You Are by Bruno Mars<br>Someone You Loved by Lewis Capaldi|Mjchael}} <poem> Father Charles Goes Down And Ends Battle 3 times • 1st with b • 2nd natural • 3rd with # Fb Cb Gb Db Ab Eb Bb F C G D A E B F# C# G# D# A# E# B# You have to know or to learn C G D A E stands for C D E _ G A _ C major pentatonic A _ C D E _ G A minor pentatonic Fb Cb Gb Db Ab Cb Gb Db Ab Eb Gb Db Ab Eb Bb Db Ab Eb Bb F Ab Eb Bb F C Eb Bb F C G Bb F C G D F C G D A C G D A E G D A E B D A E B F# A E B F# C# E B F# C# G# B F# C# G# D# F# C# G# D# A# C# G# D# A# E# The first note is the root of the major pentatonic The 4th note is the root of the minor pentatonic. One sentence Father Charles Goes Down And Ends Battle Less to lern, more benefits. </poem> <poem> Strategie Tonart runter • Capo rauf C Dur [ F C G Dm Am Em ] C - 3 = A D - 5 = A E - 7 = A A Dur [ D A E Bm F#m C#m ] A - 2 = G C - 5 = G D - 7 = G G Dur [ C G D Am Em Bm ] G - 3 = E A - 5 = E C - 8 = E E Dur = [ A E B7 F#m C#m G#m ] E - 2 = D G - 5 = D A - 7 = D D Dur = [ G D A Em Bm F#m ] D - 2 = C E - 4 = C G - 7 = C C Dur [ F C G Dm Am Em ] Hast du jetzt eine andere Tonart als Start, musst du nur einen Bund hinzufügen oder abziehen (Bb F B Eb Db...) Zwei Grundlagen sind unverzichtbar 1) Der Quintenzirkel um die zusammengehörigen Akkorde zu kennen Fähige Clevere Gitarristen Denken An Ein Barré Father Charles Goes Down And Ends Battle Fb Cb Gb Db Ab Eb Bb F C G D A E B F# C# G# D# A# E# B# 2) Das die Tonleiter (Das Alphabet) runter... G F E D C B A G F E D C B A ... und die Halbtonschritte dazwischen um die Abstände abzuzählen... Für Kreuztonarten G F# F E D# D C# C B A# A G# G F# F E D# D C# C B A# A Für die B-Tonarten G Gb F E Eb D Db C B Bb A Ab G Gb F E Eb D Db C B Bb A Ab Die Kreuz- und B-Tonarten wollen wir eigentlich ganz vermeiden G _ F E _ D _ C B _ A _ G _ F E _ D _ C B _ A _ G Hier siehst du, warum die meisten Capo-Positionen zwei Bünde entfernt sind. Nun zählt auch F und B nicht zu den Lieblingstonarten der Gitarristen. G _ _ E _ D _ C _ _ A _ G _ _ E _ D _ C _ _ A _ G So kommen die Abstände von 3 Bünden zustande. G - 3 = E ( übersprungenes F ) C - 3 = A ( übersprungenes B ) </poem> == Vorübung Still got the Blues == <score sound="1" raw="1"> \version "2.20.0" %{ \header { title="1. Fingersatz (E-(F)-Form) in C-Dur" subtitle="Eintaktige Sequenzen" } %} %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key c \major c8 d e f e d c4 b8 c d e d c b4 a8 b c d c b a \tweak color #red gis a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { c d e f e d c b c d e d c b \break a b c d c b a "g#" a } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=90\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==Lilypond Version== {{Regal:Musik/ Lilypond Version}} === Bonus Balladendiplom === <score sound="1" raw="1"> \version "2.20.0" \header { title="Basis-Pattern" subtitles="My December (Linking Park)" encoder="mjchael" } %Diskant- bzw. Melodiesaiten myDiskant = { d8 d' a f' d d' a f' | % 1 c8 c' g e' c c' g e' | % 1 d8 d' a f' d d' a f' | % 1 c8 c' g e' c c' g e' | % 1 } %Basssaiten, die hier nur mit dem Daumen gespielt werden. myBass = { d4 a d a c4 g c g d4 a d a c4 g c g } % Layout- bzw. Bildausgabe \score { << \new ChordNames { \chordmode { d1:m c d1:m c } } { %Noten \new Staff << \tempo 4 = 120 %Tempo ausblenden \set Score.tempoHideNote = ##t \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 % Balken nur über viertel Noten, nicht über halbe Noten \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/4) \set Timing.beatStructure = #'(1 1 1 1) % Noten im Diskant \myDiskant \\ % Noten im Bass - beachte: Wiederholungszeichen ist für Midi notwendig! \repeat volta 4 \myBass >> } % Tabulatur \new TabStaff { \tabFullNotation \repeat volta 4 << % Tabulatur im Diskant \myDiskant \\ % Tabulatur im Bass \myBass >> } >> \layout {} } % Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 \myDiskant \\ \repeat volta 4 \myBass >> } >> \midi {} } % unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <div style="background-color:FFF;"> === Danny Boy === <score sound="1" raw="1"> \version "2.20.0" \header { title = "Danny Boy" subtitle = "A Londonderry Air (before 1855)" poet = "Lyrics: Frederic Weatherly (1910)" % composer = "Komponist" % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myD = \chordmode { d,4 d d, d } myA = \chordmode { a,,4 a, a,, a, } myDA = \chordmode { d,4 d a,, a, } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 % \myD \myA \myDA \myD % d,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c'{ \partial 4. fis8 g a | b4. a8[ b] e[ d b] | a( g) e4 r8 g b c | d4. e8 d b g b | a2 r8 fis8 g a | b4. a8[ b] e[ d b] | a( g) e4. fis8 g a | b4. c8 b a g fis | g2 r8 d' e fis | g4. fis8 fis e d e | \tweak color #red d( b) g4 r8 d'8 e fis | \break % 11 g4. fis8 fis e d b | a2 r8 d8 8 8 | b'4. a8 8 g e g | d( b) g4 r8 fis8 g a | b e d b a g e fis | g2~ 8 \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Oh, Dan -- ny Boy, the pipes, the pipes are cal -- ling From glen to glen, and down the moun -- tain side The sum -- mer's gone and all the ro -- ses fal -- ling It's you, it's you must go and I must bide. But come ye back when sum -- mer's in the mea -- dow. Or when the val -- ley's hushed and white with snow. And I'll be here in sun -- shine or in sha -- dow. Oh Dan -- ny Boy, oh, Dan -- ny Boy, I love you so. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Tom Dooley to Tabs === <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myG = \chordmode { g,,4 g,8 4 8 4 } myGAm = \chordmode { g,,4 g,8 a,4:m a,8:m a,4:m} myD = \chordmode { d,4 d8 4 8 4 } myDsept = \chordmode { d,4:7 d8:7 d4:7 d8:7 d4:7 } myAm = \chordmode { a,,4:m a,8:m a,4:m a,8:m a,4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myG \myG \myGAm \myD \myAm \myD \myDsept \myG g,,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c'{ d8 4 8 e g4. | b4. b8( b2)| d,8 4 8 e g4. | a1 | d,8 4 e4 g4. | a4. a8~ a2| a8 4 b8 a4 e4 | g1 \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Von G nach C ==== <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key c\major } %% Akkorde %% Lagerfeuer-Schlag %% 1 . 2 + . + 4 . myC = \chordmode { c,4 c8 4 8 4 } myCDm = \chordmode { c,4 c8 d4:m d8:m d4:m} myG = \chordmode { g,,4 g,8 4 8 4 } myGsept = \chordmode { g,,4:7 g,8:7 g,4:7 g,8:7 g,4:7 } myDm = \chordmode { d,4:m d8:m d4:m d8:m d4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myC \myC \myCDm \myG \myDm \myG \myGsept \myC c,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" g8 g8( g8) 8 a c4. | e4. e8( e2)| g,8 g8~ g8 8 a c4. | d1 | g,8 8~ 8 a4 c4. | d4. d8~ d2| d8 d8~ d8 e8 d4 a4 | c1 \bar "|." } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Von G nach C in den Bass ==== <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key c\major } %% Akkorde %% Lagerfeuer-Schlag %% 1 . 2 + . + 4 . myC = \chordmode { c,4 c8 4 8 4 } myCDm = \chordmode { c,4 c8 d4:m d8:m d4:m} myG = \chordmode { g,,4 g,8 4 8 4 } myGsept = \chordmode { g,,4:7 g,8:7 g,4:7 g,8:7 g,4:7 } myDm = \chordmode { d,4:m d8:m d4:m d8:m d4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myC \myC \myCDm \myG \myDm \myG \myGsept \myC c,1 %Schlusston } myMelody = \relative c' { \myKey \set Staff.midiInstrument = #"trombone" g8 4 8 a c4. | e4. e8( e2)| g,8 4 8 a c4. | d1 | g,8 4 a4 c4. | d4. d8~ d2| d8 4 e8 d4 a4 | c1 \bar "|." } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== bon G nach D ==== <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myG = \chordmode { g,,4 g,8 4 8 4 } myGAm = \chordmode { g,,4 g,8 a,4:m a,8:m a,4:m} myD = \chordmode { d,4 d8 4 8 4 } myDsept = \chordmode { d,4:7 d8:7 d4:7 d8:7 d4:7 } myAm = \chordmode { a,,4:m a,8:m a,4:m a,8:m a,4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myG \myG \myGAm \myD \myAm \myD \myDsept \myG g,,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c'{ d8 d8( d8) 8 e g4. | b4. b8( b2)| d,8 4 8 e g4. | a1 | d,8 4 e4 g4. | a4. a8~ a2| a8 4 b8 a4 e4 | g1 \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> == Yes Sir That's my Baby == {{:Liederbuch/ Vorlage:Liedheader |Liedtyp= Charleston (1924) |Alternativtitel= |Text= Gus Kahn (*1886 - † 1941) |Melodie= Walter Donaldson (*1893 - † 1947) |Urheber= |Tonart= |Bearbeiter= Mjchael |Co-Bearbeiter= }} * {{w|Yes Sir, That’s My Baby}} Der Protagonist (Mann oder Frau) bestätigt den Gesprächspartnern, nun verlobt zu sein, und läd diese zur Hochzeit ein. <poem> {{crd|C}} Who's that coming down the {{crd|C#dim}} street, {{crd|G}} who's that looking so petite {{crd|G7}} Who's that coming down to meet me {{crd|C}} here. {{crd|Dm7}} {{crd|G7}} {{crd|C}} Who's that - you know who I {{crd|C#dim}} mean? {{crd|G7}} Sweetest 'who' you've ever seen {{crd|D7}} I {{crd|Am7}} could {{crd|D7}} tell {{crd|Am7}} her {{crd|D7}} miles {{crd|Am7}} a-{{crd|D7}}way from {{crd|G7}} here. {{crd|Em}} {{crd|B7}} {{crd|G7}} {{crd|C}} Yes, sir, that's my {{crd|C#dim}} baby, {{crd|G}} no, sir, I don't mean maybe {{crd|G7}} Yes, sir, that's my baby {{crd|C}} now. {{crd|G7}} {{crd|C}} Yes, ma'am we've de-{{crd|C#dim}}cided, {{crd|G}} no, ma'am we won't hide it {{crd|G7}} Yes ma'am you're invited {{crd|C}} now. By the {{crd|C7}} way, by the {{crd|F}} way, when we {{crd|D7}} reach the preacher I'll {{crd|G7}} say {{crd|G7+5}} {{crd|C}} Yes, sir, that's my {{crd|C#dim}} baby, {{crd|G}} no, sir, I don't mean maybe {{crd|G7}} Yes, sir, that's my baby {{crd|C}} now. {{crd|C}} Well well, 'lookit' that {{crd|C#dim}} baby, {{crd|G}} Do tell, don't say "maybe", {{crd|G7}} Hell's bells, won't she cause some {{crd|C}} row? Pretty {{crd|C7}} soon, Pretty {{crd|F}} soon, We will {{crd|D7}} hear that Lohengrin {{crd|G7}} tune, (I'm sayin'){{crd|G7+5}} {{crd|C}} Who for should she {{crd|C#dim}} be sir, {{crd|G}} No one else but me sir, {{crd|G7}} Yes sir, That's my Baby {{crd|C}} now. {{crd|C7}} {{crd|C}} Yes sir, that's my {{crd|C#dim}} Baby {{crd|G}} Yes sir, I don't mean maybe, {{crd|G7}} Yes sir, That's my Baby {{crd|C}} now </poem> === Yes Sir, That's My Baby (Var2) === <poem> {{crd|C}} Yes {{crd|Am}} sir, {{crd|C}} that's my {{crd|Am}} baby {{crd|G7}} No {{crd|Dm}} sir, {{crd|G7}} don't be {{crd|Dm}} maybe {{crd|G7}} Yes {{crd|Am}} sir, {{crd|G7}} that's my {{crd|Dm}} baby {{crd|C}} now {{crd|G7}} {{crd|C}} Yes {{crd|Am}} ma'am, {{crd|C}} we've de{{crd|Am}}cided {{crd|G7}} No {{crd|Dm}} ma'am, {{crd|G7}} we won't {{crd|Dm}} hide it {{crd|G7}} Yes {{crd|Am}} ma'am, {{crd|G7}} that's my {{crd|Dm}} baby {{crd|C}} now By the way, {{crd|C7}} by the {{crd|F}} way When we {{crd|D7}} meet that preacher I'll {{crd|G7}} say with {{crd|G7sus2}} feel{{crd|G7}}ing {{crd|C}} Yes {{crd|Am}} sir, {{crd|C}} that's my {{crd|Am}} baby {{crd|G7}} No {{crd|Dm}} sir, {{crd|G7}} don't be {{crd|Dm}} maybe <div>{{crd|G7}} Yes {{crd|Am}} sir, {{crd|G7}} that's my {{crd|Dm}} baby {{crd|C}} now. </poem> * {{Youtube-Suche|Yes+Sir+That's+My+Baby|Yes Sir, That's My Baby}} ===Early One Morning=== <poem> ;1 {{crd|D}}Early one morning, just {{crd|G}}as the sun was {{crd|A}}rising I {{crd|D}}heard a maiden singing, from the {{crd|G}}va-{{crd|A}}lley be-{{crd|D}}low: ;Chorus {{crd|A}}Oh, don't de-{{crd|D}}ceive me, {{crd|A}}Oh never {{crd|D}}leave me, {{crd|D}}How could you {{crd|G}}use, a {{crd|D}}poor {{crd|A}}maiden {{crd|D}}so? ;2 Oh {{crd|D}}gay is garland, and {{crd|G}}fresh are the {{crd|A}}roses, I've {{crd|D}}culled from the garden, to {{crd|G}}bind u-{{crd|A}}pon thy {{crd|D}}brow. ;3 Re-{{crd|D}}member the vows, that you {{crd|G}}made to your {{crd|A}}Mary Re-{{crd|D}}member the bow'r, where you {{crd|G}}promised {{crd|A}}to be {{crd|D}}true. ;4 Thus {{crd|D}}sang the poor maid, her {{crd|G}}sorrows be{{crd|A}}wailing, Thus, {{crd|D}}sang the poor maid, in the {{crd|G}}va-{{crd|A}}lley be-{{crd|D}}low. </poem> ===Down In The River To Pray=== <poem> As I went down in the river to pray Studying about that good old way And who shall wear the starry crown Good Lord, show me the way! O sisters let's go down, Let's go down, come on down, O sisters let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the robe and crown Good Lord, show me the way! O brothers let's go down, Let's go down, come on down, Come on brothers let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the starry crown Good Lord, show me the way! O fathers let's go down, Let's go down, come on down, O fathers let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the robe and crown Good Lord, show me the way! O mothers let's go down, Let's go down, don't you want to go down, Come on mothers let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the starry crown Good Lord, show me the way! O sinners let's go down, Let's go down, come on down, O sinners let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the robe and crown Good Lord, show me the way! </poem> === Wild Mountain Thyme === [[Datei:Wild mountain thyme - geograph.org.uk - 25029.jpg|mini]] {{listen|filename=Christoph Nolte - The Rocky Road - The Wild Mountain Thyme.ogg|title=The Wild Mountain Thyme|description="Wild Mountain Thyme" performed by Christoph Nolte}} <score lang="ABC" sound="1"> X: 5 T: Wild Mountain Thyme R: barndance M: 4/4 L: 1/8 K: Gmaj GE|"G"D2 D2 "C"E<G-GA|"G"G6 Bd|"C"e3 e e3 d|"G"Bd-d4 Bd "C"e4 "G"d3 B|"Em"A<G-G4AB|"Am"c3B A3G|"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA| "G"G6 Bd|"C"e3 e e3 d|"G"Bd-d4 Bd|"C"e4 "G"d3 B|"Em"A<G-G4AB| "Am"c3B A3G|"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA|"G"G6| </score> < !-- <score sound="1" raw="1"> \version "2.20.0" \header { title = "Wild Mountain Thyme" % subtitle = "MeinSubtitle" % poet = "Texter" % composer = "Komponist" % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myD = \chordmode { d,4 d d, d } myA = \chordmode { a,,4 a, a,, a, } myDA = \chordmode { d,4 d a,, a, } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t \partial 4 s4 \myD \myA \myDA \myD d,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c''{ \partial 4 g8 e d4 d e16 g8.~8 a | g2. b8 d | e4. e8 e4. d8 | b d8~2 b8 d | % GE|"G"D2 D2 "C"E<G-GA|"G"G6 Bd|"C"e3 e e3 d|"G"Bd-d4 Bd e2 d4. b8 | a16 g8.~2 a8 b | c4. b8 a4. g8 |e8 g8~2 g8 e | d4 4 e16 g8.~g8 a % "C"e4 "G"d3 B|"Em"A<G-G4AB|"Am"c3B A3G |"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA| c4. b8 a4. g8 | e g8~2 8 e | d4 4 e16 g8.~8 a | g2. % "Am"c3B A3G|"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA|"G"G6| \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Häns -- chen klein | ging al -- lein | in das Haus hin | -- ein. | } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> --> (also known as "Purple Heather" and "Will Ye Go, Lassie, Go?") is a Scottish/Irish folk song. <poem> ;1 O the summer time has come And the trees are sweetly blooming And wild mountain thyme Grows around the purple heather. Will you go, lassie, go? ;Chorus And we'll all go together, To pull wild mountain thyme, All around the purple heather. Will you go, lassie, go? ;2 I will build my love a tower, By yon clear crystal fountain, And on it I will pile, All the flowers of the mountain. Will you go, lassie, go? ;3 I will range through the wilds And the deep land so dreary And return with the spoils To the bower o' my dearie. Will ye go lassie go ? ;4 If my true love she'll not come, Then I'll surely find another, To pull wild mountain thyme, All around the purple heather. Will you go, lassie, go? </poem> == Akkordfolge NEM == <score> << \new ChordNames { \chordmode { d1 c g b }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'white \override FretBoard.fret-diagram-details.orientation = #'landscape < d-1\5 a-2\4 d'-3\3 fis'-4\2 a'-1\1 > % d < c-1\5 g-2\4 c'-3\3 e'-4\2 g'-1\1 > % C/B < g,-1 d-3 g-4 b-2 d'-1 g'-1 > % G < b,-1\5 fis-2\4 b-3\3 dis'-4\2 fis'-1\1 > % B } >> </score> <score> << \new ChordNames { \chordmode { c1 a g e d }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot % \override FretBoard.fret-diagram-details.dot-color = #'blue \override FretBoard.fret-diagram-details.orientation = #'landscape < e\6 c'\5 e'\4 g'\3 c''\2 e''\1 > % C < e\6 a\5 e'\4 a'\3 cis''\2 e''\1 > % A < g\6 b\5 d'\4 g'\3 b'\2 g''\1 > % G < e\6 b\5 e'\4 gis'\3 b'\2 e''\1 > % E < d'\4 a'\3 d''\2 fis''\1 > % d } \new ChordNames { \chordmode { c1:m a:m g:m e:m d:m }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'blue \override FretBoard.fret-diagram-details.orientation = #'landscape < es\6 c'\5 es'\4 g'\3 c''\2 es''\1 > % C < e\6 a\5 e'\4 a'\3 c''\2 e''\1 > % A < g\6 bes\5 d'\4 g'\3 bes'\2 g''\1 > % G < e\6 b\5 e'\4 g'\3 b'\2 e''\1 > % E < d'\4 a'\3 d''\2 f''\1 > % d } >> </score> == Canon in D == <score sound="1" raw="1"> \version "2.20.0" \header { title = "Canon" composer = "M: Johann Pachebel (1653-1706)" key="D" composer= "Pachelbel" arranger = "arr.: ccbysa Wikibooks (mjchael)" } myKey = { \language "deutsch" \tempo 4 = 100 %Tempo ausblenden \set Score.tempoHideNote = ##t \clef "G_8" \time 4/4 \key d \major \set Staff.midiInstrument = #"electric guitar (clean)" } myMelody = \relative c { \myKey \set minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \stemUp \repeat volta 2{} %^\markup { \bold {Em7} } %\break fis2 e d cis h a h cis \voiceOne fis' e d cis h a h cis fis e d cis h a h cis d4 \oneVoice d e cis d fis a a, h g fis a g d' cis a d8 cis d fis, a a cis4 d8 d fis4 a a8 h g fis e g fis e d cis \voiceOne h cis d4~ d8 cis16 d cis4 d8 cis d fis, a4 cis d fis a a8 h g fis e g fis e d cis h a d4 ~ d8 cis16 d cis4\trill \oneVoice \set Timing.beatStructure = #'(1 1 1 1) d8 fis16 g a8 fis16 g a a, h cis d e fis g fis8 d16 e fis8 fis,16 g a h a g a fis g a d8 h16 a g8 fis16 e fis e d e fis g a h d8 h16a h8 e16 d cis h cis d e fis g e fis8 d16 cis d8 fis, e cis'16 d e8 cis % fis d16 cis d8 fis, e cis'16 d e8 cis d h16 a h8 d, cis fis16 g a8 fis h g16 fis g8 h a fis'16 e fis8 d h d16 cis d8 fis, e a d cis \voiceOne \set Timing.beatStructure = #'(2 2) d4. fis8 fis g fis e d4. d8 d e d cis h4. h8 a4 d d8 c h c a2 \oneVoice d4 fis8 a a h a g \voiceOne s1 s h,2 a ~ a4 \oneVoice d e cis d fis, a4. h8 g4 d fis a \voiceOne g fis e a fis1\fermata \bar "||." % \bar "|." | } Gitarre = \myMelody %% Layout = Noten mit Tab \score { << %% Noten \new Voice { \myKey \Gitarre } %% Tabulatur \new TabStaff { \tabFullNotation \Gitarre } >> \layout {} } %% Midiausgabe \score { << \unfoldRepeats { \new Staff << \myKey \Gitarre >> } >> \midi {} } %& unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %& DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> == Takte auszählen == GEMISCHTE TAKTE AUSZÄHLEN Speziell ein Tutorial für Kerstin Jentzsch Ich gehe mal davon aus, das du dich ganz grob mit den Notenwerten auskennst, und eine Methode suchst, wie du sie beim täglichen Üben einsetzen kannst. Versuche es mal mit Zahlen. Die Idee hab ich von Mike Schönmehl "Jazz und Pop Musiklehre" Atlantis-Schott-Musikverlag Alle viertel-Noten werden mit einfachen Zahlen ausgesprochen 1 . 2 . 3 . 4 . Eins zwei drei vier oder fünf sechs sieben acht oder neun zehn elf zwölf Es ist egal welche dieser Zahlenfolgen du nimmst es ist für jede Zahl nur eine Silbe. Jetzt komme die Achtel: 1 + 2 + 3 + 4 + Drei-zehn, vier-zehn, fünf-zehn, sech-zehn sieb-zehn, ach-zehn, neun-zehn, zwan-zig Was auch gut geht ist Ein-er, Zwei-er, Drei-er, vier-er Hier haben alle Zahlen zwei Silben und teilen sich wie zwei Achtel auf. Jetzt kommen die Sechzehntel 1 e + e 2 e + e 3 e + e 4 e + e Ein-und-zwan-zig, Zwei-und-zwan-zig, Drei-und-zwan-zig, Vier-und-zwan-zig Fünf-und-zwan-zig, Sechs-und-zwan-zieg, sieben-und-zwan-zieg, Acht-und-zwan-zig Hier haben alle Zahlen vier Silben und teilen sich wie vier Sechzentel auf. Jetzt die Triolen: 1-er-lei 2-er-lei 3-er-lei 4-er-lei Ein-hun-dert, Zwei-hun-dert, Drei-hun-dert, Vier-hun-dert Hier haben alle Zahlen drei Silben und teilen sich wie drei Triolen auf. Wir sind es beim Zählen gewöhnt, in bestimmten Schritten zu zählen, so das wir 1-12 meist genau so langsam bzw. schnell zählen wie 13-20 oder wie 21-29. Und auch die Hunderter werden im gleichen Schritt gezählt. Man macht ganz automatisch zwei-Achtel, vier-Sechzentel oder 3-Triolen. Man kann versuchen, sich für viele Rhyhtmen einfach eine Zahlenfolge aufschreiben, und sich auch neue Kombinationen einfallen lassen. Wie wäre es wenn man viertel, triolen und Sechzentel miteiander übt? Eins | Zwei-hund-dert | drei | vier-und-zwan-zig Ein-und-zwan-zig| zwei | drei-hun-dert | vier Zehner-Zahlen könnten sich sogar für einen Schuffle eignen 1 . + 2 . + 3 . + 4 . + Bei der Zehn muss man sich was einfallen lassen, aber dann kann man gut im Shuffle zählen Zehn---tel, Zwan---zig, Drei---ßig, Vier---zig Zehn---tel, Zwei-hund-dert, Drei---ßig, Vier---zig So in etwa Die Methode ist nicht der Weisheit letzter Schluss, aber vielleicht hilft es dem einen oder anderen beim Üben. Gruß Mjchael ===Gallerie von Red_Rooster=== Die meisten Gifs und JPG wurden von Red_Rooster hochgeladen. Die müssen nach SVG umgestaltet werden. <!-- Bilder durch SVG ersetzen --> {{Klappbox|style=border:1px solid grey; margin:6px 0 6px 0;|bg1=#EAEAEA|verborgen=true|ta1=left|fw1=bold |Titel= Bilder durch SVG ersetzen |Inhalt= {{rot|Bilder nicht löschen!!!!!!!!! Sie müssen weltweit durch SVG ausgetauscht werden, und dann erst auf den Commons für die Schnelllöschung vorgeschlagen werden, und dann erst dürfen sie entfernt werden. Und das mache ich selbst!}} <gallery> Image:00.01.D.1.png| Image:00.01.D.2.png| Image:01.01.D_A1.png| Image:01.01.D_A2.png| Image:01.01.D_A3.png| Image:01.01.D_A4.png| Image:01.01.D_A5.png| Image:01.01.D_A6.png| Image:01.01.D_A7.png| Image:01.01.D_A8.png| Image:01.01.D_A91.png| Image:01.01.D_A92.png| Image:02.01.D.gif| Image:02.01.DG1.gif| Image:02.01.DG2.gif| Image:02.01.DG3.gif| Image:02.01.G.gif| Image:02.01.G_Schluessel.png| Image:%03.01.C.gif| Image:03.01.D_C.gif| Image:03.01.G C.png| Image:Druck_mittig.png| Image:Druck_zu_dicht.png| Image:Druck_zu_weit.png| Image:%Durstellung.gif| Image:Durstellung1_4.gif| Image:EADGHE.gif| Image:%G_Langsam.gif| Image:Halbtonschritte_I.gif| Image:HCF.gif| Image:Mollstellung1_3.gif| Image:MR_Durstellung.gif| Image:MR_Mollstellung.gif| </gallery> }} <pre> {{duplicate|Crd_Form_C.svg}} *replaced by [[image:Crd Form C.svg]] *original is unused or replaced --~~~~ </pre> == Spielwiese == *[[Benutzer:Mjchael/ Spielweise | Spielweise (Tests für meine Projekte)]] == Zeichnen und Schreiben == *[[Gitarre: Grifftabelle einfach | einfache Grifftabelle]] *[[Liederbuch]] (weitere Übungsbeispiele für die "Diplome" == Eigendichtungen == *[[Benutzer:Mjchael/ Eigendichtungen | Lob und Kritik und Ideen für selbstkomponierte Lieder]] ==Lieder== [[Liederbuch/ Pläne und Wünsche]] == Seitenüberblick == <!-- Alle Gitarrenseiten --> {{Klappbox|style=border:1px solid grey; margin:6px 0 6px 0;|bg1=#EAEAEA|verborgen=true|ta1=left|fw1=bold |Titel= Alle Gitarrenseiten |Inhalt={{Spezial:Prefixindex/Gitarre}} }} <!-- Alle Liederbuchseiten --> {{Klappbox|style=border:1px solid grey; margin:6px 0 6px 0;|bg1=#EAEAEA|verborgen=true|ta1=left|fw1=bold |Titel= Alle Liederbuchseiten |Inhalt={{Spezial:Prefixindex/Liederbuch}} }} <!-- Ende Inhalt --> |} <!-- Ende Äußere Tabelle --> 0lakzu4zvx20y9ko78mn6g35tuewfzq 1091086 1091085 2026-09-19T14:30:13Z Mjchael 2222 /* Akut */ 1091086 wikitext text/x-wiki <!-- BEGINN SEITE --> {| width="100%" cellspacing="0" cellpadding="0" valign="top"| |- <!-- SEITE:TABS --> |<!-- BEGINN SEITE:TABS --> {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" |- {{Benutzer:Mjchael/TabVoll|#dfefdf|User:Mjchael|Mjchael}} {{Benutzer:Mjchael/TabVoll|#f0f0f8|User:Mjchael/Projekte|Projekte}} {{Benutzer:Mjchael/TabOffen|#f0f0f8|User:Mjchael/Werkstatt|Werkstatt}} {{Benutzer:Mjchael/TabVoll|#f0f0f8|User:Mjchael/ Hilfen|Hilfen}} {{Benutzer:Mjchael/TabVoll|#f0f0f8|User:Mjchael/Sammlungen|Sammlungen}} | style="background-color:#f8f8ff;border-bottom:1px solid #000" width="100"| &nbsp; |}<!-- ENDE SEITE:TABS --> {|width="100%" cellpadding="2" cellspacing="0" style="text-align:left; border:solid #000000; border-width:0px 1px 1px 1px;" valign="top"| |- |bgcolor="#dfefdf" valign="top"|<!-- Äußere Tabelle linke Spalte --> <!-- Anfang Inhalt --> *[[:Kategorie:todo Mjchael|meine Todo-Liste]] === Akut === ;Bm7-Form <score> << \new ChordNames { \chordmode { % \set chordChanges = ##t b1:m7 b:m7 c:m7 c:m7 } } \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'white \override FretBoard.fret-diagram-details.orientation = #'landscape < b,-1 d a-2 b >1 % Bm < b,-1 d a-2 d'-3 >1 % Bm < c-3 es-1 bes-4 c'-1 >1 % Cm7 < c-2 es-1 bes-3 es'-4 >1 % Cm7 }>> </score> {{:Gitarre/ Navi|Formen-Systematik| {{:Gitarre: Formen-Systematik/ Navi}}| img=Guitar 1.svg |bg=#F8f8f8|border=#666666|color=#333333|px=80|navi=Formen-Systematik}} <score sound="1" raw="1"> \version "2.20.0" \header { title="Kadenzen in C" subtitle="Dreiklänge auf den Diskantsaiten (6. Bund)" arranger = "CC-BY-SA Wikibooks (mjchael)" } myKey = { \tempo 4 = 120 %Tempo ausblenden \set Score.tempoHideNote = ##t \clef "G_8" \time 4/4 \key c \major } myDiskant = { \repeat volta 4{ \repeat volta 2{ \set Staff.midiInstrument = #"electric guitar (jazz)" \stemUp < e'\3 g'\2 c''\1 >2 % C < f'\3 a'\2 c''\1 > % F < d'\3 g'\2 b'\1 >4 % G < d'\3 f'\2 b'\1 >4 % B° < e'\3 g'\2 c''\1 >2 % C } % \repeat volta 2{ \set Staff.midiInstrument = #"electric guitar (clean)" < e'\3 a'\2 c''\1 >2 % Am < f'\3 a'\2 d''\1 > % Dm < e'\3 g'\2 b'\1 >4 % Em < e'\3 gis'\2 b'\1 > % E < e'\3 a'\2 c''\1 >2 % Am } % } } myFretBoards = { \new FretBoards { % \override FretBoards.FretBoard.size = #'1.5 % \override FretBoard.fret-diagram-details.finger-code = #'in-dot % \override FretBoard.fret-diagram-details.dot-color = #'white % \override FretBoard.fret-diagram-details.orientation = #'landscape \myDiskant } } myChords = \chordmode { c2 f g4 b:dim c2 | a2:m d:m e4:m e a2:m | } myGuitar = \myDiskant %% Layout \score { << %% Griffbilder \myFretBoards %% Akkordnamen \new ChordNames { \myChords } %% Noten \new Voice { \myKey \myGuitar } %% Tabulatur \new TabStaff { \tabFullNotation \myGuitar } >> \layout { \omit Voice.StringNumber } } %% Migiausgabe \score { << \unfoldRepeats { \new Staff << \myKey \myDiskant >> } >> \midi {} } %& unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> {{Todo|Cups (When I'm Gone) by Anna Kendrick<br> Hello by Adele<br>Just The Way You Are by Bruno Mars<br>Someone You Loved by Lewis Capaldi|Mjchael}} <poem> Father Charles Goes Down And Ends Battle 3 times • 1st with b • 2nd natural • 3rd with # Fb Cb Gb Db Ab Eb Bb F C G D A E B F# C# G# D# A# E# B# You have to know or to learn C G D A E stands for C D E _ G A _ C major pentatonic A _ C D E _ G A minor pentatonic Fb Cb Gb Db Ab Cb Gb Db Ab Eb Gb Db Ab Eb Bb Db Ab Eb Bb F Ab Eb Bb F C Eb Bb F C G Bb F C G D F C G D A C G D A E G D A E B D A E B F# A E B F# C# E B F# C# G# B F# C# G# D# F# C# G# D# A# C# G# D# A# E# The first note is the root of the major pentatonic The 4th note is the root of the minor pentatonic. One sentence Father Charles Goes Down And Ends Battle Less to lern, more benefits. </poem> <poem> Strategie Tonart runter • Capo rauf C Dur [ F C G Dm Am Em ] C - 3 = A D - 5 = A E - 7 = A A Dur [ D A E Bm F#m C#m ] A - 2 = G C - 5 = G D - 7 = G G Dur [ C G D Am Em Bm ] G - 3 = E A - 5 = E C - 8 = E E Dur = [ A E B7 F#m C#m G#m ] E - 2 = D G - 5 = D A - 7 = D D Dur = [ G D A Em Bm F#m ] D - 2 = C E - 4 = C G - 7 = C C Dur [ F C G Dm Am Em ] Hast du jetzt eine andere Tonart als Start, musst du nur einen Bund hinzufügen oder abziehen (Bb F B Eb Db...) Zwei Grundlagen sind unverzichtbar 1) Der Quintenzirkel um die zusammengehörigen Akkorde zu kennen Fähige Clevere Gitarristen Denken An Ein Barré Father Charles Goes Down And Ends Battle Fb Cb Gb Db Ab Eb Bb F C G D A E B F# C# G# D# A# E# B# 2) Das die Tonleiter (Das Alphabet) runter... G F E D C B A G F E D C B A ... und die Halbtonschritte dazwischen um die Abstände abzuzählen... Für Kreuztonarten G F# F E D# D C# C B A# A G# G F# F E D# D C# C B A# A Für die B-Tonarten G Gb F E Eb D Db C B Bb A Ab G Gb F E Eb D Db C B Bb A Ab Die Kreuz- und B-Tonarten wollen wir eigentlich ganz vermeiden G _ F E _ D _ C B _ A _ G _ F E _ D _ C B _ A _ G Hier siehst du, warum die meisten Capo-Positionen zwei Bünde entfernt sind. Nun zählt auch F und B nicht zu den Lieblingstonarten der Gitarristen. G _ _ E _ D _ C _ _ A _ G _ _ E _ D _ C _ _ A _ G So kommen die Abstände von 3 Bünden zustande. G - 3 = E ( übersprungenes F ) C - 3 = A ( übersprungenes B ) </poem> == Vorübung Still got the Blues == <score sound="1" raw="1"> \version "2.20.0" %{ \header { title="1. Fingersatz (E-(F)-Form) in C-Dur" subtitle="Eintaktige Sequenzen" } %} %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key c \major c8 d e f e d c4 b8 c d e d c b4 a8 b c d c b a \tweak color #red gis a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { c d e f e d c b c d e d c b \break a b c d c b a "g#" a } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=90\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==Lilypond Version== {{Regal:Musik/ Lilypond Version}} === Bonus Balladendiplom === <score sound="1" raw="1"> \version "2.20.0" \header { title="Basis-Pattern" subtitles="My December (Linking Park)" encoder="mjchael" } %Diskant- bzw. Melodiesaiten myDiskant = { d8 d' a f' d d' a f' | % 1 c8 c' g e' c c' g e' | % 1 d8 d' a f' d d' a f' | % 1 c8 c' g e' c c' g e' | % 1 } %Basssaiten, die hier nur mit dem Daumen gespielt werden. myBass = { d4 a d a c4 g c g d4 a d a c4 g c g } % Layout- bzw. Bildausgabe \score { << \new ChordNames { \chordmode { d1:m c d1:m c } } { %Noten \new Staff << \tempo 4 = 120 %Tempo ausblenden \set Score.tempoHideNote = ##t \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 % Balken nur über viertel Noten, nicht über halbe Noten \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/4) \set Timing.beatStructure = #'(1 1 1 1) % Noten im Diskant \myDiskant \\ % Noten im Bass - beachte: Wiederholungszeichen ist für Midi notwendig! \repeat volta 4 \myBass >> } % Tabulatur \new TabStaff { \tabFullNotation \repeat volta 4 << % Tabulatur im Diskant \myDiskant \\ % Tabulatur im Bass \myBass >> } >> \layout {} } % Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 \myDiskant \\ \repeat volta 4 \myBass >> } >> \midi {} } % unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <div style="background-color:FFF;"> === Danny Boy === <score sound="1" raw="1"> \version "2.20.0" \header { title = "Danny Boy" subtitle = "A Londonderry Air (before 1855)" poet = "Lyrics: Frederic Weatherly (1910)" % composer = "Komponist" % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myD = \chordmode { d,4 d d, d } myA = \chordmode { a,,4 a, a,, a, } myDA = \chordmode { d,4 d a,, a, } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 % \myD \myA \myDA \myD % d,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c'{ \partial 4. fis8 g a | b4. a8[ b] e[ d b] | a( g) e4 r8 g b c | d4. e8 d b g b | a2 r8 fis8 g a | b4. a8[ b] e[ d b] | a( g) e4. fis8 g a | b4. c8 b a g fis | g2 r8 d' e fis | g4. fis8 fis e d e | \tweak color #red d( b) g4 r8 d'8 e fis | \break % 11 g4. fis8 fis e d b | a2 r8 d8 8 8 | b'4. a8 8 g e g | d( b) g4 r8 fis8 g a | b e d b a g e fis | g2~ 8 \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Oh, Dan -- ny Boy, the pipes, the pipes are cal -- ling From glen to glen, and down the moun -- tain side The sum -- mer's gone and all the ro -- ses fal -- ling It's you, it's you must go and I must bide. But come ye back when sum -- mer's in the mea -- dow. Or when the val -- ley's hushed and white with snow. And I'll be here in sun -- shine or in sha -- dow. Oh Dan -- ny Boy, oh, Dan -- ny Boy, I love you so. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Tom Dooley to Tabs === <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myG = \chordmode { g,,4 g,8 4 8 4 } myGAm = \chordmode { g,,4 g,8 a,4:m a,8:m a,4:m} myD = \chordmode { d,4 d8 4 8 4 } myDsept = \chordmode { d,4:7 d8:7 d4:7 d8:7 d4:7 } myAm = \chordmode { a,,4:m a,8:m a,4:m a,8:m a,4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myG \myG \myGAm \myD \myAm \myD \myDsept \myG g,,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c'{ d8 4 8 e g4. | b4. b8( b2)| d,8 4 8 e g4. | a1 | d,8 4 e4 g4. | a4. a8~ a2| a8 4 b8 a4 e4 | g1 \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Von G nach C ==== <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key c\major } %% Akkorde %% Lagerfeuer-Schlag %% 1 . 2 + . + 4 . myC = \chordmode { c,4 c8 4 8 4 } myCDm = \chordmode { c,4 c8 d4:m d8:m d4:m} myG = \chordmode { g,,4 g,8 4 8 4 } myGsept = \chordmode { g,,4:7 g,8:7 g,4:7 g,8:7 g,4:7 } myDm = \chordmode { d,4:m d8:m d4:m d8:m d4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myC \myC \myCDm \myG \myDm \myG \myGsept \myC c,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" g8 g8( g8) 8 a c4. | e4. e8( e2)| g,8 g8~ g8 8 a c4. | d1 | g,8 8~ 8 a4 c4. | d4. d8~ d2| d8 d8~ d8 e8 d4 a4 | c1 \bar "|." } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Von G nach C in den Bass ==== <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key c\major } %% Akkorde %% Lagerfeuer-Schlag %% 1 . 2 + . + 4 . myC = \chordmode { c,4 c8 4 8 4 } myCDm = \chordmode { c,4 c8 d4:m d8:m d4:m} myG = \chordmode { g,,4 g,8 4 8 4 } myGsept = \chordmode { g,,4:7 g,8:7 g,4:7 g,8:7 g,4:7 } myDm = \chordmode { d,4:m d8:m d4:m d8:m d4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myC \myC \myCDm \myG \myDm \myG \myGsept \myC c,1 %Schlusston } myMelody = \relative c' { \myKey \set Staff.midiInstrument = #"trombone" g8 4 8 a c4. | e4. e8( e2)| g,8 4 8 a c4. | d1 | g,8 4 a4 c4. | d4. d8~ d2| d8 4 e8 d4 a4 | c1 \bar "|." } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== bon G nach D ==== <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myG = \chordmode { g,,4 g,8 4 8 4 } myGAm = \chordmode { g,,4 g,8 a,4:m a,8:m a,4:m} myD = \chordmode { d,4 d8 4 8 4 } myDsept = \chordmode { d,4:7 d8:7 d4:7 d8:7 d4:7 } myAm = \chordmode { a,,4:m a,8:m a,4:m a,8:m a,4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myG \myG \myGAm \myD \myAm \myD \myDsept \myG g,,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c'{ d8 d8( d8) 8 e g4. | b4. b8( b2)| d,8 4 8 e g4. | a1 | d,8 4 e4 g4. | a4. a8~ a2| a8 4 b8 a4 e4 | g1 \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> == Yes Sir That's my Baby == {{:Liederbuch/ Vorlage:Liedheader |Liedtyp= Charleston (1924) |Alternativtitel= |Text= Gus Kahn (*1886 - † 1941) |Melodie= Walter Donaldson (*1893 - † 1947) |Urheber= |Tonart= |Bearbeiter= Mjchael |Co-Bearbeiter= }} * {{w|Yes Sir, That’s My Baby}} Der Protagonist (Mann oder Frau) bestätigt den Gesprächspartnern, nun verlobt zu sein, und läd diese zur Hochzeit ein. <poem> {{crd|C}} Who's that coming down the {{crd|C#dim}} street, {{crd|G}} who's that looking so petite {{crd|G7}} Who's that coming down to meet me {{crd|C}} here. {{crd|Dm7}} {{crd|G7}} {{crd|C}} Who's that - you know who I {{crd|C#dim}} mean? {{crd|G7}} Sweetest 'who' you've ever seen {{crd|D7}} I {{crd|Am7}} could {{crd|D7}} tell {{crd|Am7}} her {{crd|D7}} miles {{crd|Am7}} a-{{crd|D7}}way from {{crd|G7}} here. {{crd|Em}} {{crd|B7}} {{crd|G7}} {{crd|C}} Yes, sir, that's my {{crd|C#dim}} baby, {{crd|G}} no, sir, I don't mean maybe {{crd|G7}} Yes, sir, that's my baby {{crd|C}} now. {{crd|G7}} {{crd|C}} Yes, ma'am we've de-{{crd|C#dim}}cided, {{crd|G}} no, ma'am we won't hide it {{crd|G7}} Yes ma'am you're invited {{crd|C}} now. By the {{crd|C7}} way, by the {{crd|F}} way, when we {{crd|D7}} reach the preacher I'll {{crd|G7}} say {{crd|G7+5}} {{crd|C}} Yes, sir, that's my {{crd|C#dim}} baby, {{crd|G}} no, sir, I don't mean maybe {{crd|G7}} Yes, sir, that's my baby {{crd|C}} now. {{crd|C}} Well well, 'lookit' that {{crd|C#dim}} baby, {{crd|G}} Do tell, don't say "maybe", {{crd|G7}} Hell's bells, won't she cause some {{crd|C}} row? Pretty {{crd|C7}} soon, Pretty {{crd|F}} soon, We will {{crd|D7}} hear that Lohengrin {{crd|G7}} tune, (I'm sayin'){{crd|G7+5}} {{crd|C}} Who for should she {{crd|C#dim}} be sir, {{crd|G}} No one else but me sir, {{crd|G7}} Yes sir, That's my Baby {{crd|C}} now. {{crd|C7}} {{crd|C}} Yes sir, that's my {{crd|C#dim}} Baby {{crd|G}} Yes sir, I don't mean maybe, {{crd|G7}} Yes sir, That's my Baby {{crd|C}} now </poem> === Yes Sir, That's My Baby (Var2) === <poem> {{crd|C}} Yes {{crd|Am}} sir, {{crd|C}} that's my {{crd|Am}} baby {{crd|G7}} No {{crd|Dm}} sir, {{crd|G7}} don't be {{crd|Dm}} maybe {{crd|G7}} Yes {{crd|Am}} sir, {{crd|G7}} that's my {{crd|Dm}} baby {{crd|C}} now {{crd|G7}} {{crd|C}} Yes {{crd|Am}} ma'am, {{crd|C}} we've de{{crd|Am}}cided {{crd|G7}} No {{crd|Dm}} ma'am, {{crd|G7}} we won't {{crd|Dm}} hide it {{crd|G7}} Yes {{crd|Am}} ma'am, {{crd|G7}} that's my {{crd|Dm}} baby {{crd|C}} now By the way, {{crd|C7}} by the {{crd|F}} way When we {{crd|D7}} meet that preacher I'll {{crd|G7}} say with {{crd|G7sus2}} feel{{crd|G7}}ing {{crd|C}} Yes {{crd|Am}} sir, {{crd|C}} that's my {{crd|Am}} baby {{crd|G7}} No {{crd|Dm}} sir, {{crd|G7}} don't be {{crd|Dm}} maybe <div>{{crd|G7}} Yes {{crd|Am}} sir, {{crd|G7}} that's my {{crd|Dm}} baby {{crd|C}} now. </poem> * {{Youtube-Suche|Yes+Sir+That's+My+Baby|Yes Sir, That's My Baby}} ===Early One Morning=== <poem> ;1 {{crd|D}}Early one morning, just {{crd|G}}as the sun was {{crd|A}}rising I {{crd|D}}heard a maiden singing, from the {{crd|G}}va-{{crd|A}}lley be-{{crd|D}}low: ;Chorus {{crd|A}}Oh, don't de-{{crd|D}}ceive me, {{crd|A}}Oh never {{crd|D}}leave me, {{crd|D}}How could you {{crd|G}}use, a {{crd|D}}poor {{crd|A}}maiden {{crd|D}}so? ;2 Oh {{crd|D}}gay is garland, and {{crd|G}}fresh are the {{crd|A}}roses, I've {{crd|D}}culled from the garden, to {{crd|G}}bind u-{{crd|A}}pon thy {{crd|D}}brow. ;3 Re-{{crd|D}}member the vows, that you {{crd|G}}made to your {{crd|A}}Mary Re-{{crd|D}}member the bow'r, where you {{crd|G}}promised {{crd|A}}to be {{crd|D}}true. ;4 Thus {{crd|D}}sang the poor maid, her {{crd|G}}sorrows be{{crd|A}}wailing, Thus, {{crd|D}}sang the poor maid, in the {{crd|G}}va-{{crd|A}}lley be-{{crd|D}}low. </poem> ===Down In The River To Pray=== <poem> As I went down in the river to pray Studying about that good old way And who shall wear the starry crown Good Lord, show me the way! O sisters let's go down, Let's go down, come on down, O sisters let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the robe and crown Good Lord, show me the way! O brothers let's go down, Let's go down, come on down, Come on brothers let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the starry crown Good Lord, show me the way! O fathers let's go down, Let's go down, come on down, O fathers let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the robe and crown Good Lord, show me the way! O mothers let's go down, Let's go down, don't you want to go down, Come on mothers let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the starry crown Good Lord, show me the way! O sinners let's go down, Let's go down, come on down, O sinners let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the robe and crown Good Lord, show me the way! </poem> === Wild Mountain Thyme === [[Datei:Wild mountain thyme - geograph.org.uk - 25029.jpg|mini]] {{listen|filename=Christoph Nolte - The Rocky Road - The Wild Mountain Thyme.ogg|title=The Wild Mountain Thyme|description="Wild Mountain Thyme" performed by Christoph Nolte}} <score lang="ABC" sound="1"> X: 5 T: Wild Mountain Thyme R: barndance M: 4/4 L: 1/8 K: Gmaj GE|"G"D2 D2 "C"E<G-GA|"G"G6 Bd|"C"e3 e e3 d|"G"Bd-d4 Bd "C"e4 "G"d3 B|"Em"A<G-G4AB|"Am"c3B A3G|"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA| "G"G6 Bd|"C"e3 e e3 d|"G"Bd-d4 Bd|"C"e4 "G"d3 B|"Em"A<G-G4AB| "Am"c3B A3G|"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA|"G"G6| </score> < !-- <score sound="1" raw="1"> \version "2.20.0" \header { title = "Wild Mountain Thyme" % subtitle = "MeinSubtitle" % poet = "Texter" % composer = "Komponist" % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myD = \chordmode { d,4 d d, d } myA = \chordmode { a,,4 a, a,, a, } myDA = \chordmode { d,4 d a,, a, } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t \partial 4 s4 \myD \myA \myDA \myD d,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c''{ \partial 4 g8 e d4 d e16 g8.~8 a | g2. b8 d | e4. e8 e4. d8 | b d8~2 b8 d | % GE|"G"D2 D2 "C"E<G-GA|"G"G6 Bd|"C"e3 e e3 d|"G"Bd-d4 Bd e2 d4. b8 | a16 g8.~2 a8 b | c4. b8 a4. g8 |e8 g8~2 g8 e | d4 4 e16 g8.~g8 a % "C"e4 "G"d3 B|"Em"A<G-G4AB|"Am"c3B A3G |"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA| c4. b8 a4. g8 | e g8~2 8 e | d4 4 e16 g8.~8 a | g2. % "Am"c3B A3G|"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA|"G"G6| \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Häns -- chen klein | ging al -- lein | in das Haus hin | -- ein. | } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> --> (also known as "Purple Heather" and "Will Ye Go, Lassie, Go?") is a Scottish/Irish folk song. <poem> ;1 O the summer time has come And the trees are sweetly blooming And wild mountain thyme Grows around the purple heather. Will you go, lassie, go? ;Chorus And we'll all go together, To pull wild mountain thyme, All around the purple heather. Will you go, lassie, go? ;2 I will build my love a tower, By yon clear crystal fountain, And on it I will pile, All the flowers of the mountain. Will you go, lassie, go? ;3 I will range through the wilds And the deep land so dreary And return with the spoils To the bower o' my dearie. Will ye go lassie go ? ;4 If my true love she'll not come, Then I'll surely find another, To pull wild mountain thyme, All around the purple heather. Will you go, lassie, go? </poem> == Akkordfolge NEM == <score> << \new ChordNames { \chordmode { d1 c g b }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'white \override FretBoard.fret-diagram-details.orientation = #'landscape < d-1\5 a-2\4 d'-3\3 fis'-4\2 a'-1\1 > % d < c-1\5 g-2\4 c'-3\3 e'-4\2 g'-1\1 > % C/B < g,-1 d-3 g-4 b-2 d'-1 g'-1 > % G < b,-1\5 fis-2\4 b-3\3 dis'-4\2 fis'-1\1 > % B } >> </score> <score> << \new ChordNames { \chordmode { c1 a g e d }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot % \override FretBoard.fret-diagram-details.dot-color = #'blue \override FretBoard.fret-diagram-details.orientation = #'landscape < e\6 c'\5 e'\4 g'\3 c''\2 e''\1 > % C < e\6 a\5 e'\4 a'\3 cis''\2 e''\1 > % A < g\6 b\5 d'\4 g'\3 b'\2 g''\1 > % G < e\6 b\5 e'\4 gis'\3 b'\2 e''\1 > % E < d'\4 a'\3 d''\2 fis''\1 > % d } \new ChordNames { \chordmode { c1:m a:m g:m e:m d:m }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'blue \override FretBoard.fret-diagram-details.orientation = #'landscape < es\6 c'\5 es'\4 g'\3 c''\2 es''\1 > % C < e\6 a\5 e'\4 a'\3 c''\2 e''\1 > % A < g\6 bes\5 d'\4 g'\3 bes'\2 g''\1 > % G < e\6 b\5 e'\4 g'\3 b'\2 e''\1 > % E < d'\4 a'\3 d''\2 f''\1 > % d } >> </score> == Canon in D == <score sound="1" raw="1"> \version "2.20.0" \header { title = "Canon" composer = "M: Johann Pachebel (1653-1706)" key="D" composer= "Pachelbel" arranger = "arr.: ccbysa Wikibooks (mjchael)" } myKey = { \language "deutsch" \tempo 4 = 100 %Tempo ausblenden \set Score.tempoHideNote = ##t \clef "G_8" \time 4/4 \key d \major \set Staff.midiInstrument = #"electric guitar (clean)" } myMelody = \relative c { \myKey \set minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \stemUp \repeat volta 2{} %^\markup { \bold {Em7} } %\break fis2 e d cis h a h cis \voiceOne fis' e d cis h a h cis fis e d cis h a h cis d4 \oneVoice d e cis d fis a a, h g fis a g d' cis a d8 cis d fis, a a cis4 d8 d fis4 a a8 h g fis e g fis e d cis \voiceOne h cis d4~ d8 cis16 d cis4 d8 cis d fis, a4 cis d fis a a8 h g fis e g fis e d cis h a d4 ~ d8 cis16 d cis4\trill \oneVoice \set Timing.beatStructure = #'(1 1 1 1) d8 fis16 g a8 fis16 g a a, h cis d e fis g fis8 d16 e fis8 fis,16 g a h a g a fis g a d8 h16 a g8 fis16 e fis e d e fis g a h d8 h16a h8 e16 d cis h cis d e fis g e fis8 d16 cis d8 fis, e cis'16 d e8 cis % fis d16 cis d8 fis, e cis'16 d e8 cis d h16 a h8 d, cis fis16 g a8 fis h g16 fis g8 h a fis'16 e fis8 d h d16 cis d8 fis, e a d cis \voiceOne \set Timing.beatStructure = #'(2 2) d4. fis8 fis g fis e d4. d8 d e d cis h4. h8 a4 d d8 c h c a2 \oneVoice d4 fis8 a a h a g \voiceOne s1 s h,2 a ~ a4 \oneVoice d e cis d fis, a4. h8 g4 d fis a \voiceOne g fis e a fis1\fermata \bar "||." % \bar "|." | } Gitarre = \myMelody %% Layout = Noten mit Tab \score { << %% Noten \new Voice { \myKey \Gitarre } %% Tabulatur \new TabStaff { \tabFullNotation \Gitarre } >> \layout {} } %% Midiausgabe \score { << \unfoldRepeats { \new Staff << \myKey \Gitarre >> } >> \midi {} } %& unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %& DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> == Takte auszählen == GEMISCHTE TAKTE AUSZÄHLEN Speziell ein Tutorial für Kerstin Jentzsch Ich gehe mal davon aus, das du dich ganz grob mit den Notenwerten auskennst, und eine Methode suchst, wie du sie beim täglichen Üben einsetzen kannst. Versuche es mal mit Zahlen. Die Idee hab ich von Mike Schönmehl "Jazz und Pop Musiklehre" Atlantis-Schott-Musikverlag Alle viertel-Noten werden mit einfachen Zahlen ausgesprochen 1 . 2 . 3 . 4 . Eins zwei drei vier oder fünf sechs sieben acht oder neun zehn elf zwölf Es ist egal welche dieser Zahlenfolgen du nimmst es ist für jede Zahl nur eine Silbe. Jetzt komme die Achtel: 1 + 2 + 3 + 4 + Drei-zehn, vier-zehn, fünf-zehn, sech-zehn sieb-zehn, ach-zehn, neun-zehn, zwan-zig Was auch gut geht ist Ein-er, Zwei-er, Drei-er, vier-er Hier haben alle Zahlen zwei Silben und teilen sich wie zwei Achtel auf. Jetzt kommen die Sechzehntel 1 e + e 2 e + e 3 e + e 4 e + e Ein-und-zwan-zig, Zwei-und-zwan-zig, Drei-und-zwan-zig, Vier-und-zwan-zig Fünf-und-zwan-zig, Sechs-und-zwan-zieg, sieben-und-zwan-zieg, Acht-und-zwan-zig Hier haben alle Zahlen vier Silben und teilen sich wie vier Sechzentel auf. Jetzt die Triolen: 1-er-lei 2-er-lei 3-er-lei 4-er-lei Ein-hun-dert, Zwei-hun-dert, Drei-hun-dert, Vier-hun-dert Hier haben alle Zahlen drei Silben und teilen sich wie drei Triolen auf. Wir sind es beim Zählen gewöhnt, in bestimmten Schritten zu zählen, so das wir 1-12 meist genau so langsam bzw. schnell zählen wie 13-20 oder wie 21-29. Und auch die Hunderter werden im gleichen Schritt gezählt. Man macht ganz automatisch zwei-Achtel, vier-Sechzentel oder 3-Triolen. Man kann versuchen, sich für viele Rhyhtmen einfach eine Zahlenfolge aufschreiben, und sich auch neue Kombinationen einfallen lassen. Wie wäre es wenn man viertel, triolen und Sechzentel miteiander übt? Eins | Zwei-hund-dert | drei | vier-und-zwan-zig Ein-und-zwan-zig| zwei | drei-hun-dert | vier Zehner-Zahlen könnten sich sogar für einen Schuffle eignen 1 . + 2 . + 3 . + 4 . + Bei der Zehn muss man sich was einfallen lassen, aber dann kann man gut im Shuffle zählen Zehn---tel, Zwan---zig, Drei---ßig, Vier---zig Zehn---tel, Zwei-hund-dert, Drei---ßig, Vier---zig So in etwa Die Methode ist nicht der Weisheit letzter Schluss, aber vielleicht hilft es dem einen oder anderen beim Üben. Gruß Mjchael ===Gallerie von Red_Rooster=== Die meisten Gifs und JPG wurden von Red_Rooster hochgeladen. Die müssen nach SVG umgestaltet werden. <!-- Bilder durch SVG ersetzen --> {{Klappbox|style=border:1px solid grey; margin:6px 0 6px 0;|bg1=#EAEAEA|verborgen=true|ta1=left|fw1=bold |Titel= Bilder durch SVG ersetzen |Inhalt= {{rot|Bilder nicht löschen!!!!!!!!! Sie müssen weltweit durch SVG ausgetauscht werden, und dann erst auf den Commons für die Schnelllöschung vorgeschlagen werden, und dann erst dürfen sie entfernt werden. Und das mache ich selbst!}} <gallery> Image:00.01.D.1.png| Image:00.01.D.2.png| Image:01.01.D_A1.png| Image:01.01.D_A2.png| Image:01.01.D_A3.png| Image:01.01.D_A4.png| Image:01.01.D_A5.png| Image:01.01.D_A6.png| Image:01.01.D_A7.png| Image:01.01.D_A8.png| Image:01.01.D_A91.png| Image:01.01.D_A92.png| Image:02.01.D.gif| Image:02.01.DG1.gif| Image:02.01.DG2.gif| Image:02.01.DG3.gif| Image:02.01.G.gif| Image:02.01.G_Schluessel.png| Image:%03.01.C.gif| Image:03.01.D_C.gif| Image:03.01.G C.png| Image:Druck_mittig.png| Image:Druck_zu_dicht.png| Image:Druck_zu_weit.png| Image:%Durstellung.gif| Image:Durstellung1_4.gif| Image:EADGHE.gif| Image:%G_Langsam.gif| Image:Halbtonschritte_I.gif| Image:HCF.gif| Image:Mollstellung1_3.gif| Image:MR_Durstellung.gif| Image:MR_Mollstellung.gif| </gallery> }} <pre> {{duplicate|Crd_Form_C.svg}} *replaced by [[image:Crd Form C.svg]] *original is unused or replaced --~~~~ </pre> == Spielwiese == *[[Benutzer:Mjchael/ Spielweise | Spielweise (Tests für meine Projekte)]] == Zeichnen und Schreiben == *[[Gitarre: Grifftabelle einfach | einfache Grifftabelle]] *[[Liederbuch]] (weitere Übungsbeispiele für die "Diplome" == Eigendichtungen == *[[Benutzer:Mjchael/ Eigendichtungen | Lob und Kritik und Ideen für selbstkomponierte Lieder]] ==Lieder== [[Liederbuch/ Pläne und Wünsche]] == Seitenüberblick == <!-- Alle Gitarrenseiten --> {{Klappbox|style=border:1px solid grey; margin:6px 0 6px 0;|bg1=#EAEAEA|verborgen=true|ta1=left|fw1=bold |Titel= Alle Gitarrenseiten |Inhalt={{Spezial:Prefixindex/Gitarre}} }} <!-- Alle Liederbuchseiten --> {{Klappbox|style=border:1px solid grey; margin:6px 0 6px 0;|bg1=#EAEAEA|verborgen=true|ta1=left|fw1=bold |Titel= Alle Liederbuchseiten |Inhalt={{Spezial:Prefixindex/Liederbuch}} }} <!-- Ende Inhalt --> |} <!-- Ende Äußere Tabelle --> 9bmq3bthis79ks4skz10d31bx8b1ehe 1091087 1091086 2026-09-19T14:30:56Z Mjchael 2222 /* Akut */ 1091087 wikitext text/x-wiki <!-- BEGINN SEITE --> {| width="100%" cellspacing="0" cellpadding="0" valign="top"| |- <!-- SEITE:TABS --> |<!-- BEGINN SEITE:TABS --> {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" |- {{Benutzer:Mjchael/TabVoll|#dfefdf|User:Mjchael|Mjchael}} {{Benutzer:Mjchael/TabVoll|#f0f0f8|User:Mjchael/Projekte|Projekte}} {{Benutzer:Mjchael/TabOffen|#f0f0f8|User:Mjchael/Werkstatt|Werkstatt}} {{Benutzer:Mjchael/TabVoll|#f0f0f8|User:Mjchael/ Hilfen|Hilfen}} {{Benutzer:Mjchael/TabVoll|#f0f0f8|User:Mjchael/Sammlungen|Sammlungen}} | style="background-color:#f8f8ff;border-bottom:1px solid #000" width="100"| &nbsp; |}<!-- ENDE SEITE:TABS --> {|width="100%" cellpadding="2" cellspacing="0" style="text-align:left; border:solid #000000; border-width:0px 1px 1px 1px;" valign="top"| |- |bgcolor="#dfefdf" valign="top"|<!-- Äußere Tabelle linke Spalte --> <!-- Anfang Inhalt --> *[[:Kategorie:todo Mjchael|meine Todo-Liste]] === Akut === {{:Gitarre/ Navi|Formen-Systematik| {{:Gitarre: Formen-Systematik/ Navi}}| img=Guitar 1.svg |bg=#F8f8f8|border=#666666|color=#333333|px=80|navi=Formen-Systematik}} <score sound="1" raw="1"> \version "2.20.0" \header { title="Kadenzen in C" subtitle="Dreiklänge auf den Diskantsaiten (6. Bund)" arranger = "CC-BY-SA Wikibooks (mjchael)" } myKey = { \tempo 4 = 120 %Tempo ausblenden \set Score.tempoHideNote = ##t \clef "G_8" \time 4/4 \key c \major } myDiskant = { \repeat volta 4{ \repeat volta 2{ \set Staff.midiInstrument = #"electric guitar (jazz)" \stemUp < e'\3 g'\2 c''\1 >2 % C < f'\3 a'\2 c''\1 > % F < d'\3 g'\2 b'\1 >4 % G < d'\3 f'\2 b'\1 >4 % B° < e'\3 g'\2 c''\1 >2 % C } % \repeat volta 2{ \set Staff.midiInstrument = #"electric guitar (clean)" < e'\3 a'\2 c''\1 >2 % Am < f'\3 a'\2 d''\1 > % Dm < e'\3 g'\2 b'\1 >4 % Em < e'\3 gis'\2 b'\1 > % E < e'\3 a'\2 c''\1 >2 % Am } % } } myFretBoards = { \new FretBoards { % \override FretBoards.FretBoard.size = #'1.5 % \override FretBoard.fret-diagram-details.finger-code = #'in-dot % \override FretBoard.fret-diagram-details.dot-color = #'white % \override FretBoard.fret-diagram-details.orientation = #'landscape \myDiskant } } myChords = \chordmode { c2 f g4 b:dim c2 | a2:m d:m e4:m e a2:m | } myGuitar = \myDiskant %% Layout \score { << %% Griffbilder \myFretBoards %% Akkordnamen \new ChordNames { \myChords } %% Noten \new Voice { \myKey \myGuitar } %% Tabulatur \new TabStaff { \tabFullNotation \myGuitar } >> \layout { \omit Voice.StringNumber } } %% Migiausgabe \score { << \unfoldRepeats { \new Staff << \myKey \myDiskant >> } >> \midi {} } %& unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> {{Todo|Cups (When I'm Gone) by Anna Kendrick<br> Hello by Adele<br>Just The Way You Are by Bruno Mars<br>Someone You Loved by Lewis Capaldi|Mjchael}} <poem> Father Charles Goes Down And Ends Battle 3 times • 1st with b • 2nd natural • 3rd with # Fb Cb Gb Db Ab Eb Bb F C G D A E B F# C# G# D# A# E# B# You have to know or to learn C G D A E stands for C D E _ G A _ C major pentatonic A _ C D E _ G A minor pentatonic Fb Cb Gb Db Ab Cb Gb Db Ab Eb Gb Db Ab Eb Bb Db Ab Eb Bb F Ab Eb Bb F C Eb Bb F C G Bb F C G D F C G D A C G D A E G D A E B D A E B F# A E B F# C# E B F# C# G# B F# C# G# D# F# C# G# D# A# C# G# D# A# E# The first note is the root of the major pentatonic The 4th note is the root of the minor pentatonic. One sentence Father Charles Goes Down And Ends Battle Less to lern, more benefits. </poem> <poem> Strategie Tonart runter • Capo rauf C Dur [ F C G Dm Am Em ] C - 3 = A D - 5 = A E - 7 = A A Dur [ D A E Bm F#m C#m ] A - 2 = G C - 5 = G D - 7 = G G Dur [ C G D Am Em Bm ] G - 3 = E A - 5 = E C - 8 = E E Dur = [ A E B7 F#m C#m G#m ] E - 2 = D G - 5 = D A - 7 = D D Dur = [ G D A Em Bm F#m ] D - 2 = C E - 4 = C G - 7 = C C Dur [ F C G Dm Am Em ] Hast du jetzt eine andere Tonart als Start, musst du nur einen Bund hinzufügen oder abziehen (Bb F B Eb Db...) Zwei Grundlagen sind unverzichtbar 1) Der Quintenzirkel um die zusammengehörigen Akkorde zu kennen Fähige Clevere Gitarristen Denken An Ein Barré Father Charles Goes Down And Ends Battle Fb Cb Gb Db Ab Eb Bb F C G D A E B F# C# G# D# A# E# B# 2) Das die Tonleiter (Das Alphabet) runter... G F E D C B A G F E D C B A ... und die Halbtonschritte dazwischen um die Abstände abzuzählen... Für Kreuztonarten G F# F E D# D C# C B A# A G# G F# F E D# D C# C B A# A Für die B-Tonarten G Gb F E Eb D Db C B Bb A Ab G Gb F E Eb D Db C B Bb A Ab Die Kreuz- und B-Tonarten wollen wir eigentlich ganz vermeiden G _ F E _ D _ C B _ A _ G _ F E _ D _ C B _ A _ G Hier siehst du, warum die meisten Capo-Positionen zwei Bünde entfernt sind. Nun zählt auch F und B nicht zu den Lieblingstonarten der Gitarristen. G _ _ E _ D _ C _ _ A _ G _ _ E _ D _ C _ _ A _ G So kommen die Abstände von 3 Bünden zustande. G - 3 = E ( übersprungenes F ) C - 3 = A ( übersprungenes B ) </poem> == Vorübung Still got the Blues == <score sound="1" raw="1"> \version "2.20.0" %{ \header { title="1. Fingersatz (E-(F)-Form) in C-Dur" subtitle="Eintaktige Sequenzen" } %} %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key c \major c8 d e f e d c4 b8 c d e d c b4 a8 b c d c b a \tweak color #red gis a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { c d e f e d c b c d e d c b \break a b c d c b a "g#" a } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=90\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==Lilypond Version== {{Regal:Musik/ Lilypond Version}} === Bonus Balladendiplom === <score sound="1" raw="1"> \version "2.20.0" \header { title="Basis-Pattern" subtitles="My December (Linking Park)" encoder="mjchael" } %Diskant- bzw. Melodiesaiten myDiskant = { d8 d' a f' d d' a f' | % 1 c8 c' g e' c c' g e' | % 1 d8 d' a f' d d' a f' | % 1 c8 c' g e' c c' g e' | % 1 } %Basssaiten, die hier nur mit dem Daumen gespielt werden. myBass = { d4 a d a c4 g c g d4 a d a c4 g c g } % Layout- bzw. Bildausgabe \score { << \new ChordNames { \chordmode { d1:m c d1:m c } } { %Noten \new Staff << \tempo 4 = 120 %Tempo ausblenden \set Score.tempoHideNote = ##t \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 % Balken nur über viertel Noten, nicht über halbe Noten \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/4) \set Timing.beatStructure = #'(1 1 1 1) % Noten im Diskant \myDiskant \\ % Noten im Bass - beachte: Wiederholungszeichen ist für Midi notwendig! \repeat volta 4 \myBass >> } % Tabulatur \new TabStaff { \tabFullNotation \repeat volta 4 << % Tabulatur im Diskant \myDiskant \\ % Tabulatur im Bass \myBass >> } >> \layout {} } % Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \key c \major \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \repeat volta 4 \myDiskant \\ \repeat volta 4 \myBass >> } >> \midi {} } % unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm % DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <div style="background-color:FFF;"> === Danny Boy === <score sound="1" raw="1"> \version "2.20.0" \header { title = "Danny Boy" subtitle = "A Londonderry Air (before 1855)" poet = "Lyrics: Frederic Weatherly (1910)" % composer = "Komponist" % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myD = \chordmode { d,4 d d, d } myA = \chordmode { a,,4 a, a,, a, } myDA = \chordmode { d,4 d a,, a, } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 % \myD \myA \myDA \myD % d,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c'{ \partial 4. fis8 g a | b4. a8[ b] e[ d b] | a( g) e4 r8 g b c | d4. e8 d b g b | a2 r8 fis8 g a | b4. a8[ b] e[ d b] | a( g) e4. fis8 g a | b4. c8 b a g fis | g2 r8 d' e fis | g4. fis8 fis e d e | \tweak color #red d( b) g4 r8 d'8 e fis | \break % 11 g4. fis8 fis e d b | a2 r8 d8 8 8 | b'4. a8 8 g e g | d( b) g4 r8 fis8 g a | b e d b a g e fis | g2~ 8 \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Oh, Dan -- ny Boy, the pipes, the pipes are cal -- ling From glen to glen, and down the moun -- tain side The sum -- mer's gone and all the ro -- ses fal -- ling It's you, it's you must go and I must bide. But come ye back when sum -- mer's in the mea -- dow. Or when the val -- ley's hushed and white with snow. And I'll be here in sun -- shine or in sha -- dow. Oh Dan -- ny Boy, oh, Dan -- ny Boy, I love you so. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Tom Dooley to Tabs === <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myG = \chordmode { g,,4 g,8 4 8 4 } myGAm = \chordmode { g,,4 g,8 a,4:m a,8:m a,4:m} myD = \chordmode { d,4 d8 4 8 4 } myDsept = \chordmode { d,4:7 d8:7 d4:7 d8:7 d4:7 } myAm = \chordmode { a,,4:m a,8:m a,4:m a,8:m a,4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myG \myG \myGAm \myD \myAm \myD \myDsept \myG g,,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c'{ d8 4 8 e g4. | b4. b8( b2)| d,8 4 8 e g4. | a1 | d,8 4 e4 g4. | a4. a8~ a2| a8 4 b8 a4 e4 | g1 \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Von G nach C ==== <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key c\major } %% Akkorde %% Lagerfeuer-Schlag %% 1 . 2 + . + 4 . myC = \chordmode { c,4 c8 4 8 4 } myCDm = \chordmode { c,4 c8 d4:m d8:m d4:m} myG = \chordmode { g,,4 g,8 4 8 4 } myGsept = \chordmode { g,,4:7 g,8:7 g,4:7 g,8:7 g,4:7 } myDm = \chordmode { d,4:m d8:m d4:m d8:m d4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myC \myC \myCDm \myG \myDm \myG \myGsept \myC c,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" g8 g8( g8) 8 a c4. | e4. e8( e2)| g,8 g8~ g8 8 a c4. | d1 | g,8 8~ 8 a4 c4. | d4. d8~ d2| d8 d8~ d8 e8 d4 a4 | c1 \bar "|." } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Von G nach C in den Bass ==== <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key c\major } %% Akkorde %% Lagerfeuer-Schlag %% 1 . 2 + . + 4 . myC = \chordmode { c,4 c8 4 8 4 } myCDm = \chordmode { c,4 c8 d4:m d8:m d4:m} myG = \chordmode { g,,4 g,8 4 8 4 } myGsept = \chordmode { g,,4:7 g,8:7 g,4:7 g,8:7 g,4:7 } myDm = \chordmode { d,4:m d8:m d4:m d8:m d4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myC \myC \myCDm \myG \myDm \myG \myGsept \myC c,1 %Schlusston } myMelody = \relative c' { \myKey \set Staff.midiInstrument = #"trombone" g8 4 8 a c4. | e4. e8( e2)| g,8 4 8 a c4. | d1 | g,8 4 a4 c4. | d4. d8~ d2| d8 4 e8 d4 a4 | c1 \bar "|." } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== bon G nach D ==== <score sound="1" raw="1"> \version "2.20.0" \header { title = "Tom Dooley" % subtitle = "MeinSubtitle" % poet = "Texter" composer = "trad." % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myG = \chordmode { g,,4 g,8 4 8 4 } myGAm = \chordmode { g,,4 g,8 a,4:m a,8:m a,4:m} myD = \chordmode { d,4 d8 4 8 4 } myDsept = \chordmode { d,4:7 d8:7 d4:7 d8:7 d4:7 } myAm = \chordmode { a,,4:m a,8:m a,4:m a,8:m a,4:m } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t % \partial 4 s4 \myG \myG \myGAm \myD \myAm \myD \myDsept \myG g,,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c'{ d8 d8( d8) 8 e g4. | b4. b8( b2)| d,8 4 8 e g4. | a1 | d,8 4 e4 g4. | a4. a8~ a2| a8 4 b8 a4 e4 | g1 \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Hang down your head, Tom Doo -- ley. Hang down your head and cry Killed poor Lau -- ra Fos -- ter. You know you're bound to die. } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> == Yes Sir That's my Baby == {{:Liederbuch/ Vorlage:Liedheader |Liedtyp= Charleston (1924) |Alternativtitel= |Text= Gus Kahn (*1886 - † 1941) |Melodie= Walter Donaldson (*1893 - † 1947) |Urheber= |Tonart= |Bearbeiter= Mjchael |Co-Bearbeiter= }} * {{w|Yes Sir, That’s My Baby}} Der Protagonist (Mann oder Frau) bestätigt den Gesprächspartnern, nun verlobt zu sein, und läd diese zur Hochzeit ein. <poem> {{crd|C}} Who's that coming down the {{crd|C#dim}} street, {{crd|G}} who's that looking so petite {{crd|G7}} Who's that coming down to meet me {{crd|C}} here. {{crd|Dm7}} {{crd|G7}} {{crd|C}} Who's that - you know who I {{crd|C#dim}} mean? {{crd|G7}} Sweetest 'who' you've ever seen {{crd|D7}} I {{crd|Am7}} could {{crd|D7}} tell {{crd|Am7}} her {{crd|D7}} miles {{crd|Am7}} a-{{crd|D7}}way from {{crd|G7}} here. {{crd|Em}} {{crd|B7}} {{crd|G7}} {{crd|C}} Yes, sir, that's my {{crd|C#dim}} baby, {{crd|G}} no, sir, I don't mean maybe {{crd|G7}} Yes, sir, that's my baby {{crd|C}} now. {{crd|G7}} {{crd|C}} Yes, ma'am we've de-{{crd|C#dim}}cided, {{crd|G}} no, ma'am we won't hide it {{crd|G7}} Yes ma'am you're invited {{crd|C}} now. By the {{crd|C7}} way, by the {{crd|F}} way, when we {{crd|D7}} reach the preacher I'll {{crd|G7}} say {{crd|G7+5}} {{crd|C}} Yes, sir, that's my {{crd|C#dim}} baby, {{crd|G}} no, sir, I don't mean maybe {{crd|G7}} Yes, sir, that's my baby {{crd|C}} now. {{crd|C}} Well well, 'lookit' that {{crd|C#dim}} baby, {{crd|G}} Do tell, don't say "maybe", {{crd|G7}} Hell's bells, won't she cause some {{crd|C}} row? Pretty {{crd|C7}} soon, Pretty {{crd|F}} soon, We will {{crd|D7}} hear that Lohengrin {{crd|G7}} tune, (I'm sayin'){{crd|G7+5}} {{crd|C}} Who for should she {{crd|C#dim}} be sir, {{crd|G}} No one else but me sir, {{crd|G7}} Yes sir, That's my Baby {{crd|C}} now. {{crd|C7}} {{crd|C}} Yes sir, that's my {{crd|C#dim}} Baby {{crd|G}} Yes sir, I don't mean maybe, {{crd|G7}} Yes sir, That's my Baby {{crd|C}} now </poem> === Yes Sir, That's My Baby (Var2) === <poem> {{crd|C}} Yes {{crd|Am}} sir, {{crd|C}} that's my {{crd|Am}} baby {{crd|G7}} No {{crd|Dm}} sir, {{crd|G7}} don't be {{crd|Dm}} maybe {{crd|G7}} Yes {{crd|Am}} sir, {{crd|G7}} that's my {{crd|Dm}} baby {{crd|C}} now {{crd|G7}} {{crd|C}} Yes {{crd|Am}} ma'am, {{crd|C}} we've de{{crd|Am}}cided {{crd|G7}} No {{crd|Dm}} ma'am, {{crd|G7}} we won't {{crd|Dm}} hide it {{crd|G7}} Yes {{crd|Am}} ma'am, {{crd|G7}} that's my {{crd|Dm}} baby {{crd|C}} now By the way, {{crd|C7}} by the {{crd|F}} way When we {{crd|D7}} meet that preacher I'll {{crd|G7}} say with {{crd|G7sus2}} feel{{crd|G7}}ing {{crd|C}} Yes {{crd|Am}} sir, {{crd|C}} that's my {{crd|Am}} baby {{crd|G7}} No {{crd|Dm}} sir, {{crd|G7}} don't be {{crd|Dm}} maybe <div>{{crd|G7}} Yes {{crd|Am}} sir, {{crd|G7}} that's my {{crd|Dm}} baby {{crd|C}} now. </poem> * {{Youtube-Suche|Yes+Sir+That's+My+Baby|Yes Sir, That's My Baby}} ===Early One Morning=== <poem> ;1 {{crd|D}}Early one morning, just {{crd|G}}as the sun was {{crd|A}}rising I {{crd|D}}heard a maiden singing, from the {{crd|G}}va-{{crd|A}}lley be-{{crd|D}}low: ;Chorus {{crd|A}}Oh, don't de-{{crd|D}}ceive me, {{crd|A}}Oh never {{crd|D}}leave me, {{crd|D}}How could you {{crd|G}}use, a {{crd|D}}poor {{crd|A}}maiden {{crd|D}}so? ;2 Oh {{crd|D}}gay is garland, and {{crd|G}}fresh are the {{crd|A}}roses, I've {{crd|D}}culled from the garden, to {{crd|G}}bind u-{{crd|A}}pon thy {{crd|D}}brow. ;3 Re-{{crd|D}}member the vows, that you {{crd|G}}made to your {{crd|A}}Mary Re-{{crd|D}}member the bow'r, where you {{crd|G}}promised {{crd|A}}to be {{crd|D}}true. ;4 Thus {{crd|D}}sang the poor maid, her {{crd|G}}sorrows be{{crd|A}}wailing, Thus, {{crd|D}}sang the poor maid, in the {{crd|G}}va-{{crd|A}}lley be-{{crd|D}}low. </poem> ===Down In The River To Pray=== <poem> As I went down in the river to pray Studying about that good old way And who shall wear the starry crown Good Lord, show me the way! O sisters let's go down, Let's go down, come on down, O sisters let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the robe and crown Good Lord, show me the way! O brothers let's go down, Let's go down, come on down, Come on brothers let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the starry crown Good Lord, show me the way! O fathers let's go down, Let's go down, come on down, O fathers let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the robe and crown Good Lord, show me the way! O mothers let's go down, Let's go down, don't you want to go down, Come on mothers let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the starry crown Good Lord, show me the way! O sinners let's go down, Let's go down, come on down, O sinners let's go down, Down in the river to pray. As I went down in the river to pray Studying about that good old way And who shall wear the robe and crown Good Lord, show me the way! </poem> === Wild Mountain Thyme === [[Datei:Wild mountain thyme - geograph.org.uk - 25029.jpg|mini]] {{listen|filename=Christoph Nolte - The Rocky Road - The Wild Mountain Thyme.ogg|title=The Wild Mountain Thyme|description="Wild Mountain Thyme" performed by Christoph Nolte}} <score lang="ABC" sound="1"> X: 5 T: Wild Mountain Thyme R: barndance M: 4/4 L: 1/8 K: Gmaj GE|"G"D2 D2 "C"E<G-GA|"G"G6 Bd|"C"e3 e e3 d|"G"Bd-d4 Bd "C"e4 "G"d3 B|"Em"A<G-G4AB|"Am"c3B A3G|"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA| "G"G6 Bd|"C"e3 e e3 d|"G"Bd-d4 Bd|"C"e4 "G"d3 B|"Em"A<G-G4AB| "Am"c3B A3G|"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA|"G"G6| </score> < !-- <score sound="1" raw="1"> \version "2.20.0" \header { title = "Wild Mountain Thyme" % subtitle = "MeinSubtitle" % poet = "Texter" % composer = "Komponist" % arranger = "arr: ccbysa: Wikibooks (mjchael)" } myKey = { \clef "treble" \time 4/4 \tempo 4 = 100 %%Tempo ausblenden \set Score.tempoHideNote = ##t \key g\major } %% Akkorde %% 4/4-Schlag %% 1 . 2 . 3 . 4 . myD = \chordmode { d,4 d d, d } myA = \chordmode { a,,4 a, a,, a, } myDA = \chordmode { d,4 d a,, a, } myChords = \chordmode { \set Staff.midiInstrument = #"acoustic guitar (nylon)" %% Akkorde nur beim Wechsel notieren \set chordChanges = ##t \partial 4 s4 \myD \myA \myDA \myD d,1 %Schlusston } myMelody = \relative c'' { \myKey \set Staff.midiInstrument = #"trombone" \relative c''{ \partial 4 g8 e d4 d e16 g8.~8 a | g2. b8 d | e4. e8 e4. d8 | b d8~2 b8 d | % GE|"G"D2 D2 "C"E<G-GA|"G"G6 Bd|"C"e3 e e3 d|"G"Bd-d4 Bd e2 d4. b8 | a16 g8.~2 a8 b | c4. b8 a4. g8 |e8 g8~2 g8 e | d4 4 e16 g8.~g8 a % "C"e4 "G"d3 B|"Em"A<G-G4AB|"Am"c3B A3G |"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA| c4. b8 a4. g8 | e g8~2 8 e | d4 4 e16 g8.~8 a | g2. % "Am"c3B A3G|"C"EG-G4 GE|"G"D2 D2 "C"E<G-GA|"G"G6| \bar "|." } } myLyrics = \lyricmode { \set stanza = "1." Häns -- chen klein | ging al -- lein | in das Haus hin | -- ein. | } \score { << \new ChordNames { \myChords } \new Voice = "mySong" { \myMelody } \new Lyrics \lyricsto "mySong" { \myLyrics } % \new TabStaff { \myChords } %% Check >> \midi { } \layout { } } %% unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> --> (also known as "Purple Heather" and "Will Ye Go, Lassie, Go?") is a Scottish/Irish folk song. <poem> ;1 O the summer time has come And the trees are sweetly blooming And wild mountain thyme Grows around the purple heather. Will you go, lassie, go? ;Chorus And we'll all go together, To pull wild mountain thyme, All around the purple heather. Will you go, lassie, go? ;2 I will build my love a tower, By yon clear crystal fountain, And on it I will pile, All the flowers of the mountain. Will you go, lassie, go? ;3 I will range through the wilds And the deep land so dreary And return with the spoils To the bower o' my dearie. Will ye go lassie go ? ;4 If my true love she'll not come, Then I'll surely find another, To pull wild mountain thyme, All around the purple heather. Will you go, lassie, go? </poem> == Akkordfolge NEM == <score> << \new ChordNames { \chordmode { d1 c g b }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'white \override FretBoard.fret-diagram-details.orientation = #'landscape < d-1\5 a-2\4 d'-3\3 fis'-4\2 a'-1\1 > % d < c-1\5 g-2\4 c'-3\3 e'-4\2 g'-1\1 > % C/B < g,-1 d-3 g-4 b-2 d'-1 g'-1 > % G < b,-1\5 fis-2\4 b-3\3 dis'-4\2 fis'-1\1 > % B } >> </score> <score> << \new ChordNames { \chordmode { c1 a g e d }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot % \override FretBoard.fret-diagram-details.dot-color = #'blue \override FretBoard.fret-diagram-details.orientation = #'landscape < e\6 c'\5 e'\4 g'\3 c''\2 e''\1 > % C < e\6 a\5 e'\4 a'\3 cis''\2 e''\1 > % A < g\6 b\5 d'\4 g'\3 b'\2 g''\1 > % G < e\6 b\5 e'\4 gis'\3 b'\2 e''\1 > % E < d'\4 a'\3 d''\2 fis''\1 > % d } \new ChordNames { \chordmode { c1:m a:m g:m e:m d:m }} \new FretBoards { \override FretBoards.FretBoard.size = #'1.5 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'blue \override FretBoard.fret-diagram-details.orientation = #'landscape < es\6 c'\5 es'\4 g'\3 c''\2 es''\1 > % C < e\6 a\5 e'\4 a'\3 c''\2 e''\1 > % A < g\6 bes\5 d'\4 g'\3 bes'\2 g''\1 > % G < e\6 b\5 e'\4 g'\3 b'\2 e''\1 > % E < d'\4 a'\3 d''\2 f''\1 > % d } >> </score> == Canon in D == <score sound="1" raw="1"> \version "2.20.0" \header { title = "Canon" composer = "M: Johann Pachebel (1653-1706)" key="D" composer= "Pachelbel" arranger = "arr.: ccbysa Wikibooks (mjchael)" } myKey = { \language "deutsch" \tempo 4 = 100 %Tempo ausblenden \set Score.tempoHideNote = ##t \clef "G_8" \time 4/4 \key d \major \set Staff.midiInstrument = #"electric guitar (clean)" } myMelody = \relative c { \myKey \set minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \stemUp \repeat volta 2{} %^\markup { \bold {Em7} } %\break fis2 e d cis h a h cis \voiceOne fis' e d cis h a h cis fis e d cis h a h cis d4 \oneVoice d e cis d fis a a, h g fis a g d' cis a d8 cis d fis, a a cis4 d8 d fis4 a a8 h g fis e g fis e d cis \voiceOne h cis d4~ d8 cis16 d cis4 d8 cis d fis, a4 cis d fis a a8 h g fis e g fis e d cis h a d4 ~ d8 cis16 d cis4\trill \oneVoice \set Timing.beatStructure = #'(1 1 1 1) d8 fis16 g a8 fis16 g a a, h cis d e fis g fis8 d16 e fis8 fis,16 g a h a g a fis g a d8 h16 a g8 fis16 e fis e d e fis g a h d8 h16a h8 e16 d cis h cis d e fis g e fis8 d16 cis d8 fis, e cis'16 d e8 cis % fis d16 cis d8 fis, e cis'16 d e8 cis d h16 a h8 d, cis fis16 g a8 fis h g16 fis g8 h a fis'16 e fis8 d h d16 cis d8 fis, e a d cis \voiceOne \set Timing.beatStructure = #'(2 2) d4. fis8 fis g fis e d4. d8 d e d cis h4. h8 a4 d d8 c h c a2 \oneVoice d4 fis8 a a h a g \voiceOne s1 s h,2 a ~ a4 \oneVoice d e cis d fis, a4. h8 g4 d fis a \voiceOne g fis e a fis1\fermata \bar "||." % \bar "|." | } Gitarre = \myMelody %% Layout = Noten mit Tab \score { << %% Noten \new Voice { \myKey \Gitarre } %% Tabulatur \new TabStaff { \tabFullNotation \Gitarre } >> \layout {} } %% Midiausgabe \score { << \unfoldRepeats { \new Staff << \myKey \Gitarre >> } >> \midi {} } %& unterdrückt im raw="1"-Modus das DinA4-Format. \paper { indent=0\mm %& DinA4 0 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> == Takte auszählen == GEMISCHTE TAKTE AUSZÄHLEN Speziell ein Tutorial für Kerstin Jentzsch Ich gehe mal davon aus, das du dich ganz grob mit den Notenwerten auskennst, und eine Methode suchst, wie du sie beim täglichen Üben einsetzen kannst. Versuche es mal mit Zahlen. Die Idee hab ich von Mike Schönmehl "Jazz und Pop Musiklehre" Atlantis-Schott-Musikverlag Alle viertel-Noten werden mit einfachen Zahlen ausgesprochen 1 . 2 . 3 . 4 . Eins zwei drei vier oder fünf sechs sieben acht oder neun zehn elf zwölf Es ist egal welche dieser Zahlenfolgen du nimmst es ist für jede Zahl nur eine Silbe. Jetzt komme die Achtel: 1 + 2 + 3 + 4 + Drei-zehn, vier-zehn, fünf-zehn, sech-zehn sieb-zehn, ach-zehn, neun-zehn, zwan-zig Was auch gut geht ist Ein-er, Zwei-er, Drei-er, vier-er Hier haben alle Zahlen zwei Silben und teilen sich wie zwei Achtel auf. Jetzt kommen die Sechzehntel 1 e + e 2 e + e 3 e + e 4 e + e Ein-und-zwan-zig, Zwei-und-zwan-zig, Drei-und-zwan-zig, Vier-und-zwan-zig Fünf-und-zwan-zig, Sechs-und-zwan-zieg, sieben-und-zwan-zieg, Acht-und-zwan-zig Hier haben alle Zahlen vier Silben und teilen sich wie vier Sechzentel auf. Jetzt die Triolen: 1-er-lei 2-er-lei 3-er-lei 4-er-lei Ein-hun-dert, Zwei-hun-dert, Drei-hun-dert, Vier-hun-dert Hier haben alle Zahlen drei Silben und teilen sich wie drei Triolen auf. Wir sind es beim Zählen gewöhnt, in bestimmten Schritten zu zählen, so das wir 1-12 meist genau so langsam bzw. schnell zählen wie 13-20 oder wie 21-29. Und auch die Hunderter werden im gleichen Schritt gezählt. Man macht ganz automatisch zwei-Achtel, vier-Sechzentel oder 3-Triolen. Man kann versuchen, sich für viele Rhyhtmen einfach eine Zahlenfolge aufschreiben, und sich auch neue Kombinationen einfallen lassen. Wie wäre es wenn man viertel, triolen und Sechzentel miteiander übt? Eins | Zwei-hund-dert | drei | vier-und-zwan-zig Ein-und-zwan-zig| zwei | drei-hun-dert | vier Zehner-Zahlen könnten sich sogar für einen Schuffle eignen 1 . + 2 . + 3 . + 4 . + Bei der Zehn muss man sich was einfallen lassen, aber dann kann man gut im Shuffle zählen Zehn---tel, Zwan---zig, Drei---ßig, Vier---zig Zehn---tel, Zwei-hund-dert, Drei---ßig, Vier---zig So in etwa Die Methode ist nicht der Weisheit letzter Schluss, aber vielleicht hilft es dem einen oder anderen beim Üben. Gruß Mjchael ===Gallerie von Red_Rooster=== Die meisten Gifs und JPG wurden von Red_Rooster hochgeladen. Die müssen nach SVG umgestaltet werden. <!-- Bilder durch SVG ersetzen --> {{Klappbox|style=border:1px solid grey; margin:6px 0 6px 0;|bg1=#EAEAEA|verborgen=true|ta1=left|fw1=bold |Titel= Bilder durch SVG ersetzen |Inhalt= {{rot|Bilder nicht löschen!!!!!!!!! Sie müssen weltweit durch SVG ausgetauscht werden, und dann erst auf den Commons für die Schnelllöschung vorgeschlagen werden, und dann erst dürfen sie entfernt werden. Und das mache ich selbst!}} <gallery> Image:00.01.D.1.png| Image:00.01.D.2.png| Image:01.01.D_A1.png| Image:01.01.D_A2.png| Image:01.01.D_A3.png| Image:01.01.D_A4.png| Image:01.01.D_A5.png| Image:01.01.D_A6.png| Image:01.01.D_A7.png| Image:01.01.D_A8.png| Image:01.01.D_A91.png| Image:01.01.D_A92.png| Image:02.01.D.gif| Image:02.01.DG1.gif| Image:02.01.DG2.gif| Image:02.01.DG3.gif| Image:02.01.G.gif| Image:02.01.G_Schluessel.png| Image:%03.01.C.gif| Image:03.01.D_C.gif| Image:03.01.G C.png| Image:Druck_mittig.png| Image:Druck_zu_dicht.png| Image:Druck_zu_weit.png| Image:%Durstellung.gif| Image:Durstellung1_4.gif| Image:EADGHE.gif| Image:%G_Langsam.gif| Image:Halbtonschritte_I.gif| Image:HCF.gif| Image:Mollstellung1_3.gif| Image:MR_Durstellung.gif| Image:MR_Mollstellung.gif| </gallery> }} <pre> {{duplicate|Crd_Form_C.svg}} *replaced by [[image:Crd Form C.svg]] *original is unused or replaced --~~~~ </pre> == Spielwiese == *[[Benutzer:Mjchael/ Spielweise | Spielweise (Tests für meine Projekte)]] == Zeichnen und Schreiben == *[[Gitarre: Grifftabelle einfach | einfache Grifftabelle]] *[[Liederbuch]] (weitere Übungsbeispiele für die "Diplome" == Eigendichtungen == *[[Benutzer:Mjchael/ Eigendichtungen | Lob und Kritik und Ideen für selbstkomponierte Lieder]] ==Lieder== [[Liederbuch/ Pläne und Wünsche]] == Seitenüberblick == <!-- Alle Gitarrenseiten --> {{Klappbox|style=border:1px solid grey; margin:6px 0 6px 0;|bg1=#EAEAEA|verborgen=true|ta1=left|fw1=bold |Titel= Alle Gitarrenseiten |Inhalt={{Spezial:Prefixindex/Gitarre}} }} <!-- Alle Liederbuchseiten --> {{Klappbox|style=border:1px solid grey; margin:6px 0 6px 0;|bg1=#EAEAEA|verborgen=true|ta1=left|fw1=bold |Titel= Alle Liederbuchseiten |Inhalt={{Spezial:Prefixindex/Liederbuch}} }} <!-- Ende Inhalt --> |} <!-- Ende Äußere Tabelle --> 0ufc9r9cnnsuedalvm6hm519k9qzxvw Ing Mathematik: Numerische Mathematiksysteme am Beispiel von Octave 0 109787 1091080 1091079 2026-09-19T11:59:09Z Intruder 1513 /* Eigene Dialoge kreieren */ neg. Koord.werte 1091080 wikitext text/x-wiki {{Navigation_zurückhochvor_buch| zurücktext=Maxima| zurücklink=Ing Mathematik: Computeralgebrasysteme am Beispiel von Maxima| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Julia für Ingenieure| vorlink=Ing Mathematik: Julia}} = Hallo Welt und allgemeine Hinweise = == Was ist Octave == * Octave ist eine Software zur numerischen Lösung mathematischer Probleme. * Octave ist Open-Source (GPL-Lizenz). * Octave ist für viele Betriebssysteme erhältlich (z.B. für Linux, MS Windows, macOS). * Octave ist weitgehend kompatibel zum Numerik-Standardprogramm {{W|Matlab|MATLAB}}. * Octave ist ein Interpreter. * Octave als Programmiersprache ist case-sensitive - d.h. Groß- und Kleinschreibung ist relevant bei der Eingabe von Befehlen. {{Wikipedia | GNU Octave}} == Octave installieren == === MS Windows === Laden Sie das aktuelle Octave-Paket von der Webseite [https://octave.org/download] herunter. Weiter geht es wie bei jedem anderen größeren zu installierenden Programm. Einfach das Installationsprogramm im Explorer doppelklicken und den Anweisungen des Setup-Programmes folgen. === Linux === Entweder ist Octave bereits standardmäßig installiert, ansonsten ist die Installation mittels Paketmanagementsystem einfach möglich. Dazu gehen Sie auf die Seite [https://wiki.octave.org/Category:Installation], wählen die vorhandene Linux-Variante und folgen der angegebenen Beschreibung (z.B. <code>zypper ... </code> für openSUSE. Oder Sie benutzen unter openSUSE Tumbleweed direkt das Setup-Programm {{W|YaST}}). == Octave starten == === MS Windows === Das Icon für das Octave-Programm doppelklicken (für das Konsolenprogramm ... CLI, für die grafische Benutzeroberfläche ... GUI). Und schon startet das Programm. [[Datei:octavestart1.jpg]] === Linux === In einer Linux-Konsole den Befehl "octave" eintippen, mit der RETURN-Taste bestätigen, und das Programm (CLI) startet: GNU Octave (x86_64-suse-linux-gnu) version 11.1.0 Copyright (C) 1993-2026 The Octave Project Developers. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software; see the source code for copying conditions. There is NO WARRANTY, to the extent permitted by law. For details, type 'warranty'. Home page: <https://octave.org> Support resources: <https://octave.org/support> Improve Octave: <https://octave.org/get-involved> For changes from previous versions, type 'news'. octave:1> Um Octave mit der eingebauten GUI zu starten, kann der Befehl <code>octave --force-gui</code> verwendet werden: [[File:Gnu_Octave_IDE.png|600px]] Alternativ kann, z.B. unter openSUSE Tumbleweed (mit {{W|KDE Plasma 6|KDE-Plasma}}), die Octave-IDE auch über den Application Launcher im Menü ''Education -> GNU Octave'' gestartet werden. == Ein paar Worte zur Erklärung == Im Folgenden wird immer das Konsolenprogramm (CLI ... Command Line Interface) für die Eingabe von Befehlen benutzt. Erst gegen Ende dieses Textes wird auch kurz auf das GUI von Octave eingegangen. Teilweise werden Ergebnisse der älteren Octave-Version 3.0.3 dargestellt. Die dargestellten Grafiken und Ausgabetexte können je nach Version leicht voneinander abweichen. Der Text wurde ursprünglich mit der Octave-Version 3.0.3 erstellt und anschließend auf die Versionen 5.2 bis 11.1.0 aktualisiert. Dieser Mischmasch sollte aber kein Problem darstellen. Getestet wurden die Beispiele ursprünglich unter dem Betriebssystem MS Windows 10, später auch mit MS Windows 11, bzw. mit openSUSE Leap 15.6 (Octave 6.4.0, nur vereinzelt) und ab März 2026 auch mit openSUSE Tumbleweed (ab Octave 10.3.0, nur vereinzelt). == Ein erstes Programm == Kommentare werden in Octave mit dem Prozentzeichen (%) oder alternativ mit der Raute (#) eingeleitet. Sie werden vom Octave-Interpreter ignoriert. Will man kompatibel mit MATLAB bleiben, so ist die Version mit dem %-Zeichen vorzuziehen. Text kann mit der disp-Funktion ausgegeben werden. Starten Sie Octave und geben sie folgende Anweisungen zeilenweise ein octave-3.0.3.exe:1> % Das ist ein Kommentar octave-3.0.3.exe:2> # und das auch octave-3.0.3.exe:3> disp "Hallo Welt!" Als Ergebnis erhalten Sie Hallo Welt! Der Prompt (z.B. octave-3.0.3.exe:1>) ist natürlich abhängig von der Octave-Version und den schon eingegebenen Zeilen. Er ist selbstverständlich nicht einzutippen, sondern wird vom Octave-System geliefert. Strings können in Octave entweder in Anführungszeichen (") gesetzt werden oder in Hochkommatas('). In diesem Text wird die erste Variante bevorzugt eingesetzt. = Octave als Taschenrechner = == Allgemeines == Wir wollen 3 * 5 berechnen. Dazu starten wir Octave. Geben Sie dann die Formel octave-3.0.3.exe:1> 3 * 5 ein, drücken die Taste ENTER/RETURN und erhalten als Ergebnis ans = 15 Auch kompliziertere Ausdrücke sind möglich. Beispielsweise mit Winkelfunktionen, Quadratwurzeln etc. Wir wollen nun den Ausdruck <math>\sin\sqrt{15}</math> berechnen : octave-3.0.3.exe:2> sin(sqrt(15)) ans = -0.6679 Octave kennt eine Handvoll von Konstanten, z.B.: Zeilenweise Eingabe: % Die Kreiszahl PI pi % Die Eulersche Zahl e % Zur Maschinengenauigkeit eps Ausgabe: ans = 3.1416 ans = 2.7183 ans = 2.2204e-016 "ans" steht übrigens für den Begriff "answer" (auf Deutsch "Antwort"). Mit "ans" kann wie mit jeder anderen Variable oder Konstanten weitergerechnet werden, z.B.: Eingabe: % Der Kreisradius sei 10 10 % Der Kreis-Umfang mit diesem Radius sei folgendes 2 * pi * ans Ausgabe: ans = 10 ans = 62.832 Die Ausgabe eines Befehls am Bildschirm (das "Echo") kann übrigens durch Anwendung des Semikolons (;) unterdrückt werden. Gezeigt werden soll dies nun mit Hilfe des obigen Beispiels. Es soll nur der Umfang ausgegeben werden, nicht der Radius. Eingabe: % Der Kreisradius sei 10 10; % Der Kreis-Umfang mit diesem Radius sei folgendes 2 * pi * ans Ausgabe: ans = 62.832 Vielleicht ist manchem die Genauigkeit, mit der Echo bzw. der Befehl disp Werte ausgibt, nicht ausreichend. Dem kann Abhilfe verschafft werden und zwar so: Eingabe: format short pi format long pi format longe pi % usw. Ausgabe: ans = 3.1416 ans = 3.14159265358979 ans = 3.14159265358979e+00 Beenden lässt sich das Octave-Programm durch Eingabe von quit oder exit (und natürlich zur Bestätigung die RETURN-Taste drücken). == Die Hilfefunktion von Octave == Die Eingabe von help mit Angabe eines Funktionsnamens liefert detaillierte Infos zu der gesuchten Funktion. Eingabe: help sin Ausgabe: 'sin' is a built-in function from the file libinterp/corefcn/mappers.cc -- Y = sin (X) Compute the sine for each element of X in radians. See also: asin, sind, sinh. Additional help for built-in functions and operators is available in the online version of the manual. Use the command 'doc <topic>' to search the manual index. Help and information about Octave is also available on the WWW at https://www.octave.org and via the help@octave.org mailing list. Auch gibt es die doc-Funktion für eine vollständige Dokumentation des Octave-Systems, z.B.: Eingabe: doc Ausgabe: [[Datei:Octave_730_doc_screenshot.jpg]] == Sonstige einfache Berechnungen == In octave gibt es eine "umgekehrte" Division: 11 / 2 % normale Division (Rechtsdivision) 11 \ 2 % umgekehrte Division (Linksdivision) Ausgabe: ans = 5.5000 ans = 0.1818 Potenzieren kann man so: 12^5 Ausgabe: ans = 248832 Den Modulo-Operator % wie in C/C++, Java oder Python gibt es in Octave '''nicht'''. Das Prozentzeichen ist dem Kommentar vorbehalten. Man kann aber eine Funktion hierfür benutzen y = mod(20, 3) Ausgabe: y = 2 Runden mit und auf Ganzzahlen kann man in Octave so: a = int32(10); b = int32(3); x = a / b y = int32(15) / int32(4) Ausgabe: x = 3 y = 4 Siehe dazu aber auch die Funktionen <code>floor</code>, <code>ceil</code> und <code>idivide</code>. Mittels <code>int32()</code> werden Zahlen als 32-Bit-Ganzzahlen dargestellt. Standardmäßig ist der Datentyp nämlich <code>double</code>. Das ist zu beachten, es ergeben sich unterschiedliche Ergebnisse. Beispiel: clear(); a = int32(10); b = int32(3); x = a / b c = 10; d = 3; y = c / d whos() Ausgabe: x = 3 y = 3.3333 Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 4 int32 b 1x1 4 int32 c 1x1 8 double d 1x1 8 double x 1x1 4 int32 y 1x1 8 double Total is 6 elements using 36 bytes Ist der Wertebereich von <code>int32</code> zu klein (4 Bytes, <math>-2^{31}</math> bis <math>2^{31} - 1</math>), so gibt es auch <code>int64</code> (8 Bytes, <math>-2^{63}</math> bis <math>2^{63} - 1</math>). <code>clear</code> löscht Namen und gibt den Speicherplatz wieder frei. <code>whos()</code> liefert detaillierte Informationen der aktuell definierten Variablen. == Aufgaben == * Berechnen Sie mit Octave den Ausdruck <math>\frac{1}{2}\cdot e^2 \cdot \tan(\pi/3)</math>. * Berechnen Sie mit Octave den Ausdruck <math>2\; \text{cosd}(60) - 3\sin(\pi/5)</math>. Anmerkung: cosd erwartet den Parameter im Gradmaß (d für "degree"), sin erwartet den Parameter im Bogenmaß. * Erkunden Sie die Fehlerfunktion "erf" mittels Octave-Hilfe. * Welche Zahl ergibt sich durch <code>3 / 4 \ 2</code>? * Welche Zahlen werden durch die folgenden Anweisungen ausgegeben? idivide(int32(10), int32(3), "fix") idivide(int32(10), int32(3), "round") idivide(int32(10), int32(3), "floor") idivide(int32(10), int32(3), "ceil") floor(10.3) ceil(10.3) = Octave als Scriptsprache = Häufig wird man aber kompliziertere Anweisungsfolgen verarbeiten müssen. Diese will man normalerweise nicht jedesmal neu eingeben, sondern in einer Datei speichern und diese Datei dann zur Ausführung bringen. Speichern Sie dazu folgenden Code in einer Textdatei, z.B. unter MS Windows als c:\tmp\test1.m % Das ist ein Kommentar # und das auch disp "Hallo Welt!" Skriptdateien müssen mit der Dateiendung .m versehen werden. In der Octave-Konsole fügen Sie den Dateipfad mittels octave-3.0.3.exe:1> addpath("c:/tmp") hinzu (es ist der UNIX-spezifische Slash (/) zu benutzen). Alternativ können Sie zumindest unter MS Windows auch einen Doppel-Backslash (\\) einsetzen. Oder Sie wechseln mittels <code>cd c:/tmp</code> direkt ins Verzeichnis <code>c:/tmp</code>. Danach bringen Sie die Skriptdatei test1.m (sozusagen das Hauptprogramm) zur Ausführung octave-3.0.3.exe:2> test1 Achtung: Die Datei (die Funktion oder das Hauptprogramm) ist in der Octave-Kommandozeile ohne .m-Dateiendung anzugeben. Wie erwartet ergibt sich folgende Ausgabe am Bildschirm Hallo Welt! Zumindest unter Linux können Sie z.B. auch komfortabel den {{W|Shebang|Shebang}} (<code>#!</code>) nutzen. Gegeben sei das Octave-Script #!/usr/bin/octave disp("Hallo Welt!"); Gepeichert sei es ebenfalls als <code>test1.m</code>. Starten Sie ein Terminal, wechseln Sie in das entsprechende Arbeitsverzeichnis und geben Sie ./test1.m ein, so erhalten Sie wieder Hallo Welt! als Ausgabe auf dem Terminal. Die Zugriffsberechtigung muss natürlich mittels <code>chmod</code> richtig gesetzt werden. Oder Sie führen direkt Octave mit der Datei <code>test1.m</code> aus: octave test1.m Sie sehen, mehrere Wege führen zum Ziel. == Blockkommentare == In neueren Octave-Versionen ab dem Jahr 2009 sind auch Blockkommentare möglich. Blockkommentare werden wie normale Kommentare vom Octave-Interpreter ignoriert. %{ Das ist ein Blockkommentar %} #{ und das auch #} == Variablen == Variablenbezeichner können aus Buchstaben (A-Za-z), Ziffern (0-9) und Underscores (_) bestehen, dürfen aber nicht mit einer Zahl beginnen. Gültige Variablenbezeichner wären also: xyz x1 _wert name_anzahl Da Octave case-sensitiv ist, repräsentieren folgende Bezeichner verschiedene Variablen: xyz XYZ xYz Werte werden an Variablen mittels Gleich-Zeichen (=) zugewiesen. Im Folgenden wird der Code immer in der Datei c:\tmp\test1.m gespeichert. x = 5 y = 10 z = x*y Bringen Sie die Datei test1.m zur Ausführung, so erhalten Sie folgende Bildschirmausgabe x = 5 y = 10 z = 50 Normalerweise will man aber nur z anzeigen, die Werte von x und y sind ja bereits bekannt. Dazu fügen Sie an den Anweisungsenden, wie bereits weiter oben erwähnt, bei x und y jeweils ein Semikolon (;) an, um das Anweisungsende explizit zu markieren. x = 5; y = 10; z = x*y Nun erhalten Sie als Ergebnis nur noch z = 50 Sie können auch mehrere Anweisungen in einer Zeile durch Semikolon getrennt schreiben. x = 5; y = 10; z = x*y Ausgabe: z = 50 Auch aus der Programmiersprache C/C++ oder Java bekannte Konstrukte können Sie verwenden, z.B. x = 5; % inkrementiere x ++x % x = x - 2 x -= 2 Bildschirmausgabe: ans = 6 x = 4 Beachten Sie, dass mit dem =-Zeichen eine Wertezuweisung durchgeführt wird. Dies ist nicht äquivalent zum mathematischen =-Zeichen, wie am vorigen Beispiel zu ersehen ist. Soll eine Anweisung auf mehrere Zeilen verteilt werden, z.B. weil sie zu lang ist, so kann dies durch Verwendung von drei Punkten (...) geschehen, wie nachfolgend dargestellt. x = 5; y = 1000 * x + ... sin(x/2) Ausgabe: y = 5000.6 Diese Drei-Punkte-Methode soll nicht für in Anführungszeichen (") eingeschlossene Strings verwendet werden. Diese Methode ist seit geraumer Zeit "deprecated" und funktioniert mit der Version 9.1.0 gar nicht mehr. Benutzen Sie statt dessen den Backslash (\): txt = "xxxxxxxxxxxxxxxxxxxx\ yyyyyyyyyyyyyyyyy" Ausgabe: txt = xxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyy Variablen sind nicht an einen bestimmten Datentyp gebunden, folgendes ist in Octave problemlos möglich: wert = 10 wert = 35.5 wert = "Hallo" wert = pi Ausgabe: wert = 10 wert = 35.500 wert = Hallo wert = 3.1416 Der Befehl <code>who</code>, bzw. <code>whos</code> listet die gegenwärtig definierten Variablen, z.B.: clear; a = 10.5; v = [1 2 3 4 5 12 13]; m = ["s1", "s2"; "s3", "s4"]; disp "***** Der Befehl who *****" who disp "***** Der Befehl whos *****" whos Ausgabe: ***** Der Befehl who ***** Variables visible from the current scope: a m v ***** Der Befehl whos ***** Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 8 double m 2x4 8 char v 1x7 56 double Total is 16 elements using 72 bytes ==Hexadezimale und binäre Zahlen== % Hexadezimale Zahl disp( 0xABC ) % Binäre Zahl disp( 0b1000011 ) Ausgabe (als Dezimalzahlen): 2748 67 Octave kann auch dezimale in binäre Zahlen etc. umwandeln: dec2bin( 214 ) Ausgabe: ans = 11010110 Siehe dazu in der Octave-Hilfe auch folgende Funktionen: bin2dec, dec2base, dec2hex, hex2dec, base2dec == Zahlenkolonnen == Eine Zahlenkolonne (oder ein Vektor) mit gleichen Abständen der Werte kann folgendermaßen erzeugt werden: % a ... Startwert % b ... Schrittweite % c ... Endwert a = 0; b = 10; c = 100; x = a : b : c; disp(x); Ausgabe: 0 10 20 30 40 50 60 70 80 90 100 Ähnliche Resultate lassen sich auch durch Anwendung der linspace-Funktion erhalten, z.B.: % a ... Startwert % b ... Endwert % c ... Anzahl der Werte a = 0; b = 100; c = 11; v = linspace(a, b, c) Ausgabe: v = 0 10 20 30 40 50 60 70 80 90 100 == Verzweigungen == === Die IF-Verzweigung === Die IF-Verzweigung ist aus anderen Programmiersprachen bereits bekannt. In Pseudocode lässt sie sich folgendermaßen darstellen: WENN bedingung TRUE führe block1 aus SONST führe block2 aus ENDE Die test1.m-Datei laute also wie folgt: x = 5; if x < 4 disp "x ist kleiner als 4"; else disp "Der else-Zweig wird ausgefuehrt"; disp "x ist groesser oder gleich 4"; end Ausgabe: Der else-Zweig wird ausgefuehrt x ist groesser oder gleich 4 Octave kennt eine Reihe von Vergleichs- und Verknüpfungsoperatoren: * <, <= ... kleiner (gleich) * >, >= ... größer (gleich) * == ... gleich * ~=, != ... ungleich * &, && ... AND * |, || ... OR * ~, ! ... NOT Beispielsweise: a = 5; b = 9; if a<=10 & b!=7 disp("OK"); else disp("Nicht OK"); end Ausgabe: OK === Die SWITCH-Verzweigung === In Pseudocode: WECHSLE ZU var FALLS wert1 == var führe block1 aus FALLS wert2 == var führe block2 aus ... SONST führe blockn aus ENDE Eine Beispielsimplementierung in Octave könnte so aussehen: x = "g"; switch(x) case "k" disp("klein"); case "g" disp("gross"); otherwise disp("sonstiges") end Ausgabe: gross Anmerkungen für C-Programmierer: * in Octave darf zum Abschluß von ''case'' kein Doppelpunkt folgen (würde einen Syntaxfehler auslösen). * ein ''break'' als Abschluß eines ''case''-Blocks ist nicht erlaubt (würde in Octave einen parse error auslösen). ''break'' ist Schleifen vorbehalten. ''switch'' hat in Octave keinen "Durchfall" und ähnelt somit eher der Fortran-Anweisung ''select case''. Mehrere Fälle in einem ''case'' können wie nachfolgend behandelt werden: x = "K"; switch(x) case {"k" "K"} disp("klein"); case {"g" "G"} disp("gross"); otherwise disp("sonstiges") end Ausgabe: klein == Schleifen == === Die WHILE-Schleife === Die WHILE-Schleife ist kopfgesteuert. Sie funktioniert wie aus anderen Programmiersprachen bekannt. In Pseudocode: SOLANGE bedingung TRUE führe block aus ENDE In Octave: x = 0; while x <= 10 disp(x); x++; end Ausgabe: 0 1 2 3 4 5 6 7 8 9 10 === Die DO-UNTIL-Schleife === Die DO-UNTIL-Schleife ist fußgesteuert. Beachte: Diese Schleife ist nicht äquivalent zu der aus anderen Programmiersprachen bekannten DO-WHILE-Schleife. DO-WHILE bedeutet "TUE SOLANGE", DO-UNTIL bedeutet "TUE BIS". Sie wird mindestens einmal ausgeführt. Pseudocode: TUE führe block aus BIS bedingung TRUE Mittels Octave: x = 0; do disp(x); x++; until(x >= 5) Ausgabe: 0 1 2 3 4 === Die FOR-Schleife === for x = 0 : 2 : 10 disp(x); end Ausgabe: 0 2 4 6 8 10 Der FOR-Schleifenkopf ist in Form einer Zahlenkolonne folgendermaßen aufgebaut: for variable = startwert : schrittweite : endwert Man beachte, dass Vektorisierung gegenüber einem Schleifendurchlauf eine erhebliche Zeiteinsparung bewirken kann (man siehe in der [https://docs.octave.org/latest/Vectorization-and-Faster-Code-Execution.html Octave-Dokumentation das Kapitel 19 "Vectorization and Faster Code Execution"]). Folgendes Beispiel ist an genanntes Octave-Kapitel angelehnt. Zuerst wird eine Berechnung mittels Schleifendurchlauf durchgeführt und der Zeitbedarf ausgegeben. Dieser Zeitbedarf hängt natürlich auch von der verwendeten Hardware etc. ab. Eingabe: n = m = 500; a = b = eye(500); t1 = time(); for i = 1:n for j = 1:m c(i,j) = a(i,j) + b(i,j); endfor endfor t2 = time(); t_diff = t2-t1 Ausgabe: t_diff = 3.7566 Der Zeitverbrauch beträgt hier also ca. 4 Sekunden. Im Gegensatz dazu Eingabe: a = b = eye(500); t1 = time(); c = a + b; t2 = time(); t_diff = t2-t1 Ausgabe: t_diff = 1.5974e-05 ist der Zeitverbrauch hier sehr gering. Vektoren und Matrizen werden etwas später in diesem Text detailliert behandelt. Hier nur soviel: Mittels ''eye'' wird eine Einheitsmatrix kreiert. === Schleifen abbrechen === Zum Abbrechen einer Schleife gibt es den Befehl "break". for var = 0 : 1 : 100 disp (var); if var == 5 break; end end Ausgabe: 0 1 2 3 4 5 "continue" setzt mit dem nächsten Schleifendurchlauf fort, z.B. for var = 0 : 1 : 10 if var == 5 continue; end disp (var); end Ausgabe: 0 1 2 3 4 6 7 8 9 10 == Aufgaben == * Berechnen Sie die Summe der ersten 10000 natürlichen Zahlen (bei 1 beginnend) ** in Form einer WHILE-Schleife ** in Form einer DO-UNTIL-Schleife ** in Form einer FOR-Schleife ** mittels sum-Befehl (siehe dazu auch die von Octave zur Verfügung gestellte Hilfefunktion). ** mittels gaußscher Summenformel (<math>\sum_{i=1}^n{i} = 1+2+...+n = n(n+1) / 2</math>) * Schreiben Sie für obige Alternativen Programme mit denen der Zeitbedarf der Schleifen, Befehle bzw. Formeln gemessen werden kann. Welche Alternativen sind aus Zeitgründen (minimale Laufzeit) empfehlenswert? = Grafiken zeichnen = == 2D == === Graph einer Funktion === Es soll die cosh-Funktion im Intervall <math>x\in[-3,3]</math> gezeichnet werden. Der Programmcode lautet in der einfachsten Form: x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; Ausgabe: [[Datei:octave_cosh.jpg]] Der Code ist quasi selbsterklärend. x läuft von -3 bis +3. y wird für jeden x-Wert per Formel ausgerechnet. "plot" ist der Zeichenbefehl. "grid on" schaltet ein Zeichengitter ein. Die Schrittweite 0.1 wurde so gewählt, um einen ausreichend glatten Verlauf des Graphen zu gewährleisten. Das ist immer ein Kompromiss zwischen Berechnungszeit und Ansehnlichkeit. Testen Sie einfach ein paar verschiedene Werte, um ein Gefühl dafür zu zu bekommen. Sie könnten nun auf die Idee kommen, obiges Script unter Linux mit der Shebang-Zeile zu erweitern, um es direkt als Programm auszuführen. #!/usr/bin/octave x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; Die Enttäuschung folgt auf dem Fuß. Außer einem kurzen Aufblinken des Grafikfensters ist nicht viel zu sehen. Das Programm läuft einfach durch und wird nach der letzten Anweisung beendet. Abhilfe kann z.B. der <code>input</code>-Befehl schaffen: #!/usr/bin/octave x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; refresh(); input("Zum Beenden RETURN-Taste drücken"); Das Programm wartet somit, bis Sie im Terminal die RETURN-Taste drücken. <code>refresh()</code> dient dazu, das Grafikfenster unmittelbar zu aktualisieren. Sonst würde das Ausgabefenster leer bleiben, bis es durch externe Anreize aktualisiert wird (z.B. durch Fenster minimieren/maximieren). Gleiches gilt für die <code>octave test1.m</code>-Variante. Ein etwas komplexeres Beispiel ist Folgendes x = -3 : .1: 3; y = cosh(x) + 2.^x; plot(x,y); grid on; Man beachte den Punkt bei 2.^x (2 hoch x). Vergisst man den Punkt, dann erhält man eine Fehlermeldung (ähnlich dieser): error: for x^y, only square matrix arguments are permitted and one argument must be scalar. Use .^ for elementwise power. error: called from test1 at line 2 column 3 Ausgabe: [[Datei:octave_cosh2.jpg]] Der Funktionsgraph kann auch als Fläche eingefärbt werden: x = -3 : .1: 3; y = cosh(x) + 2.^x; fill (x, y, "b"); Ausgabe: [[Datei:octave_cosh3.jpg | 500px]] === Graphen mehrerer Funktionen und weiteres === Mehrere Graphen lassen sich folgendermaßen in ein Fenster zeichnen: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, x,y2); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Bild:octave_cosh14.jpg|600px]] Um die Linienstile etwas individueller zu gestalten, ist folgender Programmcode gedacht: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1,"*r", x,y2,"ob"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Datei:octave_cosh4.jpg]] Bei plot kann auch der Linienstil des jeweiligen Graphen angegeben werden, z.B. steht * für Sternchenlinie o für Kreise in der Linie r für rot b für blau Ein ähnliches Resultat liefert der Code: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, "Color", "red", "*", x,y2, "Color", "blue", "o"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; Will man mehrere Graphen in ein Fenster zeichnen, aber nicht alles in einen plot-Befehl quetschen, so kann die "hold on"-Anweisung die Lösung des Problems sein: %Lösche alle benutzerdefinierten Variablen aus der Symboltabelle clear; %Schließe alle Fenster close all; %Lösche Konsolenfenster und setze Cursor zurück clc; x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, "Color", "red"); hold on; plot(x,y2, "Color", "blue"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Datei:octave_coshsin1.jpg]] Bei diesem Program wurden auch einige Möglichkeiten (clear, close, clc) gezeigt, um das System aufzuräumen. Ein "hold off" würde natürlich die hold-Funktion wieder ausschalten. === Funktion in Parameterdarstellung === Es soll die archimedische Spirale <math>x = t \cos(t), y = t \sin(t)</math> im Intervall <math>[0, 6\pi]</math> gezeichnet werden. clear; close all; clc; t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y); grid on; [[Datei:octave_spirale1.jpg]] Diese Darstellung erscheint verzerrt. Will man gleiche Achsenskalierungen, so kann man den axis-Befehl verwenden (axis muss nach plot erscheinen). t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y); grid on; axis equal; [[Datei:octave_spirale222.jpg]] === Strichstärke === Für manche Zwecke ist es sinnvoll die Strichstärke des Graphen zu erhöhen. Dies kann über den Parameter "LineWidth" der plot-Funktion geschehen. t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y, "LineWidth", 2); grid on; axis equal; Ausgabe: [[Datei:octave_spirale3.jpg]] === Beliebigen Text ausgeben === x = -10:0.1:10; plot (x, sin (x), "LineWidth", 2); text (2.7, 0.8, "Das ist die sin-Funktion"); Ausgabe: [[Datei:octave_text1.jpg]] === Logarithmische Achseneinteilung === x = -3 : .1: 3; y = cosh(x) + 2.^x; % Halblogarithmische Darstellung semilogy(x,y); grid on; Ausgabe: [[Datei:octave_semilog1.jpg]] Auch die x-Achse kann mit "semilogx" logarithmisch skaliert werden. Mit "loglog" werden beide Achsen logarithmisch skaliert. === Aufgaben === * Zeichnen Sie die Strophoide <math>x = \frac{a(t^2-1)}{t^2+1}, y = \frac{at(t^2-1)}{t^2+1}, a = 2, -3 \leq t \leq 3</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_strophoide.jpg]] * Zeichnen Sie die verschlungene Hypozykloide <math>x = (R-r)\cos t + c\cos\frac{R-r}{r}t, y = (R-r)\sin t - c\sin\frac{R-r}{r}t, c = 3, r = 2, R = 6, -15 \leq t \leq 15</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_hypozykloide.jpg]] * Testen Sie bei den obigen Übungsaufgaben verschiedene Linienstile und Farben (Hinweis: Siehe dazu auch die Octave-Hilfefunktion für den plot-Befehl). * Testen Sie bei den obigen Übungsaufgaben verschiedene Werte für a, c, r und R. * Erkunden Sie in der Octave-Hilfe den ezplot-Befehl. == 3D == === Räumliche Kurven === Mittels "plot3" lassen sich Raumkurven zeichnen. t = 0 : .1 : 9*pi; x = cos(t); y = sin(t); z = 1.3 .^ t; plot3(x,y,z); grid on; [[Datei:octave_raumkurve1.jpg]] === Flächen === ==== ezsurf ==== Die wahrscheinlich einfachste Möglichkeit 3D-Flächen zu erzeugen, besteht in der Verwendung des ezsurf-Befehls. Beachten Sie beim folgenden Beispiel auch wieder den Punkt beim Multiplikationssymbol (elementweise Multiplikation soll verwendet werden, keine Matrizenmultiplikation) in der anonymen Funktion. Was eine anonyme Funktion ist, wird weiter hinten in diesem Text kurz erklärt. Fürs Erste reicht es zu wissen, dass die Funktion f(x, y) jeweils im Intervall [0, 10] gezeichnet werden soll. clear; close all; clc; clf; f = @(x, y) sin(x) + 3.*cos(y); ezsurf (f, [0, 10]); [[Bild:octave_ezsurf1.jpg|600px]] Dieses Bild wurde mit der Octave-Version 5.2 erstellt. Es ist im Prinzip identisch zu jenen des folgenden Abschnitts, die mit der Version 3.0.3 erstellt wurden, nur die Farbschattierung ist anders. Ändern lässt sich diese Eigenschaft mit dem colormap-Befehl (siehe auch Octave-Hilfe): clear; close all; clc; clf; colormap(hot); f = @(x, y) sin(x) + 3.*cos(y); ezsurf (f, [0, 10]); [[Bild:octave_colormap_hot.jpg|600px]] ==== surf und mesh ==== Für das Zeichnen von Flächen existiert der surf-Befehl. Der meshgrid-Befehl kreiert ein Netz in der xy-Zeichenebene. Beachten Sie beim folgenden Beispiel auch wieder den Punkt beim Multiplikationssymbol der Formel für z. x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); surf(x_grid, y_grid, z); [[Datei:octave_flaeche1.jpg]] Auch ein Farbstreifen kann via "colorbar" zur Grafik hinzugefügt werden. x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); surf(x_grid, y_grid, z); colorbar("East"); [[Datei:octave_flaeche2.jpg]] Das Ganze in Netzdarstellung läßt sich so programmieren: x = 0 : .2 : 10; y = 0 : .2 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); mesh(x_grid, y_grid, z); Ausgabe: [[Datei:octave_mesh1.jpg]] ==== Ellipsoide und Kegel ==== Für das Zeichnen von Kugeln oder Ellipsoiden stellt Octave den "sphere"-Befehl bzw. den "ellipsoid"-Befehl zur Verfügung. clear; close all; clc; % Ellipsoiden zeichnen [x, y, z] = sphere(30); surf(5*x, 4*y, 3*z); hold on; [x, y, z] = ellipsoid(5, 5, 5, 6, 3, 2, 30); surf(x, y, z); axis equal; [[Bild:octave_ellipsoid2.jpg|600px]] Für Zylinder und Kegel ist der "cylinder"-Befehl zuständig. clear; close all; clc; % Kegel und Zylinder zeichnen [x, y, z] = cylinder([1 2], 100); surf(x, y, z*3); hold on; [x, y, z] = cylinder([0.5 0.5], 50); surf(x+3, y, z*2); axis equal; [[Bild:octave_cylinder2.jpg|600px]] === Aufgaben === * Zeichnen Sie die räumliche Kurve <math>x = 2 \cdot \cosh(t)</math>, <math>y = 5 \cdot \sin(t)</math>, <math> z = t^{2} - t</math>, <math>0 \leq t \leq 3\pi</math>. Das Ganze sollte etwa wie folgt aussehen: [[Datei:octave_kurve10.jpg]] * Zeichnen Sie die Fläche <math>z = \log(x) + \cos(y)</math>. Das Ganze sollte etwa wie folgt aussehen: [[Datei:octave_flaeche10.jpg]] == Weiteres == === subplot === Zeichnen mit Untergrafiken: Hier wird z.B. ein Fenster mit drei Untergrafiken gezeichnet. Eingabe: t = 0 : .5 : 10; [x_grid, y_grid] = meshgrid(t, t); subplot(311); surf(x_grid, y_grid, sin(x_grid) + cos(y_grid) ); subplot(312); surf(x_grid, y_grid, sin(x_grid) + log(y_grid) ); subplot(313); surf(x_grid, y_grid, x_grid + cos(y_grid) ); Ausgabe: [[Datei:octave_subplot2.jpg]] Die dreistellige Ziffer beim subplot-Befehl bedeutet folgendes: * Die erste Ziffer ist die Zeilenanzahl * Die zweite Ziffer ist die Reihenanzahl und * Die dritte Ziffer ist der Index. Nun sei ein Beispiel mit 3x2-Untergrafiken angeführt. clear; close all; clc; x = 0 : .1 : 10; subplot(321); plot(x, sin(x)); text(2, -0.5, "Index 1"); subplot(322); plot(x, tan(x)); text(2, 2, "Index 2"); subplot(323); plot(x, cosh(x) ); text(2, 3000, "Index 3"); subplot(324); plot(x, gamma(x) ) text(2, 100000, "Index 4"); subplot(325); plot(x, log(x) ); text(2, 0, "Index 5"); subplot(326); plot(x, exp(x) ); text(2, 10000, "Index 6"); Ausgabe: [[Datei:octave_subplot3.jpg]] Hier ist sehr gut zu sehen, in welcher Reihenfolge der Index läuft. === figure === Zeichnen in verschiedene Fenster, z.B. clear; close all; clc; x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); figure(1) surf(x_grid, y_grid, sin(x_grid) + cos(y_grid)); figure(2) surf(x_grid, y_grid, sin(x_grid) + log(y_grid)); Ausgabe: [[Datei:octave_figure111.jpg|700px]] === Linien zeichnen === Zeichnen Sie eine Linie von der Koordinate [-15, 0] zu [15, 5]: clear; close all; clc; x = line([-15 15], [0, 5], "Color", "black", "LineWidth", 2); Ausgabe: [[Datei:octave_linie1.jpg]] Man beachte, dass Octave nicht Punkte P1(x1, y1), P2(x2, y2) erwartet, sondern einen x-Vektor [x1 x2] und einen y-Vektor [y1 y2]. Ein allgemeines Viereck wird z.B. mit folgendem Befehl gezeichnet. line([-15 15 10 -5, -15], [0, 5, 20, 15, 0], "LineWidth", 2); [[Datei:octave_viereck2.jpg]] Auch dreidimensionale Formen lassen sich mit dem line-Befehl zeichnen: clear; close all; clc; line([-15 15 10 -5, -15], [0, 5, 20, 15, 0], [10, 20, 30, 40, 50], "LineWidth", 2); [[Datei:octave_dreidim2.jpg]] === Aufgaben === * Zeichnen Sie mittels "subplot" die Funktionsgrafen <math>y_1=\tan(x), y_2=\tan(2x), y_3=\tan\sqrt x, y_4=x\cdot \tan(x)</math> in folgender Form in ein Fenster: ** in 2x2-Darstellung ** in 1x4-Darstellung. * Zeichnen Sie die im obigen Beispiel angegebenen Funktionsgrafen mittels "figure" jeweils in ein eigenes Fenster. = Vektoren und Matrizen = == Vektoren == Vektoren sollten jedem aus der Linearen Algebra bekannt sein. === Zeilen- und Spaltenvektoren === % Ein Zeilenvektor v1 = [1, 2, 3] % Ein Spaltenvektor v2 = [6; 7; 8] Ausgabe: v1 = 1 2 3 v2 = 6 7 8 Alternative Schreibweisen: % Ein Zeilenvektor v1 = [1 2 3] % Ein Spaltenvektor v2 = [6 7 8] Die Ausgabe entspricht der obigen Darstellung. === Zugriff auf Vektorelemente === Nachfolgend seien einige Zugriffsmöglichkeiten auf die einzelnen Vektorelemente erläutert. Auf ein einzelnes Element kann via Index zugegriffen werden. Der Index startet bei 1: v1 = [1 2 4 8 16]; v2 = v1(3) Ausgabe: v2 = 4 Mehrere Elemente werden folgendermaßen angesprochen: v1 = [1 2 4 8 16]; v2 = v1(3:4) Ausgabe: v2 = 4 8 Liefere den Teilvektor von einem gegebenen Index bis zum letzten Element: v1 = [1 2 4 8 16]; v2 = v1(3:end) Ausgabe: v2 = 4 8 16 === Addition und Subtraktion von Vektoren === v1 = [1, 2, 3]; v2 = [5, 7, 9]; res = v1 + v2 res = v1 - v2 Ausgabe: res = 6 9 12 res = -4 -5 -6 === Multiplikation mit Skalaren === faktor = 3; v = [1, 2, 3]; res = faktor * v Ausgabe: res = 3 6 9 === Skalarprodukt === Das Skalarprodukt ist bekanntermaßen als <math>v_1 \cdot v_2 = |v_1| |v_2| \cos(\angle(v_1, v_2))</math> definiert. In Octave sieht das so aus: v1 = [1, 2, 3]; v2 = [5, 6, 7]; res = dot(v1, v2) Ausgabe: res = 38 === Vektorprodukt === v1 = [1, 2, 3]; v2 = [5, 6, 7]; res = cross(v1, v2) Ausgabe: res = -4 8 -4 Enger an die mathematische Darstellung lehnt sich folgender Code an. Die zu multiplizierenden Vektoren seien in Form von Spaltenvektoren gegeben. Mathematisch: <math>a\ast b=\left(\begin{array}{c} a_{1}\\ a_{2}\\ a_{3} \end{array}\right)\ast\left(\begin{array}{c} b_{1}\\ b_{2}\\ b_{3} \end{array}\right)=\left(\begin{array}{c} a_{2}b_{3}-a_{3}b_{2}\\ a_{3}b_{1}-a_{1}b_{3}\\ a_{1}b_{2}-a_{2}b_{1} \end{array}\right) </math> Octave-Code: a = [1 2 3]; b = [5 6 7]; res = cross(a, b) Ausgabe: res = -4 8 -4 === Transponierter Vektor === v1 = [1, 2, 3]; v2 = [5; 6; 7]; res1 = v1' res2 = v2' Ausgabe: res1 = 1 2 3 res2 = 5 6 7 === Einige weitere Vektorfunktionen === Beispiel: % 1 + 2 + 3 v = [1 2 3]; sum(v) Ausgabe: ans = 6 Beispiel: % 1 * 2 * 3 * 4 v = [1 2 3 4]; prod(v) Ausgabe: ans = 24 Beispiel: % 1^2 + 2^2 + 3^2 v = [1 2 3]; sumsq (v) Ausgabe: ans = 14 == Matrizen == Gegeben sei folgende 2x3-Matrix <math>m=\left(\begin{array}{ccc} 1 & 2 & 3\\ 4 & 5 & 6 \end{array}\right)</math>. Eingabe: m = [1, 2, 3; 4, 5, 6] Ausgabe: m = 1 2 3 4 5 6 Alternativ und anschaulicher kann diese 2x3-Matrix auch so eingegeben werden: m = [1 2 3 4 5 6] Dies ist schon sehr nahe an der mathematischen Darstellungsweise. === Zugriff auf Matrizenelemente === m = [1 2 3 4 5 6]; % Element aus Zeile 2 und Spalte 3 m(2,3) Ausgabe: ans = 6 Eine andere Zugriffsmöglichkeit ist diese: m = [1 2 3 4 5 6]; % Auf das fünfte Element soll zugegriffen werden m(5) Ausgabe: ans = 3 Die Matrix wird also spaltenweise durchlaufen (nicht zeilenweise). Dies ist vielleicht auf den ersten Blick etwas ungewöhnlich, wird aber z.B. auch in Fortran so gehandhabt. Auch Teilmatrizen können einfach gebildet werden: m = [1 2 3 4 5 6]; m(2:end, 2:end) Ausgabe: ans = 5 6 Siehe zu diesem Thema auch etwas weiter hinten in diesem Text den Abschnitt "Teilmatrizen". === Addition und Subtraktion von Matrizen === m1 = [1, 2, 3; 4, 5, 6]; m2 = [-4, -2, 0; 2, 4, 6]; m1 + m2 m1 - m2 Ausgabe: ans = -3 0 3 6 9 12 ans = 5 4 3 2 1 0 === Transponierte Matrix === m = [1, 2, 3; 4, 5, 6]; m' Ausgabe: ans = 1 4 2 5 3 6 === Rang einer Matrix === Der Rang einer Matrix Rg(M) ist die maximale Anzahl der linear unabhängigen Zeilenvektoren (Spaltenvektoren). m1 = [1, 2, 3; 4, 5, 6]; m2 = [1, 2; 2, 4]; rank(m1) rank(m2) Ausgabe: ans = 2 ans = 1 Regulär ist eine nxn-Matrix, wenn der Rg(M) = n. D.h. die erste Matrix m1 ist regulär, die zweite m2 singulär. === Inverse Matrix === m1 = [1, 3; 0, -5 ]; m2 = [1, 2; 2, 4]; inv(m1) inv(m2) Ausgabe: ans = 1.00000 0.60000 0.00000 -0.20000 warning: matrix singular to machine precision warning: called from test1 at line 4 column 1 ans = Inf Inf Inf Inf Die Matrix m2 in diesem Beispiel ist singulär (d.h. die Determinante ist 0). Determinanten werden etwas weiter unten in diesem Text behandelt. Inf steht für Infinity (= Unendlich). === Multiplikation von Matrizen (falksches Schema) === m1 = [1, 3, 4; 0, -5, 1]; m2 = [1, 2; 2, 3; 0, 2]; m1 * m2 Ausgabe: ans = 7 19 -10 -13 Will man aus irgendwelchen Gründen nicht das falksche Schema ausführen, sondern elementweise Multiplikation, so funktioniert das mit dem Punkt-Operator, z.B. m1 = [1, 3; 0, -5]; m2 = [1, 2; 4, 2]; % falksches Schema m1 * m2 % elementweise Multiplikation m1 .* m2 Ausgabe: ans = 13 8 -20 -10 ans = 1 6 0 -10 Verifikation, falksches Schema (Zeile*Spalte): [ 1 3 ] [ 1 2 ] [ 1*1+3*4 1*2+3*2 ] [ 13 8 ] [ 0 -5 ] [ 4 2 ] = [ 0*1-4*5 0*2-5*2 ] = [ -20 -10 ] Verifikation, elementweise Multiplikation (homologe Elemente): [ 1 3 ] [ 1 2 ] [ 1*1 3*2 ] [ 1 6 ] [ 0 -5 ] [ 4 2 ] = [ 0*4 -5*2 ] = [ 0 -10 ] === Determinante einer Matrix === m1 = [1, 3; 0, -5 ]; m2 = [1, 2; 2, 4]; det(m1) det(m2) Ausgabe: ans = -5 ans = 0 m1 ist regulär, m2 ist singulär. Determinanten können nur von quadratischen Matrizen gebildet werden. === Teilmatrizen === m = [1, 2, 3; 0, 5, 1]; % Die Matrix in einen Spaltenvektor umwandeln m1 = m(:) % Das Element aus der 1. Zeile und der 2. Spalte extrahieren m2 = m(1,2) % Erste Zeile extrahieren m3 = m(1, 1:3) m4 = m(1, :) % Zweite Spalte extrahieren m5 = m(1:2, 2) m6 = m(:, 2) Ausgabe: m1 = 1 0 2 5 3 1 m2 = 2 m3 = 1 2 3 m4 = 1 2 3 m5 = 2 5 m6 = 2 5 === Einheitsmatrizen === eye(3,2) Ausgabe: ans = 1 0 0 1 0 0 === Nullmatrizen === zeros(2,3) Ausgabe: ans = 0 0 0 0 0 0 === Diagonalmatrizen === diag([1, 2, 3]) Ausgabe: ans = 1 0 0 0 2 0 0 0 3 === Spur einer Matrix === trace([1,2,3; 6,9, 0]) Ausgabe: ans = 10 === LR-Zerlegung einer Matrix === Führen Sie die LR-Faktorisierung (LR ... links/rechts bzw. LU ... left/upper) einer Matrix m aus. l sei die linke Dreiecksmatrix, r die rechte Dreiecksmatrix und p die Permutationsmatrix m = [1 0 5 -1 1 -2 0 0 3]; [l, r, p] = lu(m) Ausgabe: l = 1 0 0 -1 1 0 0 0 1 r = 1 0 5 0 1 3 0 0 3 p = 1 0 0 0 1 0 0 0 1 === Eigenwerte === a = [5 8 1 3]; % Eigenvektoren und Eigenwerte [ev, ew] = eig(a) Ausgabe: ev = 0.9701 -0.8944 0.2425 0.4472 ew = Diagonal Matrix 7 0 0 1 Die Eigenwerte sind hier <math>\lambda_1 = 7</math> und <math>\lambda_2 = 1</math>. Die Eigenvektoren sind [0.9701 0.2425] bzw. [-0.8944 0.4472]. Da das Gleichungssystem <math>(A - \lambda_i E) x_i = 0</math> singulär ist, sind alle Lösungsvektoren Vielfache dieser Eigenvektoren. === Schwach besetzte Matrizen === {{Wikipedia | Dünnbesetzte Matrix}} Gegeben sei die schwach besetzte Matrix m = [0 1 0 0 0 0 0 0 3 0 4 0 0 2 0 0 0 1 0 0 0 0 0 1 7] Mittels dem sparse-Befehl kann man einfach die Elemente != 0 nach folgendem Schema eingeben. sparse ([zeilenindizes] [spaltenindizes] [werte]) also in unserem Fall: ms = sparse([1 2 3 3 4 5 5], [2 4 1 4 3 4 5], [1 3 4 2 1 1 7]) Ausgabe: ms = Compressed Column Sparse (rows = 5, cols = 5, nnz = 7) (3, 1) -> 4 (1, 2) -> 1 (4, 3) -> 1 (2, 4) -> 3 (3, 4) -> 2 (5, 4) -> 1 (5, 5) -> 7 Die volle Matrix erhält man mit dem Befehl full: m = full(ms) Ausgabe: m = 0 1 0 0 0 0 0 0 3 0 4 0 0 2 0 0 0 1 0 0 0 0 0 1 7 Grafisch anzeigen lassen kann man sich die Besetzung von Matrizen mit dem spy-Befehl: spy(ms); oder (für allgemeine Matrizen auch mittels) spy(m); Ausgabe: [[Datei:octave_sparse1.jpg]] Wirklich interessant ist der spy-Befehl für größere Matrizen, z.B. um die Bandstruktur zu visualisieren. e = eye(200); es = sparse(e); % Auf sparse-Matrizen kann genauso zugegriffen werden wie auf normalen Matrizen es(100, 15) = 100; spy(es); Ausgabe: [[Datei:octave_sparse2.jpg]] === Matrizen mit Zufallswerten === Insbesondere für Testzwecke kann es manchmal sinnvoll sein größere Matrizen mit Zufallswerten zu bilden. Dazu stellt Octave u.a. den rand-Befehl zur Verfügung. m = rand(5, 6) Ausgabe: m = 0.86605 0.61108 0.71347 0.97119 0.52428 0.21993 0.74059 0.49062 0.56073 0.68592 0.74737 0.62680 0.20790 0.84874 0.36834 0.31102 0.25813 0.28933 0.84732 0.98777 0.91512 0.42240 0.87891 0.63757 0.76823 0.80367 0.24639 0.78208 0.77170 0.95281 Die Zufallszahlen liegen gleichverteilt zwischen 0 und 1 und werden nach dem Mersenne-Twister-Verfahren mit einer Periode von <math>2^{19937}-1</math> gebildet. Andere Verfahren sind: * randn: Normalverteilte Pseudozufallselemente mit Mittelwert=0 und Varianz=1 * rande: Exponentialverteilte Zufallselemente * randg: Gammaverteilte Zufallselemente * randp: Poissonverteilte Zufallselemente Details dazu siehe in der Octave-Hilfefunktion. == Aufgaben == * Berechnen Sie den Winkel zwischen den beiden Vektoren a = [1 2 0] und b = [2 1 1]. Hinweis: Siehe diesbezüglich auch im Oktave-Hilfesystem den Befehl "norm". * Gegeben seien Vektoren a = [1 2 5], b = [0 0 -1] und c = [-1 -2 2]. Berechnen Sie das Spatprodukt aus diesen drei Vektoren. * Multiplizieren Sie die beiden Matrizen A und B (mit Octave und zur Kontrolle händisch) A = [0 0 1 1 2 1] B = [1 1 1 2 0 4] * Ist die Matrix C regulär? Wenn ja, dann bilden Sie die inverse Matrix. C = [-1 0 0 -4 2 0 1 5 7 6 2 0 3 0 2 6] * Ist die Matrix D regulär? Wenn ja, dann bilden Sie die inverse Matrix. D = [2 1 0 0 0 0 2 1 0 0 0 2 1 1 0 0] * Berechnen Sie die Konditionszahl der folgenden Matrix. Hinweis: Siehe diesbezüglich im Oktave-Hilfesystem den Befehl cond [3 4 -5 6 0 3 1 1 2] * Berechnen Sie die Eigenwerte und Eigenvektoren der folgenden Matrix [6 -3 4 0 0 7 -1 1 0 10 -3 -2 0 1 -2 1] = Komplexe Zahlen = Die imaginäre Einheit wird in Octave durch den Buchstaben i, j, I oder J symbolisiert. Darstellen kann man eine komplexe Zahl bekannterweise in mehreren Formen: * Kartesische Darstellung <math>z = \Re(z) + i \cdot \Im(z)</math> * Polardarstellungen <math>z = r \cdot (\cos(\phi) + i \cdot \sin(\phi)) = r \cdot e^{i\cdot \phi}</math> Die konjugiert komplexe Zahl ist <math>z^* = \Re(z) - i \cdot \Im(z)</math> == Mit komplexen Zahlen rechnen == z1 = 2 + 5i; % kartesische Darstellung z2 = 3 * exp(3j); % Polardarstellung % Addition res = z1 + z2; disp("z1 + z2 = "); disp(res); % Multiplikation res = z1 * z2; disp("z1 * z2 = "); disp(res); % Realteil res = real(z2); disp("Realteil von z2 = "); disp(res); % Imaginärteil res = imag(z2); disp("Imaginaerteil von z2 = "); disp(res); % Betrag res = abs(z1); disp("Betrag von z1 = "); disp(res); % Argument res = angle(z1); disp("Argument von z1 = "); disp(res); % Konjugiert komplexe Zahl res = conj(z1); disp("Konjugiert komplexe Zahl von z1 = "); disp(res); Ausgabe: z1 + z2 = -0.96998 + 5.42336i z1 * z2 = -8.0568 - 14.0032i Realteil von z2 = -2.9700 Imaginaerteil von z2 = 0.42336 Betrag von z1 = 5.3852 Argument von z1 = 1.1903 Konjugiert komplexe Zahl von z1 = 2 - 5i == Die gaußsche Zahlenebene == clear; close all; clc; z1 = 3 + 5i; z2 = 5 * exp(0.5i); hold on; plot(z1, "*"); compass(z1); plot(z2, "o"); compass(z2); grid on; [[Datei:octave_komplex1.jpg]] == Aufgaben == * Berechnen Sie die Quadratwurzel der komplexen Zahl <math>z = 3 + 2i</math>. * Verwandeln Sie folgende Zahlen in die Polarkoordinatendarstellung: <math>-11 - 3i</math> und <math>(1+i)^{10}</math> * Verwandeln Sie folgende Zahlen in die Normaldarstellung: <math>12 \cdot e^{i\cdot \pi / 4}</math> und <math>3 \cdot (\cos(\pi / 3) + i \cdot \sin(\pi / 3))</math> * Zeichnen Sie die Zahl <math>3 + 5i</math> in der gaußschen Zahlenebene als Zeiger. = Funktionen = Um Programme zu strukturieren und einfacher zu gestalten können Programmteile in Funktionen ausgelagert werden. Eingebaute Funktionen haben wir schon kennengelernt (z.B. die Sinus-Funktion sin). Nun wollen wir sehen, wie man selbst solche Funktionen schreiben kann. == Eine einfache Funktion schreiben == Datei addiere.m: function res = addiere(a, b) % Addiere zwei Zahlen a + b res = a + b; end Datei test1.m: addiere(10, 15) Ausgabe: ans = 25 * Jede Funktion sollte in einer eigenen m-Datei stehen. * Der Dateiname sollte mit dem Funktionsnamen (natürlich ohne Dateiendung .m) übereinstimmen. * Der Kommentar unter dem Funktionskopf wird als Hilfstext angezeigt, wenn die help-Funktion (hier "help addiere") aufgerufen wird. == Inline-Funktionen == Kurze Funktionen können auch als Inline-Funktionen geschrieben werden. addiere = inline("a + b"); x = 5; y = 10; z = addiere(x, y) Oder in diesem Fall noch kürzer addiere = inline("a + b"); z = addiere(5, 10) Ausgabe: z = 15 Bei neueren Octave-Versionen kann bei der Verwendung von Inline-Funktionen die Warnung warning: inline is obsolete; use anonymous functions instead erscheinen. Ein Blick in die Hilfe-Funktion help inline zeigt das selbe Ergebnis. Es sollen also anonyme Funktionen (siehe etwas weiter unten in diesem Text) anstelle von Inline-Funktionen verwendet werden. == Funktionsstring == addiere = "a + b"; a = 5; b = 10; z = eval(addiere) Ausgabe: z = 15 == Anonyme Funktionen == {{Wikipedia | Anonyme Funktion}} addiere = @(a, b) a + b; x = 10; y = 20; z = addiere(x, y) oder kürzer addiere = @(a, b) a + b; z = addiere(10, 20) Ausgabe: z = 30 == Nullstellen von Funktionen bestimmen == sinh2 = @(x) sinh(x) + 2; z = fzero(sinh2, 1) Ausgabe: z = -1.4436 Zur Kontrolle soll hier der Graph der Funktion dargestellt werden clear; close all; clc; sinh2 = @(x) sinh(x) + 2; x = -2 : 0.1 : 0; y = sinh2(x); z = fzero(sinh2, 1) plot(x, y); hold on; plot(z, 0, "o", "Color", "red", "LineWidth", 2); text (-1.8, 0.8, "Nullstelle"); line([z -1.7], [0, .7], "Color", "black"); grid on; Ausgabe: [[Datei:octave_funktion5.jpg]] Weiter unten im Text wird die ähnliche Funktion "fsolve" beschrieben. "fzero" benutzt zwei verschiedene Funktionen zur Problemlösung, darunter eben auch "fsolve". Für die Nullstellenbestimmung von Polynomen gibt es die Funktion "roots". Näheres dazu folgt im nächsten Kapitel. == Globale Variablen == Datei addiere.m: function res = addiere() global a b; res = a + b; end Datei test1.m: clear; close all; clc; global a b; a = 5; b = 3; addiere() Ausgabe: ans = 8 == Aufgaben == * Schreiben Sie eine Funktion "ellipse", welche eine Ellipse am Bildschirm darstellt. Zur Erinnerung: Die Parameterdarstellung der Ellipse lautet <math>x = a\cdot\cos(t), y = b\cdot\sin(t), 0 \leq t \leq 2\pi</math>, Funktionsargumente seien a und b. * Schreiben Sie <math>y = 2\cdot\sin(x) + 3\cdot\cos(x/2)</math> ** als normale Funktion ** als Funktionsstring ** als Inlinefunktion ** als anonyme Funktion ** stellen Sie diese Funktion grafisch am Bildschirm dar. = Polynome = == Einzelne Polynomwerte berechnen == % y = 2*x^3 + 5*x^2 + 4 für x = 2 berechnen p = [2, 5, 0, 4]; polyval(p, 2) Ausgabe: ans = 40 == Polynome zeichnen == % y = 2*x^3 - 5*x^2 + 4 für das Intervall -5 <= x <= 5 grafisch darstellen x = -5 : .1 : 5; p = [2, 5, 0, 4]; y = polyval(p, x); plot(x,y); grid on; Ausgabe: [[Datei:octave_polynom1.jpg]] == Nullstellen bestimmen == Für Polynome existiert die Funktion "roots" zur Nullstellenbestimmung. % Nullstellen für y = 2*x^3 - 5*x^2 + 4 bestimmen p = [2, 5, 0, 4]; r = roots(p) Ausgabe: r = -2.76214 + 0.00000i 0.13107 + 0.84077i 0.13107 - 0.84077i Dieses Polynom hat nur eine reelle Nullstelle. Diese liegt, wie am obigen Grafen zu ersehen ist, in der Nähe von -2.762. Die beiden anderen Nullstellen sind konjugiert komplex zueinander (wie es auch sein sollte). == Aufgaben == * Berechnen Sie den Wert für x = 3 des Polynoms <math>y = 2x^4 - 3x^3 - x + 7</math>. * Berechnen Sie die Nullstellen von <math>y = 7x^5 - 3x^2 + 12</math>. * Zeichnen Sie das Polynom <math>y = 12x^4 - 70x</math> im Intervall <math>-5 \leq x \leq 5</math>. = Lineare Gleichungssysteme = Sei <math>Ax = b</math> ein lineares Gleichungssystem. <math>A</math> sei die Koeffizientenmatrix, <math>x</math> der Lösungsvektor und <math>b</math> ein bekannter Vektor. == Einfache Berechnung mittels Gauß-Verfahren == {{Wikipedia | Gaußsches Eliminationsverfahren}} Beispiel: A = [5 1 0 2]; b = [1 2]; x = A \ b Ausgabe: x = 0 1 == Das gmres-Verfahren == gmres steht für Generalized Minimal Residual. {{Wikipedia | GMRES-Verfahren}} A = [5 1 0 2]; b = [1 2]; x = gmres(A, b) Ausgabe: gmres converged at iteration 2 to a solution with relative residual 2.22045e-16 x = -1.6653e-16 1.0000e+00 Das Ergebnis weicht etwas vom gaußschen Verfahren ab, ist aber trotzdem im Rahmen der Näherung korrekt. Weiters kennt Octave noch andere iterative Verfahren, z.B. cgs (Conjugate Gradient Squared) oder bicgstab (Bi-Conjugate Gradient Stabilized). Näheres zu diesen Verfahren siehe in der weiterführenden Literatur (z.B. bei Meister: Numerik linearer Gleichungssysteme, Vieweg+Teubner, 2011) {{Wikipedia | CGS-Verfahren}} == Aufgabe == * Lösen Sie folgendes Gleichungssystem mittels Octave (und zur Kontrolle auch händisch): 5x + 6y - 2z = 12 3x - y - 3z = 6 2x + 2y + 4z = 5 = Nichtlineare Gleichungssysteme = == fsolve und fzero == Löse eine beliebige Gleichung f(x) = 0, z.B. <math> f(x) = x^2 - 5\cos(x) - 10 = 0 </math>: f = @(x) x^2 - 5*cos(x) - 10; xstart = 1; [x, fval, info] = fsolve(f, xstart) Ausgabe: x = 2.4681 fval = -1.7764e-015 info = 1 * x ist eine Nullstelle in der Nähe vom Startwert xstart. * fval ist die Abweichung, den f bei x aufweist. * info ist ein "Fehlercode": 1 bedeutet, dass der relative Fehler in der spezifizierten Toleranz liegt (wie es sein soll). 3 würde bedeuten, dass der Algorithmus nicht konvergiert (z.B. weil keine Nullstelle existiert). Zur Kontrolle plotten wir den Funktionsgraphen: x = - 1 : .1 : 3; y = x.^2 - 5.*cos(x) - 10; plot(x,y, "LineWidth", 2); grid on; Ausgabe: [[Datei:octave_nichtlin1.jpg]] Und siehe da, die gesuchte Nullstelle liegt wie berechnet bei einem Wert nahe 2,5. Die Funktion <math>x^2 - 5\cos(x) - 10</math> hat noch eine zweite Nullstelle, wie in der folgenden Abbildung zu erkennen ist. [[Datei:octave_nichtlin2.jpg]] Diese zweite Nullstelle erhalten wir, wenn der Startwert in der Nähe dieser zweiten Nullstelle liegt, also z.B. bei -1. Ändern Sie einfach den entsprechenden Startwert im obigen Programmcode, und das Programm sollte die Nullstelle in der Nähe von -2.5 liefern. Auch die Funktion ''fzero'' kann zur Lösung einer nichtlinearen Gleichung verwendet werden. Die Hilfe-Funktion von Octave empfiehlt dies sogar eindringlich für den Fall einer nichtlinearen Gleichung in einer Variablen. Für das gleiche Beispiel wie oben kann der Programmcode folgendermaßen aussehen: Eingabe: f = @(x) x^2 - 5*cos(x) - 10; [x0, y0] = fzero (f, [0, 3]) Ausgabe: x0 = 2.4681 y0 = -1.2434e-14 == Gleichungssysteme == Folgende Aufgabe ist dem Buch "Knorrenschild: Numerische Mathematik, Hanser, 2017, Seite 72" entnommen. Zu lösen ist das nichtlineare Gleichungssystem <math>f_1 = 2x_1 + 4x_2 = 0 </math> <math>f_2 = 4x_1 + 8x_2^3 = 0</math> Lösung: f.m: function y = f(x) y(1) = 2*x(1) + 4*x(2); y(2) = 4*x(1) + 8*x(2)^3; end test1.m: clear; close all; clc; [x, fval, info] = fsolve (@f, [0, 1]) [x, fval, info] = fsolve (@f, [0, -1]) [x, fval, info] = fsolve (@f, [0, 0]) Ausgabe: x = -2 1 fval = 0 7.4930e-09 info = 1 x = 2 -1 fval = 0 -7.4930e-09 info = 1 x = 0 0 fval = 0 0 info = 1 == Aufgaben == * Bestimmen Sie die Nullstellen von <math>f(x) = x^2 - 3</math>. Plotten Sie den Grafen. * Bestimmen Sie die Nullstelle von <math>f(x) = sin(x) - x - 1</math>. Plotten Sie den Grafen. * Lösen Sie das folgende Gleichungssystem (und stellen Sie das Ganze grafisch am Bildschirm dar): <math> f_1 = x_1 + x_2 = 0; f_2 = x_1 + \sin{x_2} = 0</math> = Interpolation = == Eindimensionale Interpolation == {{Wikipedia | Interpolation (Mathematik)}} Bezüglich eindimensionaler Interpolation sei auf die [https://docs.octave.org/v11.1.0/One_002ddimensional-Interpolation.html Octave-Dokumentation und Hilfefunktion zum Befehl " interp1"] verwiesen. Dort findet sich auch ein Programmbeispiel, das als Grundlage des folgenden Plots dient: [[Datei:octave_interpol1.jpg]] == Mehrdimensionale Interpolation == Bezüglich mehrdimensionaler Interpolation siehe die [https://docs.octave.org/v11.1.0/Multi_002ddimensional-Interpolation.html Hilfefunktion zu "interp2", "interp3" und "interpn"]. == Aufgabe == * Gegeben seinen die fünf Stützpunkte p1 = [1, 0], p2 = [2, -5], p3 = [3, 2], p4 = [4, 7], p5 = [5, 6]. Legen Sie eine Funktion (die Interpolierende) durch diese Stützpunkte. Eine Lösungsmöglichkeit: xp = [1 2 3 4 5]; yp = [0, -5, 2, 7, 6]; xf = 1 : .1 : 5; spl = interp1(xp, yp, xf, "spline"); pch = interp1(xp, yp, xf, "pchip"); plot(xp, yp, "or", "LineWidth", 2, xf, spl, "LineWidth", 2, ... xf, pch, "LineWidth", 2); legend("stuetzpunkte", "spline", "pchip", "location", "southeast"); [[Datei:octave_interpol3.jpg]] = Differenzialrechnung = == Polynome differenzieren == Es soll das Polynom <math>y = 2x^3 - 5x^2 + 7</math> differenziert werden. % Differenzieren des Polynoms y = 2*x^3 - 5*x^2 + 7 p = [2, -5, 0, 7]; polyder(p) Ausgabe: ans = 6 -10 0 D.h. also, die Ableitung von <math>y = 2x^3 - 5x^2 + 7</math> ist <math>y' = 6x^2 - 10x</math>. == Sonstige Funktionen differenzieren == Als Beispiel differenzieren wir <math>y = 5x\sin{x}</math> und stellen das Ganze grafisch dar. clear; close all; clc; x = 0 : 0.01 : 10; y = 5 .* x .* sin(x); y_strich = diff(y) / 0.01; plot(x, y, "Color", "red", "LineWidth", 2); hold on; plot(x(1:length(x)-1), y_strich, "Color", "blue", "LineWidth", 2); legend("y", "y'"); grid on; Ausgabe: [[Datei:octave_diff1.jpg]] diff(y) ist der Vektor aus den Differenzen y(2)-y(1), ..., y(n)-y(n-1). Für die genaue Arbeitsweise der diff-Funktion siehe "help diff". == Aufgaben == * Differenzieren Sie das Polynom <math>y = 5y^5 - y^4 + 6y - 4</math>. * Differenzieren Sie die Funktion <math>y = \log(x) + 10x</math> und stellen Sie y, sowie y' grafisch am Bildschirm dar. * Differenzieren Sie die Funktion <math>y = \frac{\sinh(x)}{(1+x)}</math> und stellen Sie y, sowie y' grafisch am Bildschirm dar. = Integralrechnung = == Polynome integrieren == Berechnen Sie das unbestimmte Integral von <math>y = 2x^3 - 7x^2 + 7</math> p = [2, -7, 0, 7]; p_int = polyint(p) Ausgabe: p_int = 0.50000 -2.33333 0.00000 7.00000 0.00000 Das Ergebnis lautet also <math>\int{y dx} = 0.5x^4 - 2.33333x^3 + 7x + C</math> (auf die Integrationskonstante C darf nicht vergessen werden!). == Gauß-Quadratur == {{Wikipedia | Gauß-Quadratur}} Berechnen Sie das Integral <math>\int_{0}^{3}x^2 dx</math> mittels Gauß-Quadratur. Datei f.m: function y = f(x) y = x^2; end Datei test1.m: [v, ier, nfun, err] = quad ("f", 0, 3) Ausgabe: v = 9.0000 ier = 0 nfun = 21 err = 9.9920e-014 Erläuterung zur Ausgabe: * v ... Resultat der Integration * ier ... integer error code * nfun ... Anzahl der Funktionsaufrufe * err ... Fehler in der Lösung == Quadratur mittels adaptiver Lobatto-Regel == Berechnen Sie diesmal das Integral <math>\int_{0}^{3}x^2 dx</math> mittels Lobatto-Quadratur. f = inline("x.^2"); v = quadl (f, 0, 3) Ausgabe: v = 9 Wie weiter oben bereits angesprochen kann bei der Ausgabe eine Warnung erfolgen. Inline-Funktionen sind inzwischen als obsolet erklärt und es sollen stattdessen anonyme Funktionen verwendet werden. Zwecks Übung sei nachfolgend nochmals dieses Beispiel berechnet. Diesmal wird aber eine anonyme Funktion verwendet. v = quadl (@(x) x.^2, 0, 3) == Aufgaben == * Integrieren Sie das Polynom <math>y = 5y^5 - y4 + 6y - 4</math>. * Integrieren Sie die Funktion <math>y = \log(x) + 10x</math> von -5 bis 5. * Integrieren Sie die Funktion <math>y = x^3</math> von 0 bis 4. Verwenden Sie hierzu die Simpsonregel (siehe dazu in der Hilfefunktion den Befehl "quadv"). = Gewöhnliche Differenzialgleichungen = == ode23, ode45 und lsode == Für die Lösung von Differenzialgleichungen stehen die Funktionen * ode23 bzw. * ode45 zur Verfügung. Diese Funktionen implementieren das Runge-Kutta-Verfahren. "ode" steht für "Ordinary Differential Equation" (also auf Deutsch für "Gewöhnliche Differentialgleichung"). Die Zahlen bei ode23 oder ode45 stehen für die Ordnung. {{Wikipedia | Runge-Kutta-Verfahren}} Beispiel <math>y' = x^2 + y^3</math>: clear; close all; clc; [x, y] = ode45(@(x,y) (x^2+y^3), [0 1], 0); plot(x, y, "LineWidth", 2); Ausgabe: [[Datei:octave_ode1.jpg]] Bezüglich der genauen Funktionsweise von "ode45" (oder "ode23") siehe die Octave-Hilfe. Auch die Funktion "lsode" steht zur Lösung von ODEs zur Verfügung. Beispiel <math>y' = x + y</math>: clear; close all; clc; t = 0 : .1 : 5; [y2, istate, msg] = lsode(@(x,y) (x + y), 1, t); istate msg plot(t, y2); Ausgabe: istate = 2 msg = successful exit [[Datei:octave_lsode1.jpg]] Bezüglich der genauen Funktionsweise von "lsode" siehe die Octave-Hilfe. == Aufgaben == * Lösen Sie die Differenzialgleichung <math>y' = \frac{1}{x\cdot y}</math> mit Octave. Kontrollieren Sie das Ergebnis, indem Sie die DGl händisch lösen. * Lösen Sie die Differenzialgleichung <math>m' = -k\cdot m</math>. Kontrollieren Sie das Ergebnis, indem Sie die DGl händisch lösen. * Lösen Sie die Differenzialgleichung <math>y' = \sqrt{|y|}</math>. = Die Fast-Fourier-Transformation = {{Wikipedia | Schnelle Fourier-Transformation}} Für die Funktion "fft" siehe das Octave-Hilfesystem. = Mengenrechnung = == Vereinigungsmenge == v1 = [1 2 3 4]; v2 = [2 4 6]; union(v1, v2) Ausgabe: ans = 1 2 3 4 6 == Schnittmenge == v1 = [1 2 3 4]; v2 = [2 4 6]; intersect(v1, v2) Ausgabe: ans = 2 4 = Logik = Logische Operatoren werden oft benötigt, z.B. bei Schleifen und Verzweigungen. Octave kennt die logischen Operatoren <code>or, and, not</code> und <code>xor</code>. Als Beispiel sei die Wahrheitstabelle für den Operator <code>or</code> dargestellt. A B A or B -------------------- true true true true false true false true true false false false In Octave kann das so ausgedrückt werden: or( true, true ) or( true, false ) or( false, true ) or( false, false ) Ausgabe: ans = 1 ans = 1 ans = 1 ans = 0 Zahlen ungleich 0 stehen für true, 0 für false. Z.B.: or( 22, 0) Ausgabe: ans = 1 Äquivalent zu <code>or</code> ist der Operator <code>|</code>: 22 | 0 Ausgabe: ans = 1 Zwecks näheren Informationen zu den Operatoren <code>and (&, &&), not (~, !)</code> und <code>xor</code> bemühe man Octaves Help-Funktion. Bitweise logische Funktionen kennt Octave auch, so kann man z.B. zwei Zahlen mit dem bitweisen OR-Operator verknüpfen: 0b1100101 0b0110001 --------- 0b1110101 Oder in Dezimalzahlen: 101 49 --- 117 In Octave: bitor( 0b1100101, 0b0110001 ) dec2bin( ans ) Ausgabe: ans = 117 ans = 1110101 Zu <code>bitand, bitxor</code> usw. siehe die Octave-Hilfe-Funktion. = Stochastik = ==Deskriptive Statistik == === Lageparameter === Arithmetischer Mittelwert: vec = [1 2 3 4 5 12 13]; mw = mean(vec) Ausgabe: mw = 5.7143 Der Median oder Zentralwert läßt sich folgendermaßen berechnen: vec = [1 2 3 4 5 12 13]; median(vec) Ausgabe: ans = 4 Der Modus oder häufigste Wert läßt sich mittels "mode"-Funktion eruieren: vec = [1 2 1 3 5 1 2 7]; [m, f, c] = mode (vec); disp(m); disp(f); disp(c); Ausgabe: 1 3 { [1,1] = 1 } m (erste Zeile der Ausgabe) ist der Modus. f (zweite Zeile) ist die Häufigkeit. Näheres dazu siehe im Octave-Hilfesystem. === Streuungsparameter === Varianz: vec = [1 2 3 1 1 6 7]; v = var(vec) Ausgabe: v = 6.3333 Standardabweichung: vec = [1 2 3 1 1 6 7]; s = std(vec) Ausgabe: s = 2.5166 === Grafiken erzeugen === Histogramme: v = [1 1 2 3 1 6 7 6 1 1 1 2]; hist(v, max(v)); Ausgabe: [[Datei:octave_histo2.jpg]] Balkendiagramme: v = [1 1 2 3 1 6 7 6]; bar(v); Ausgabe: [[Datei:octave_bar111.jpg]] Treppendiagramm: v = [1 1 2 3 1 6 7 6]; stairs(v); Ausgabe: [[Datei:octave_stairs1.jpg]] Stabdiagramm: v = [1 1 2 3 1 6 7 6]; stem(v); Ausgabe: [[Datei:octave_stem1.jpg]] === Aufgaben === Gegeben sei folgende Datentabelle mit den Werten: v1 = [3 4 1 1 7 2 1 9 2 5 9 7 2 2 9 2 2 1 2 8] v2 = [1 1 0 2 3 4 1 2 7 0 2 1 5 5 5 4 5 2 5 0] * Berechnen Sie die Lageparameter und Streuungsparameter des Vektors v1. * Berechnen Sie Kovarianz und Korrelationskoeffizient der beiden zugeordneten Vektoren v1 und v2. * Zeichnen Sie das Histogramm des Vektors v1. == Wahrscheinlichkeitsrechnung == === Kombinatorik === Der Binomialkoeffizient: <math>\binom{n}{k}=\frac{n!}{k!(n-k)!}</math> In Octave z.B.: n = 30; k = 4; n_ueber_k = nchoosek (n, k) Ausgabe: n_ueber_k = 27405 Permutationen sind die verschiedenen Anordnungsmöglichkeiten mit der Anzahl n! = n * (n-1) * ... * 2 * 1. Beispiel: v = [1, 2, 3]; p = perms(v) Ausgabe: p = 1 2 3 2 1 3 1 3 2 2 3 1 3 1 2 3 2 1 n! (n-Fakultät) selbst kann so berechnet werden: % 10! n = 10; factorial (n) Ausgabe: ans = 3628800 === Verteilungen === Octave kennt eine ganze Reihe von Dichte- und Verteilungsfunktionen und zwar * Probability Density Functions (PDF, Dichtefunktionen) * Cumulative Distribution Functions (CDF, Verteilungsfunktionen) Z.B.: * Binomialverteilung: ** binopdf ** binocdf * Hypergeometrische Verteilung: ** hygepdf ** hygecdf * Normalverteilung: ** normpdf ** normcdf * Studentverteilung: ** tpdf ** tcdf * Weibullverteilung: ** wblpdf ** wblcdf Ein Codebeispiel zur Binomialverteilung: clear; close all; clc; x = 0 : 1 : 10; n = 10; p = 0.1; b1 = binopdf (x, n, p); b2 = binocdf (x, n, p); subplot(221); bar(x, b1); title("binopdf"); text(1, 0.1, "n=10; p=0.1"); subplot(222); bar(x, b2); title("binocdf"); text(1, 0.5, "n=10; p=0.1"); n = 10; p = 0.5; b1 = binopdf (x, n, p); b2 = binocdf (x, n, p); subplot(223); bar(x, b1); text(1, 0.1, "n=10; p=0.5"); subplot(224); bar(x, b2); text(1, 0.1, "n=10; p=0.5"); Ausgabe: [[Datei:octave_bino3.jpg]] Möglicherweise erhalten Sie bei diesem Beispiel eine Fehlermeldung in der Form error: 'binopdf' undefined near line 8, column 6 The 'binopdf' function belongs to the statistics package from Octave Forge which you have installed but not loaded. To load the package, run 'pkg load statistics' from the Octave prompt. Laden Sie einfach das Paket für die Statistikfunktionen, wie in der Fehlermeldung beschrieben. Ein Codebeispiel zur Normalverteilung: clear; close all; clc; x = -4 : .1 : 4; b1 = normpdf(x); b2 = normcdf(x); subplot(121); plot(x, b1); title("normpdf"); grid on; subplot(122); plot(x, b2); title("normcdf"); grid on; Ausgabe: [[Datei:octave_norm111.jpg]] == Zufallszahlengeneratoren == Octave kann Zufallszahlen aus einer großen Anzahl von Verteilungen generieren, z.B. * Chi-Quadrat-Verteilung: chi2rnd * Log-Normal-Verteilung: lognrnd * Normalverteilung: normrnd Codebeispiel: mean = 0; standardabweichung = 1; zufallszahl = normrnd (mean, standardabweichung) Ausgabe (gibt eine Zufallszahl rund um den Mittelwert 0 aus), z.B. zufallszahl = 1.0451 Auch Zufallsvektoren (oder Zufallsmatrizen) können erstellt werden: mean = [0 0 0 0 0]; standardabweichung = 1; zufallsvektor = normrnd (mean, standardabweichung) Ausgabe, z.B.: zufallsvektor = 1.47108 -0.51280 0.52726 0.31730 -1.04422 = Einfache Benutzeroberflächen erstellen= == Input == fflush (stdout); x = input("Gib eine Zahl ein: "); disp(2 * x); Ein-/Ausgabe: Gib eine Zahl ein: 12 24 Der "fflush"-Befehl sollte immer vor dem Aufruf des input-Befehls aufgerufen werden. Näheres zu "fflush" siehe im Octave-Hilfesystem. == Diverse einfache vorgefertigte Dialoge == Fehlermeldung: errordlg("Fehlermeldung"); [[Bild:octave_fehlermeldung1.jpg]] Warnung: warndlg("Warnung"); [[Bild:octave_warnung1.jpg]] Hilfedialog: helpdlg [[Bild:octave_hilfe1.jpg]] Abfragedialog: button = questdlg ("Frage") [[Bild:octave_abfrage1.jpg]] Eingabedialog: in = inputdlg("Eingabe") [[Bild:octave_eingabe1.jpg]] Messagebox: h = msgbox ("Eine Mitteilung!"); [[Bild:octave_messagebox1.jpg]] == Komplexere vorgefertigte Dialogboxen == === Menübox === auswahl = menu("Auswahl", "Affe", "Elefant", "Loewe", "Sonstiges"); switch(auswahl) case 1 disp "Affe quietscht" case 2 disp "Elefant trompetet" case 3 disp "Loewe bruellt" otherwise disp "Sonstiges" end Ausgabe: [[Bild:octave_menu1.jpg]] Es werde beispielsweise die Nummer 2 gewählt. Ausgabe: Elefant trompetet === Dialogliste === clear; close all; clc; opt = {"Eins", "Zwei", "Drei"}; [sel, ok] = listdlg ("ListString", opt, "SelectionMode", "Multiple"); if (ok == 1) for i = 1 : numel(sel) disp(opt{sel(i)}); end else disp("Cancel"); end [[Bild:octave_dialog1.jpg]] Es werden beispielsweise alle Optionen ausgewählt. Ausgabe: Eins Zwei Drei === Fortschrittsbalken === h = waitbar ([0.5]) [[Bild:octave_fortschritt1.jpg]] === Datei- und Verzeichnisdialoge === Dateidialog: [fname, fpath, fltidx] = uigetfile () [[Bild:octave_dateidialog2.jpg]] Ähnlich sind die Befehle "uiputfile" und "uigetdir". Dazu sei auf die Octave-Hilfe verwiesen. == Eigene Dialoge kreieren == Dieses Thema sei hier nur kurz angerissen. Programmcode: d = dialog("Position", [300, 300, 250, 150], "Name", "Dialog"); txt = uicontrol("Parent", d, ... "Style", "text", ... "Position", [20, 80, 210, 40], ... "String", "Hallo Welt"); btn_servus = uicontrol("Parent", d, ... "Position", [30, 20, 80, 30], ... "String", "Servus", ... "Callback", "disp('Servus angeklickt!');"); btn_hallo = uicontrol("Parent", d, ... "Position", [140, 20, 80, 30], ... "String", "Hallo", ... "Callback", "disp('Hallo angeklickt!');"); uiwait(d); Ausgegebenes Dialogfenster: [[Bild:octave_dialog100.jpg]] Ausgabe auf der Konsole (je nach gedrücktem Button), z.B.: Servus angeklickt! Die Position wird als [links, unten, breite, höhe] angegeben. Der Koordinatennullpunkt liegt, bezogen auf das Elternfenster, links unten. Es sind auch negative Koordinatenwerte möglich. Sinnvoll ist das z.B. bei einem dynamischen Ausblenden ohne zu löschen, oder für Animationen. [[Bild:Cartesian-coordinate-system.svg | 150px]] Wer mehr dazu wissen will, sei auf die Octave-Dokumentation verwiesen. Insbesondere siehe * dialog * uicontrol * uipanel * uibuttongroup * uitable * uimenu * uitoolbar == Aufgaben == === Aufgabe 1 === Erzeugen Sie ein Dialogfenster mit einem Texteingabefeld und einem Button. Beim Klicken auf den Button soll der Eingabetext auf der Konsole ausgegeben werden. Das Dialogfenster soll also in etwa so aussehen: [[Bild:octave_dialog105.jpg]] Da dies etwas komplizierter als das oben gezeigte Beispiel ist, werden nachfolgend ein paar Codefragmente zwecks Lösung angegeben: Datei button_callback.m: function button_callback(editHandle) eingegText = get(editHandle, "String"); disp(eingegText); end Codefragement in test1.m: % ... edit = uicontrol(% ... "Style", "edit", ... %, ... "HorizontalAlignment", "left"); btn = uicontrol(% ... "Callback", @(src, event) button_callback(edit)); % ... Aufruf mit: octave test1.m Eingabe von z.B. "Hallo Welt!": [[Bild:octave_dialog106.jpg]] Ausgabe auf der Konsole nach dem Drücken des Buttons: Hallo Welt! === Aufgabe 2 === Erzeugen Sie ein Dialogfenster mit zwei Eingabefeldern und einem Button. Eingegeben in diese zwei Eingabefelder werden vom Benutzer Zahlen. Auf der Konsole ausgegeben werden soll, nach Drücken des Buttons, das Produkt dieser zwei Zahlen. Auch hier werden wieder Codefragemente angegeben. Datei button_callback.m: function button_callback(edit1, edit2) zahl1 = str2double(get(edit1, 'String')); zahl2 = str2double(get(edit2, 'String')); disp(zahl1 * zahl2); end Codefragment Datei test1.m: % ... btn = uicontrol("Parent", d, ... % ... "Callback", @(src, event) button_callback(edit1, edit2)); % ... Was passiert, wenn der Benutzer keine Zahlen, sondern beliebige Strings eingibt? = Fehlerhandling mit try/catch = Die try/catch-Anweisung entspricht weitgehend jener, die aus höheren Programmiersprachen wie C++ oder Java bekannt sind. Aufgebaut ist diese Anweisungsfolge so: try BODY catch CLEANUP end Beispiel: clear; close all; clc; try a = 10 / "zahl"; disp(a); disp("Weiter im try-Block"); catch disp("Catch: Kann nicht durch einen String dividieren"); end Ausgabe: Catch: Kann nicht durch einen String dividieren Sinnvoll ist die try/catch-Folge, wenn z.B. auch in einem Fehlerfall Dateien wieder geschlossen werden sollen. = Ein- und Ausgabe = == Formatierte Ausgabe am Bildschirm, formatiertes Lesen von der Tastatur == Folgendes Beispiel ist der Octave-Hilfe (von Octave 3.0.3) entnommen: pct = 37; filename = "foo.txt"; printf ("Processed %d%% of `%s'.\nPlease be patient.\n", pct, filename); Ausgabe: Processed 37% of `foo.txt'. Please be patient. "printf" gibt einen formatierten String am Bildschirm (genauer in den Stream stdout) aus. Wie man sieht, orientiert sich das Format an der Programmiersprache C. Für das formatierte Lesen vom Stream stdin (normalerweise also von der Tastatur) steht das Pendant "scanf" bereit. == Von einem String lesen bzw. in einen String schreiben == Bezüglich der Funktionen * sprintf und * sscanf sei auf die Octave-Hilfefunktion verwiesen. == Lesen und Schreiben von einer Datei == === Datei schreiben === % Datei c:\tmp\datei.test zum Schreiben öffnen datei = fopen ("c:/tmp/datei.test", "w"); % Etwas in die Datei schreiben fprintf(datei, "Hallo, Welt!"); % Datei schließen fclose(datei); === Datei lesen === % Datei c:\tmp\datei.test zum Lesen öffnen datei = fopen ("c:/tmp/datei.test", "r"); % Etwas aus der Datei lesen [string] = fscanf(datei, "%s"); disp(string); % Datei schließen fclose(datei); Ausgabe: Hallo,Welt! === Dateiende prüfen === Mittels des Befehls feof(FID); kann das Dateiende geprüft werden. Wenn die EOF-Bedingung zutrifft, dann wird 1 zurückgegeben, wenn nicht dann 0. Ein Beispiel folgt später als Lösung einer Aufgabe. === warning und error === Eine Warnung kann man am stderr-Stream ausgeben. Die warning-Funktion entspricht ansonsten der printf-Funktion. Nach Ausgabe der Warnung wird das Programm normal fortgesetzt. m = [1 2 3 6]; if(det(m) == 0) warning("Matrix ist singulaer"); end disp("Weiter geht's"); Ausgabe: warning: Matrix ist singulaer warning: called from test1 at line 5 column 3 Weiter geht's Schärfer ist der error-Befehl. Die Fehlermeldung wird am stderr-Stream ausgegeben. Vom Format her entspricht diese Funktion dem printf-Befehl. Nach Ausgabe der Fehlermeldung wird das Programm beendet. m = [1 2 3 6]; if(det(m) == 0) error("Matrix ist singulaer"); end disp("Weiter geht's"); Ausgabe: error: Matrix ist singulaer error: called from test1 at line 5 column 3 == Aufgaben == * Schreiben Sie ein Programm, das die Zahlen 1 bis 10 zeilenweise in eine Datei ausgibt. * Lesen Sie diese Zeilen wieder von der Datei ein und geben Sie sie am Bildschirm aus. * Gegeben sei eine Datei. Lesen Sie die Daten aus dieser Datei ein und rechnen Sie per Octave-Programm den Gesamtpreis für alle Tiere aus. Die Anzahl der Zeilen und der genaue Dateinhalt sei Ihnen vorab nicht bekannt. Bekannt ist nur das Datenformat wie folgt: Nr. Name Einzelpreis Stueck 1 Affe 15000.50 2 2 Loewe 11000.90 1 3 Nashorn 45000.10 1 4 Elefant 51245.90 3 5 Tiger 9000.70 2 6 Maus 34.90 12 Eine einfache Lösung ohne Schnickschnack (Fehlerüberprüfungen etc.) für dieses Beispiel könnte wie folgt aussehen: clear; close all; clc; datei = fopen ("c:/tmp/daten1.txt", "r"); gesamtpreis = 0; % Kopfzeile einlesen [nr, name, preis, stk] = fscanf(datei, "%s %s %s %s", "C"); while(feof(datei) == 0) % Datensätze einlesen [nr, name, preis, stk] = fscanf(datei, "%d %s %f %d", "C"); gesamtpreis += preis*stk; end fclose(datei); disp("Gesamtpreis = "); format long; disp(gesamtpreis); Ausgabe: Gesamtpreis = 258159.900000000 = Datencontainer = == Datenstrukturen == Pseudocode: STRUKTUR s ZAHL a VEKTOR b STRING c END Octave-Code: s.a = 45.9; s.b = [1 2 3 4 5]; s.c = "Hallo!"; s Ausgabe: s = scalar structure containing the fields: a = 45.90000000000000 b = 1 2 3 4 5 c = Hallo! Um ein paar weitere Möglichkeiten zum Handling mit Datenstrukturen aufzuzeigen, sei folgender Code aufgeführt. Datei addsub.m function res = addsub(a, b) res.x = a + b; res.y = a - b; end Datei test1.m clear; clc; addsub(10, 50) r = addsub(30, 70) r.x r.y ++r.x Ausgabe: ans = scalar structure containing the fields: x = 60 y = -40 r = scalar structure containing the fields: x = 100 y = -40 ans = 100 ans = -40 ans = 101 Die Funktion "addsub" liefert die Struktur res mit zwei Zahlenwerten. Die Elemente der Datenstruktur können auch außerhalb der Funktion angesprochen werden. Auch gerechnet werden kann mit diesen Elementen. == Cell Arrays == Manchmal kann es sinnvoll sein mehrere Variablen verschiedenen Typs und Größe in einer Variablen zu speichern. Dies funktioniert ähnlich wie bei Vektoren. Es werden aber geschweifte Klammern verwendet. Eingabe: c = {"Hallo Welt!", [2 2], 44} c{1} c{1:2} Ausgabe: c = { [1,1] = Hallo Welt! [1,2] = 2 2 [1,3] = 44 } ans = Hallo Welt! ans = Hallo Welt! ans = 2 2 Elemente des Cell Arrays können auch wieder mit Variablen anderen Typs überschrieben werden. c = {"Hallo Welt!", [2 2], 44}; c{1} = 5; c Ausgabe: c = { [1,1] = 5 [1,2] = 2 2 [1,3] = 44 } = Objektorientierte Programmierung = Octave unterstützt auch objektorientierte Programmierung mit dem Schlüsselwort <code>classdef</code> (ab Version 4.0). Dieses Thema ist aber etwas für fortgeschrittene Anwender und wird hier nicht behandelt. Wen es trotzdem interessiert, der sei auf die [https://docs.octave.org/latest/Object-Oriented-Programming.html Octave-Dokumentation] verwiesen. = Octave GUI = Das GUI-Programm ('''G'''raphical '''U'''ser '''I'''nterface) von Octave entspricht im Wesentlichen anderen Programmier-Benutzeroberflächen (IDEs ... '''I'''ntegrated '''D'''evelopment '''E'''nvironments), wie z.B. Eclipse (Java), Code::Blocks (C/C++) oder Spyder (Python). Nachfolgend ist ein Screenshot des Octave-GUI mit einigen Anmerkungen dargestellt. [[Bild:octave_gui2.jpg|600px]] Probieren Sie einfach die Möglichkeiten der zur Verfügung gestellten GUI/IDE aus. = Komplexere Aufgaben = * Berechnen Sie die Fläche, den Umfang, die Seitenlängen, den Inkreis und den Umkreis eines Dreiecks. Stellen Sie das Dreieck inklusive In- und Umkreis grafisch dar. Speichern Sie die Daten in einer Datei. Die drei Eckpunkte dieses Dreiecks sollen vom Benutzer beliebig vorgegeben werden. * Die Werte einer beliebig großen quadratischen Matrix seien in einer Datei gespeichert. Lesen Sie diese Datei ein und berechnen Sie daraus die Determinante der Matrix, die inverse Matrix, die Eigenvektoren und -werte, die Spur. Führen Sie die LR-Zerlegung durch. Geben Sie diese Werte am Bildschirm aus. = Ausblick = Dies war eine kurze Einführung in die Berechnungs- und Darstellungsmöglichkeiten mit Octave. Es sollten etliche relevante Themen behandelt, oder zumindest kurz angesprochen worden sein. Wem dieser Text nicht ausreichend ist, der sei auf die entsprechende weiterführende Literatur, die Octave-Hilfefunktion und die Octave-Dokumentation verwiesen. Octave kennt noch viel mehr Befehle, als hier dargestellt wurden. Aber auch Octave selbst ist erweiterbar. Man siehe z.B. Octave Packages (https://gnu-octave.github.io/packages/) oder man schreibt selbst Erweiterungen. {{Navigation_zurückhochvor_buch| zurücktext=Maxima| zurücklink=Ing Mathematik: Computeralgebrasysteme am Beispiel von Maxima| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Julia für Ingenieure| vorlink=Ing Mathematik: Julia}} dyz03vahxee01bzfwswbrpr3ooc8beh 1091089 1091080 2026-09-19T14:37:19Z Intruder 1513 /* Objektorientierte Programmierung */ 1091089 wikitext text/x-wiki {{Navigation_zurückhochvor_buch| zurücktext=Maxima| zurücklink=Ing Mathematik: Computeralgebrasysteme am Beispiel von Maxima| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Julia für Ingenieure| vorlink=Ing Mathematik: Julia}} = Hallo Welt und allgemeine Hinweise = == Was ist Octave == * Octave ist eine Software zur numerischen Lösung mathematischer Probleme. * Octave ist Open-Source (GPL-Lizenz). * Octave ist für viele Betriebssysteme erhältlich (z.B. für Linux, MS Windows, macOS). * Octave ist weitgehend kompatibel zum Numerik-Standardprogramm {{W|Matlab|MATLAB}}. * Octave ist ein Interpreter. * Octave als Programmiersprache ist case-sensitive - d.h. Groß- und Kleinschreibung ist relevant bei der Eingabe von Befehlen. {{Wikipedia | GNU Octave}} == Octave installieren == === MS Windows === Laden Sie das aktuelle Octave-Paket von der Webseite [https://octave.org/download] herunter. Weiter geht es wie bei jedem anderen größeren zu installierenden Programm. Einfach das Installationsprogramm im Explorer doppelklicken und den Anweisungen des Setup-Programmes folgen. === Linux === Entweder ist Octave bereits standardmäßig installiert, ansonsten ist die Installation mittels Paketmanagementsystem einfach möglich. Dazu gehen Sie auf die Seite [https://wiki.octave.org/Category:Installation], wählen die vorhandene Linux-Variante und folgen der angegebenen Beschreibung (z.B. <code>zypper ... </code> für openSUSE. Oder Sie benutzen unter openSUSE Tumbleweed direkt das Setup-Programm {{W|YaST}}). == Octave starten == === MS Windows === Das Icon für das Octave-Programm doppelklicken (für das Konsolenprogramm ... CLI, für die grafische Benutzeroberfläche ... GUI). Und schon startet das Programm. [[Datei:octavestart1.jpg]] === Linux === In einer Linux-Konsole den Befehl "octave" eintippen, mit der RETURN-Taste bestätigen, und das Programm (CLI) startet: GNU Octave (x86_64-suse-linux-gnu) version 11.1.0 Copyright (C) 1993-2026 The Octave Project Developers. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software; see the source code for copying conditions. There is NO WARRANTY, to the extent permitted by law. For details, type 'warranty'. Home page: <https://octave.org> Support resources: <https://octave.org/support> Improve Octave: <https://octave.org/get-involved> For changes from previous versions, type 'news'. octave:1> Um Octave mit der eingebauten GUI zu starten, kann der Befehl <code>octave --force-gui</code> verwendet werden: [[File:Gnu_Octave_IDE.png|600px]] Alternativ kann, z.B. unter openSUSE Tumbleweed (mit {{W|KDE Plasma 6|KDE-Plasma}}), die Octave-IDE auch über den Application Launcher im Menü ''Education -> GNU Octave'' gestartet werden. == Ein paar Worte zur Erklärung == Im Folgenden wird immer das Konsolenprogramm (CLI ... Command Line Interface) für die Eingabe von Befehlen benutzt. Erst gegen Ende dieses Textes wird auch kurz auf das GUI von Octave eingegangen. Teilweise werden Ergebnisse der älteren Octave-Version 3.0.3 dargestellt. Die dargestellten Grafiken und Ausgabetexte können je nach Version leicht voneinander abweichen. Der Text wurde ursprünglich mit der Octave-Version 3.0.3 erstellt und anschließend auf die Versionen 5.2 bis 11.1.0 aktualisiert. Dieser Mischmasch sollte aber kein Problem darstellen. Getestet wurden die Beispiele ursprünglich unter dem Betriebssystem MS Windows 10, später auch mit MS Windows 11, bzw. mit openSUSE Leap 15.6 (Octave 6.4.0, nur vereinzelt) und ab März 2026 auch mit openSUSE Tumbleweed (ab Octave 10.3.0, nur vereinzelt). == Ein erstes Programm == Kommentare werden in Octave mit dem Prozentzeichen (%) oder alternativ mit der Raute (#) eingeleitet. Sie werden vom Octave-Interpreter ignoriert. Will man kompatibel mit MATLAB bleiben, so ist die Version mit dem %-Zeichen vorzuziehen. Text kann mit der disp-Funktion ausgegeben werden. Starten Sie Octave und geben sie folgende Anweisungen zeilenweise ein octave-3.0.3.exe:1> % Das ist ein Kommentar octave-3.0.3.exe:2> # und das auch octave-3.0.3.exe:3> disp "Hallo Welt!" Als Ergebnis erhalten Sie Hallo Welt! Der Prompt (z.B. octave-3.0.3.exe:1>) ist natürlich abhängig von der Octave-Version und den schon eingegebenen Zeilen. Er ist selbstverständlich nicht einzutippen, sondern wird vom Octave-System geliefert. Strings können in Octave entweder in Anführungszeichen (") gesetzt werden oder in Hochkommatas('). In diesem Text wird die erste Variante bevorzugt eingesetzt. = Octave als Taschenrechner = == Allgemeines == Wir wollen 3 * 5 berechnen. Dazu starten wir Octave. Geben Sie dann die Formel octave-3.0.3.exe:1> 3 * 5 ein, drücken die Taste ENTER/RETURN und erhalten als Ergebnis ans = 15 Auch kompliziertere Ausdrücke sind möglich. Beispielsweise mit Winkelfunktionen, Quadratwurzeln etc. Wir wollen nun den Ausdruck <math>\sin\sqrt{15}</math> berechnen : octave-3.0.3.exe:2> sin(sqrt(15)) ans = -0.6679 Octave kennt eine Handvoll von Konstanten, z.B.: Zeilenweise Eingabe: % Die Kreiszahl PI pi % Die Eulersche Zahl e % Zur Maschinengenauigkeit eps Ausgabe: ans = 3.1416 ans = 2.7183 ans = 2.2204e-016 "ans" steht übrigens für den Begriff "answer" (auf Deutsch "Antwort"). Mit "ans" kann wie mit jeder anderen Variable oder Konstanten weitergerechnet werden, z.B.: Eingabe: % Der Kreisradius sei 10 10 % Der Kreis-Umfang mit diesem Radius sei folgendes 2 * pi * ans Ausgabe: ans = 10 ans = 62.832 Die Ausgabe eines Befehls am Bildschirm (das "Echo") kann übrigens durch Anwendung des Semikolons (;) unterdrückt werden. Gezeigt werden soll dies nun mit Hilfe des obigen Beispiels. Es soll nur der Umfang ausgegeben werden, nicht der Radius. Eingabe: % Der Kreisradius sei 10 10; % Der Kreis-Umfang mit diesem Radius sei folgendes 2 * pi * ans Ausgabe: ans = 62.832 Vielleicht ist manchem die Genauigkeit, mit der Echo bzw. der Befehl disp Werte ausgibt, nicht ausreichend. Dem kann Abhilfe verschafft werden und zwar so: Eingabe: format short pi format long pi format longe pi % usw. Ausgabe: ans = 3.1416 ans = 3.14159265358979 ans = 3.14159265358979e+00 Beenden lässt sich das Octave-Programm durch Eingabe von quit oder exit (und natürlich zur Bestätigung die RETURN-Taste drücken). == Die Hilfefunktion von Octave == Die Eingabe von help mit Angabe eines Funktionsnamens liefert detaillierte Infos zu der gesuchten Funktion. Eingabe: help sin Ausgabe: 'sin' is a built-in function from the file libinterp/corefcn/mappers.cc -- Y = sin (X) Compute the sine for each element of X in radians. See also: asin, sind, sinh. Additional help for built-in functions and operators is available in the online version of the manual. Use the command 'doc <topic>' to search the manual index. Help and information about Octave is also available on the WWW at https://www.octave.org and via the help@octave.org mailing list. Auch gibt es die doc-Funktion für eine vollständige Dokumentation des Octave-Systems, z.B.: Eingabe: doc Ausgabe: [[Datei:Octave_730_doc_screenshot.jpg]] == Sonstige einfache Berechnungen == In octave gibt es eine "umgekehrte" Division: 11 / 2 % normale Division (Rechtsdivision) 11 \ 2 % umgekehrte Division (Linksdivision) Ausgabe: ans = 5.5000 ans = 0.1818 Potenzieren kann man so: 12^5 Ausgabe: ans = 248832 Den Modulo-Operator % wie in C/C++, Java oder Python gibt es in Octave '''nicht'''. Das Prozentzeichen ist dem Kommentar vorbehalten. Man kann aber eine Funktion hierfür benutzen y = mod(20, 3) Ausgabe: y = 2 Runden mit und auf Ganzzahlen kann man in Octave so: a = int32(10); b = int32(3); x = a / b y = int32(15) / int32(4) Ausgabe: x = 3 y = 4 Siehe dazu aber auch die Funktionen <code>floor</code>, <code>ceil</code> und <code>idivide</code>. Mittels <code>int32()</code> werden Zahlen als 32-Bit-Ganzzahlen dargestellt. Standardmäßig ist der Datentyp nämlich <code>double</code>. Das ist zu beachten, es ergeben sich unterschiedliche Ergebnisse. Beispiel: clear(); a = int32(10); b = int32(3); x = a / b c = 10; d = 3; y = c / d whos() Ausgabe: x = 3 y = 3.3333 Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 4 int32 b 1x1 4 int32 c 1x1 8 double d 1x1 8 double x 1x1 4 int32 y 1x1 8 double Total is 6 elements using 36 bytes Ist der Wertebereich von <code>int32</code> zu klein (4 Bytes, <math>-2^{31}</math> bis <math>2^{31} - 1</math>), so gibt es auch <code>int64</code> (8 Bytes, <math>-2^{63}</math> bis <math>2^{63} - 1</math>). <code>clear</code> löscht Namen und gibt den Speicherplatz wieder frei. <code>whos()</code> liefert detaillierte Informationen der aktuell definierten Variablen. == Aufgaben == * Berechnen Sie mit Octave den Ausdruck <math>\frac{1}{2}\cdot e^2 \cdot \tan(\pi/3)</math>. * Berechnen Sie mit Octave den Ausdruck <math>2\; \text{cosd}(60) - 3\sin(\pi/5)</math>. Anmerkung: cosd erwartet den Parameter im Gradmaß (d für "degree"), sin erwartet den Parameter im Bogenmaß. * Erkunden Sie die Fehlerfunktion "erf" mittels Octave-Hilfe. * Welche Zahl ergibt sich durch <code>3 / 4 \ 2</code>? * Welche Zahlen werden durch die folgenden Anweisungen ausgegeben? idivide(int32(10), int32(3), "fix") idivide(int32(10), int32(3), "round") idivide(int32(10), int32(3), "floor") idivide(int32(10), int32(3), "ceil") floor(10.3) ceil(10.3) = Octave als Scriptsprache = Häufig wird man aber kompliziertere Anweisungsfolgen verarbeiten müssen. Diese will man normalerweise nicht jedesmal neu eingeben, sondern in einer Datei speichern und diese Datei dann zur Ausführung bringen. Speichern Sie dazu folgenden Code in einer Textdatei, z.B. unter MS Windows als c:\tmp\test1.m % Das ist ein Kommentar # und das auch disp "Hallo Welt!" Skriptdateien müssen mit der Dateiendung .m versehen werden. In der Octave-Konsole fügen Sie den Dateipfad mittels octave-3.0.3.exe:1> addpath("c:/tmp") hinzu (es ist der UNIX-spezifische Slash (/) zu benutzen). Alternativ können Sie zumindest unter MS Windows auch einen Doppel-Backslash (\\) einsetzen. Oder Sie wechseln mittels <code>cd c:/tmp</code> direkt ins Verzeichnis <code>c:/tmp</code>. Danach bringen Sie die Skriptdatei test1.m (sozusagen das Hauptprogramm) zur Ausführung octave-3.0.3.exe:2> test1 Achtung: Die Datei (die Funktion oder das Hauptprogramm) ist in der Octave-Kommandozeile ohne .m-Dateiendung anzugeben. Wie erwartet ergibt sich folgende Ausgabe am Bildschirm Hallo Welt! Zumindest unter Linux können Sie z.B. auch komfortabel den {{W|Shebang|Shebang}} (<code>#!</code>) nutzen. Gegeben sei das Octave-Script #!/usr/bin/octave disp("Hallo Welt!"); Gepeichert sei es ebenfalls als <code>test1.m</code>. Starten Sie ein Terminal, wechseln Sie in das entsprechende Arbeitsverzeichnis und geben Sie ./test1.m ein, so erhalten Sie wieder Hallo Welt! als Ausgabe auf dem Terminal. Die Zugriffsberechtigung muss natürlich mittels <code>chmod</code> richtig gesetzt werden. Oder Sie führen direkt Octave mit der Datei <code>test1.m</code> aus: octave test1.m Sie sehen, mehrere Wege führen zum Ziel. == Blockkommentare == In neueren Octave-Versionen ab dem Jahr 2009 sind auch Blockkommentare möglich. Blockkommentare werden wie normale Kommentare vom Octave-Interpreter ignoriert. %{ Das ist ein Blockkommentar %} #{ und das auch #} == Variablen == Variablenbezeichner können aus Buchstaben (A-Za-z), Ziffern (0-9) und Underscores (_) bestehen, dürfen aber nicht mit einer Zahl beginnen. Gültige Variablenbezeichner wären also: xyz x1 _wert name_anzahl Da Octave case-sensitiv ist, repräsentieren folgende Bezeichner verschiedene Variablen: xyz XYZ xYz Werte werden an Variablen mittels Gleich-Zeichen (=) zugewiesen. Im Folgenden wird der Code immer in der Datei c:\tmp\test1.m gespeichert. x = 5 y = 10 z = x*y Bringen Sie die Datei test1.m zur Ausführung, so erhalten Sie folgende Bildschirmausgabe x = 5 y = 10 z = 50 Normalerweise will man aber nur z anzeigen, die Werte von x und y sind ja bereits bekannt. Dazu fügen Sie an den Anweisungsenden, wie bereits weiter oben erwähnt, bei x und y jeweils ein Semikolon (;) an, um das Anweisungsende explizit zu markieren. x = 5; y = 10; z = x*y Nun erhalten Sie als Ergebnis nur noch z = 50 Sie können auch mehrere Anweisungen in einer Zeile durch Semikolon getrennt schreiben. x = 5; y = 10; z = x*y Ausgabe: z = 50 Auch aus der Programmiersprache C/C++ oder Java bekannte Konstrukte können Sie verwenden, z.B. x = 5; % inkrementiere x ++x % x = x - 2 x -= 2 Bildschirmausgabe: ans = 6 x = 4 Beachten Sie, dass mit dem =-Zeichen eine Wertezuweisung durchgeführt wird. Dies ist nicht äquivalent zum mathematischen =-Zeichen, wie am vorigen Beispiel zu ersehen ist. Soll eine Anweisung auf mehrere Zeilen verteilt werden, z.B. weil sie zu lang ist, so kann dies durch Verwendung von drei Punkten (...) geschehen, wie nachfolgend dargestellt. x = 5; y = 1000 * x + ... sin(x/2) Ausgabe: y = 5000.6 Diese Drei-Punkte-Methode soll nicht für in Anführungszeichen (") eingeschlossene Strings verwendet werden. Diese Methode ist seit geraumer Zeit "deprecated" und funktioniert mit der Version 9.1.0 gar nicht mehr. Benutzen Sie statt dessen den Backslash (\): txt = "xxxxxxxxxxxxxxxxxxxx\ yyyyyyyyyyyyyyyyy" Ausgabe: txt = xxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyy Variablen sind nicht an einen bestimmten Datentyp gebunden, folgendes ist in Octave problemlos möglich: wert = 10 wert = 35.5 wert = "Hallo" wert = pi Ausgabe: wert = 10 wert = 35.500 wert = Hallo wert = 3.1416 Der Befehl <code>who</code>, bzw. <code>whos</code> listet die gegenwärtig definierten Variablen, z.B.: clear; a = 10.5; v = [1 2 3 4 5 12 13]; m = ["s1", "s2"; "s3", "s4"]; disp "***** Der Befehl who *****" who disp "***** Der Befehl whos *****" whos Ausgabe: ***** Der Befehl who ***** Variables visible from the current scope: a m v ***** Der Befehl whos ***** Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 8 double m 2x4 8 char v 1x7 56 double Total is 16 elements using 72 bytes ==Hexadezimale und binäre Zahlen== % Hexadezimale Zahl disp( 0xABC ) % Binäre Zahl disp( 0b1000011 ) Ausgabe (als Dezimalzahlen): 2748 67 Octave kann auch dezimale in binäre Zahlen etc. umwandeln: dec2bin( 214 ) Ausgabe: ans = 11010110 Siehe dazu in der Octave-Hilfe auch folgende Funktionen: bin2dec, dec2base, dec2hex, hex2dec, base2dec == Zahlenkolonnen == Eine Zahlenkolonne (oder ein Vektor) mit gleichen Abständen der Werte kann folgendermaßen erzeugt werden: % a ... Startwert % b ... Schrittweite % c ... Endwert a = 0; b = 10; c = 100; x = a : b : c; disp(x); Ausgabe: 0 10 20 30 40 50 60 70 80 90 100 Ähnliche Resultate lassen sich auch durch Anwendung der linspace-Funktion erhalten, z.B.: % a ... Startwert % b ... Endwert % c ... Anzahl der Werte a = 0; b = 100; c = 11; v = linspace(a, b, c) Ausgabe: v = 0 10 20 30 40 50 60 70 80 90 100 == Verzweigungen == === Die IF-Verzweigung === Die IF-Verzweigung ist aus anderen Programmiersprachen bereits bekannt. In Pseudocode lässt sie sich folgendermaßen darstellen: WENN bedingung TRUE führe block1 aus SONST führe block2 aus ENDE Die test1.m-Datei laute also wie folgt: x = 5; if x < 4 disp "x ist kleiner als 4"; else disp "Der else-Zweig wird ausgefuehrt"; disp "x ist groesser oder gleich 4"; end Ausgabe: Der else-Zweig wird ausgefuehrt x ist groesser oder gleich 4 Octave kennt eine Reihe von Vergleichs- und Verknüpfungsoperatoren: * <, <= ... kleiner (gleich) * >, >= ... größer (gleich) * == ... gleich * ~=, != ... ungleich * &, && ... AND * |, || ... OR * ~, ! ... NOT Beispielsweise: a = 5; b = 9; if a<=10 & b!=7 disp("OK"); else disp("Nicht OK"); end Ausgabe: OK === Die SWITCH-Verzweigung === In Pseudocode: WECHSLE ZU var FALLS wert1 == var führe block1 aus FALLS wert2 == var führe block2 aus ... SONST führe blockn aus ENDE Eine Beispielsimplementierung in Octave könnte so aussehen: x = "g"; switch(x) case "k" disp("klein"); case "g" disp("gross"); otherwise disp("sonstiges") end Ausgabe: gross Anmerkungen für C-Programmierer: * in Octave darf zum Abschluß von ''case'' kein Doppelpunkt folgen (würde einen Syntaxfehler auslösen). * ein ''break'' als Abschluß eines ''case''-Blocks ist nicht erlaubt (würde in Octave einen parse error auslösen). ''break'' ist Schleifen vorbehalten. ''switch'' hat in Octave keinen "Durchfall" und ähnelt somit eher der Fortran-Anweisung ''select case''. Mehrere Fälle in einem ''case'' können wie nachfolgend behandelt werden: x = "K"; switch(x) case {"k" "K"} disp("klein"); case {"g" "G"} disp("gross"); otherwise disp("sonstiges") end Ausgabe: klein == Schleifen == === Die WHILE-Schleife === Die WHILE-Schleife ist kopfgesteuert. Sie funktioniert wie aus anderen Programmiersprachen bekannt. In Pseudocode: SOLANGE bedingung TRUE führe block aus ENDE In Octave: x = 0; while x <= 10 disp(x); x++; end Ausgabe: 0 1 2 3 4 5 6 7 8 9 10 === Die DO-UNTIL-Schleife === Die DO-UNTIL-Schleife ist fußgesteuert. Beachte: Diese Schleife ist nicht äquivalent zu der aus anderen Programmiersprachen bekannten DO-WHILE-Schleife. DO-WHILE bedeutet "TUE SOLANGE", DO-UNTIL bedeutet "TUE BIS". Sie wird mindestens einmal ausgeführt. Pseudocode: TUE führe block aus BIS bedingung TRUE Mittels Octave: x = 0; do disp(x); x++; until(x >= 5) Ausgabe: 0 1 2 3 4 === Die FOR-Schleife === for x = 0 : 2 : 10 disp(x); end Ausgabe: 0 2 4 6 8 10 Der FOR-Schleifenkopf ist in Form einer Zahlenkolonne folgendermaßen aufgebaut: for variable = startwert : schrittweite : endwert Man beachte, dass Vektorisierung gegenüber einem Schleifendurchlauf eine erhebliche Zeiteinsparung bewirken kann (man siehe in der [https://docs.octave.org/latest/Vectorization-and-Faster-Code-Execution.html Octave-Dokumentation das Kapitel 19 "Vectorization and Faster Code Execution"]). Folgendes Beispiel ist an genanntes Octave-Kapitel angelehnt. Zuerst wird eine Berechnung mittels Schleifendurchlauf durchgeführt und der Zeitbedarf ausgegeben. Dieser Zeitbedarf hängt natürlich auch von der verwendeten Hardware etc. ab. Eingabe: n = m = 500; a = b = eye(500); t1 = time(); for i = 1:n for j = 1:m c(i,j) = a(i,j) + b(i,j); endfor endfor t2 = time(); t_diff = t2-t1 Ausgabe: t_diff = 3.7566 Der Zeitverbrauch beträgt hier also ca. 4 Sekunden. Im Gegensatz dazu Eingabe: a = b = eye(500); t1 = time(); c = a + b; t2 = time(); t_diff = t2-t1 Ausgabe: t_diff = 1.5974e-05 ist der Zeitverbrauch hier sehr gering. Vektoren und Matrizen werden etwas später in diesem Text detailliert behandelt. Hier nur soviel: Mittels ''eye'' wird eine Einheitsmatrix kreiert. === Schleifen abbrechen === Zum Abbrechen einer Schleife gibt es den Befehl "break". for var = 0 : 1 : 100 disp (var); if var == 5 break; end end Ausgabe: 0 1 2 3 4 5 "continue" setzt mit dem nächsten Schleifendurchlauf fort, z.B. for var = 0 : 1 : 10 if var == 5 continue; end disp (var); end Ausgabe: 0 1 2 3 4 6 7 8 9 10 == Aufgaben == * Berechnen Sie die Summe der ersten 10000 natürlichen Zahlen (bei 1 beginnend) ** in Form einer WHILE-Schleife ** in Form einer DO-UNTIL-Schleife ** in Form einer FOR-Schleife ** mittels sum-Befehl (siehe dazu auch die von Octave zur Verfügung gestellte Hilfefunktion). ** mittels gaußscher Summenformel (<math>\sum_{i=1}^n{i} = 1+2+...+n = n(n+1) / 2</math>) * Schreiben Sie für obige Alternativen Programme mit denen der Zeitbedarf der Schleifen, Befehle bzw. Formeln gemessen werden kann. Welche Alternativen sind aus Zeitgründen (minimale Laufzeit) empfehlenswert? = Grafiken zeichnen = == 2D == === Graph einer Funktion === Es soll die cosh-Funktion im Intervall <math>x\in[-3,3]</math> gezeichnet werden. Der Programmcode lautet in der einfachsten Form: x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; Ausgabe: [[Datei:octave_cosh.jpg]] Der Code ist quasi selbsterklärend. x läuft von -3 bis +3. y wird für jeden x-Wert per Formel ausgerechnet. "plot" ist der Zeichenbefehl. "grid on" schaltet ein Zeichengitter ein. Die Schrittweite 0.1 wurde so gewählt, um einen ausreichend glatten Verlauf des Graphen zu gewährleisten. Das ist immer ein Kompromiss zwischen Berechnungszeit und Ansehnlichkeit. Testen Sie einfach ein paar verschiedene Werte, um ein Gefühl dafür zu zu bekommen. Sie könnten nun auf die Idee kommen, obiges Script unter Linux mit der Shebang-Zeile zu erweitern, um es direkt als Programm auszuführen. #!/usr/bin/octave x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; Die Enttäuschung folgt auf dem Fuß. Außer einem kurzen Aufblinken des Grafikfensters ist nicht viel zu sehen. Das Programm läuft einfach durch und wird nach der letzten Anweisung beendet. Abhilfe kann z.B. der <code>input</code>-Befehl schaffen: #!/usr/bin/octave x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; refresh(); input("Zum Beenden RETURN-Taste drücken"); Das Programm wartet somit, bis Sie im Terminal die RETURN-Taste drücken. <code>refresh()</code> dient dazu, das Grafikfenster unmittelbar zu aktualisieren. Sonst würde das Ausgabefenster leer bleiben, bis es durch externe Anreize aktualisiert wird (z.B. durch Fenster minimieren/maximieren). Gleiches gilt für die <code>octave test1.m</code>-Variante. Ein etwas komplexeres Beispiel ist Folgendes x = -3 : .1: 3; y = cosh(x) + 2.^x; plot(x,y); grid on; Man beachte den Punkt bei 2.^x (2 hoch x). Vergisst man den Punkt, dann erhält man eine Fehlermeldung (ähnlich dieser): error: for x^y, only square matrix arguments are permitted and one argument must be scalar. Use .^ for elementwise power. error: called from test1 at line 2 column 3 Ausgabe: [[Datei:octave_cosh2.jpg]] Der Funktionsgraph kann auch als Fläche eingefärbt werden: x = -3 : .1: 3; y = cosh(x) + 2.^x; fill (x, y, "b"); Ausgabe: [[Datei:octave_cosh3.jpg | 500px]] === Graphen mehrerer Funktionen und weiteres === Mehrere Graphen lassen sich folgendermaßen in ein Fenster zeichnen: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, x,y2); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Bild:octave_cosh14.jpg|600px]] Um die Linienstile etwas individueller zu gestalten, ist folgender Programmcode gedacht: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1,"*r", x,y2,"ob"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Datei:octave_cosh4.jpg]] Bei plot kann auch der Linienstil des jeweiligen Graphen angegeben werden, z.B. steht * für Sternchenlinie o für Kreise in der Linie r für rot b für blau Ein ähnliches Resultat liefert der Code: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, "Color", "red", "*", x,y2, "Color", "blue", "o"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; Will man mehrere Graphen in ein Fenster zeichnen, aber nicht alles in einen plot-Befehl quetschen, so kann die "hold on"-Anweisung die Lösung des Problems sein: %Lösche alle benutzerdefinierten Variablen aus der Symboltabelle clear; %Schließe alle Fenster close all; %Lösche Konsolenfenster und setze Cursor zurück clc; x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, "Color", "red"); hold on; plot(x,y2, "Color", "blue"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Datei:octave_coshsin1.jpg]] Bei diesem Program wurden auch einige Möglichkeiten (clear, close, clc) gezeigt, um das System aufzuräumen. Ein "hold off" würde natürlich die hold-Funktion wieder ausschalten. === Funktion in Parameterdarstellung === Es soll die archimedische Spirale <math>x = t \cos(t), y = t \sin(t)</math> im Intervall <math>[0, 6\pi]</math> gezeichnet werden. clear; close all; clc; t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y); grid on; [[Datei:octave_spirale1.jpg]] Diese Darstellung erscheint verzerrt. Will man gleiche Achsenskalierungen, so kann man den axis-Befehl verwenden (axis muss nach plot erscheinen). t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y); grid on; axis equal; [[Datei:octave_spirale222.jpg]] === Strichstärke === Für manche Zwecke ist es sinnvoll die Strichstärke des Graphen zu erhöhen. Dies kann über den Parameter "LineWidth" der plot-Funktion geschehen. t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y, "LineWidth", 2); grid on; axis equal; Ausgabe: [[Datei:octave_spirale3.jpg]] === Beliebigen Text ausgeben === x = -10:0.1:10; plot (x, sin (x), "LineWidth", 2); text (2.7, 0.8, "Das ist die sin-Funktion"); Ausgabe: [[Datei:octave_text1.jpg]] === Logarithmische Achseneinteilung === x = -3 : .1: 3; y = cosh(x) + 2.^x; % Halblogarithmische Darstellung semilogy(x,y); grid on; Ausgabe: [[Datei:octave_semilog1.jpg]] Auch die x-Achse kann mit "semilogx" logarithmisch skaliert werden. Mit "loglog" werden beide Achsen logarithmisch skaliert. === Aufgaben === * Zeichnen Sie die Strophoide <math>x = \frac{a(t^2-1)}{t^2+1}, y = \frac{at(t^2-1)}{t^2+1}, a = 2, -3 \leq t \leq 3</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_strophoide.jpg]] * Zeichnen Sie die verschlungene Hypozykloide <math>x = (R-r)\cos t + c\cos\frac{R-r}{r}t, y = (R-r)\sin t - c\sin\frac{R-r}{r}t, c = 3, r = 2, R = 6, -15 \leq t \leq 15</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_hypozykloide.jpg]] * Testen Sie bei den obigen Übungsaufgaben verschiedene Linienstile und Farben (Hinweis: Siehe dazu auch die Octave-Hilfefunktion für den plot-Befehl). * Testen Sie bei den obigen Übungsaufgaben verschiedene Werte für a, c, r und R. * Erkunden Sie in der Octave-Hilfe den ezplot-Befehl. == 3D == === Räumliche Kurven === Mittels "plot3" lassen sich Raumkurven zeichnen. t = 0 : .1 : 9*pi; x = cos(t); y = sin(t); z = 1.3 .^ t; plot3(x,y,z); grid on; [[Datei:octave_raumkurve1.jpg]] === Flächen === ==== ezsurf ==== Die wahrscheinlich einfachste Möglichkeit 3D-Flächen zu erzeugen, besteht in der Verwendung des ezsurf-Befehls. Beachten Sie beim folgenden Beispiel auch wieder den Punkt beim Multiplikationssymbol (elementweise Multiplikation soll verwendet werden, keine Matrizenmultiplikation) in der anonymen Funktion. Was eine anonyme Funktion ist, wird weiter hinten in diesem Text kurz erklärt. Fürs Erste reicht es zu wissen, dass die Funktion f(x, y) jeweils im Intervall [0, 10] gezeichnet werden soll. clear; close all; clc; clf; f = @(x, y) sin(x) + 3.*cos(y); ezsurf (f, [0, 10]); [[Bild:octave_ezsurf1.jpg|600px]] Dieses Bild wurde mit der Octave-Version 5.2 erstellt. Es ist im Prinzip identisch zu jenen des folgenden Abschnitts, die mit der Version 3.0.3 erstellt wurden, nur die Farbschattierung ist anders. Ändern lässt sich diese Eigenschaft mit dem colormap-Befehl (siehe auch Octave-Hilfe): clear; close all; clc; clf; colormap(hot); f = @(x, y) sin(x) + 3.*cos(y); ezsurf (f, [0, 10]); [[Bild:octave_colormap_hot.jpg|600px]] ==== surf und mesh ==== Für das Zeichnen von Flächen existiert der surf-Befehl. Der meshgrid-Befehl kreiert ein Netz in der xy-Zeichenebene. Beachten Sie beim folgenden Beispiel auch wieder den Punkt beim Multiplikationssymbol der Formel für z. x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); surf(x_grid, y_grid, z); [[Datei:octave_flaeche1.jpg]] Auch ein Farbstreifen kann via "colorbar" zur Grafik hinzugefügt werden. x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); surf(x_grid, y_grid, z); colorbar("East"); [[Datei:octave_flaeche2.jpg]] Das Ganze in Netzdarstellung läßt sich so programmieren: x = 0 : .2 : 10; y = 0 : .2 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); mesh(x_grid, y_grid, z); Ausgabe: [[Datei:octave_mesh1.jpg]] ==== Ellipsoide und Kegel ==== Für das Zeichnen von Kugeln oder Ellipsoiden stellt Octave den "sphere"-Befehl bzw. den "ellipsoid"-Befehl zur Verfügung. clear; close all; clc; % Ellipsoiden zeichnen [x, y, z] = sphere(30); surf(5*x, 4*y, 3*z); hold on; [x, y, z] = ellipsoid(5, 5, 5, 6, 3, 2, 30); surf(x, y, z); axis equal; [[Bild:octave_ellipsoid2.jpg|600px]] Für Zylinder und Kegel ist der "cylinder"-Befehl zuständig. clear; close all; clc; % Kegel und Zylinder zeichnen [x, y, z] = cylinder([1 2], 100); surf(x, y, z*3); hold on; [x, y, z] = cylinder([0.5 0.5], 50); surf(x+3, y, z*2); axis equal; [[Bild:octave_cylinder2.jpg|600px]] === Aufgaben === * Zeichnen Sie die räumliche Kurve <math>x = 2 \cdot \cosh(t)</math>, <math>y = 5 \cdot \sin(t)</math>, <math> z = t^{2} - t</math>, <math>0 \leq t \leq 3\pi</math>. Das Ganze sollte etwa wie folgt aussehen: [[Datei:octave_kurve10.jpg]] * Zeichnen Sie die Fläche <math>z = \log(x) + \cos(y)</math>. Das Ganze sollte etwa wie folgt aussehen: [[Datei:octave_flaeche10.jpg]] == Weiteres == === subplot === Zeichnen mit Untergrafiken: Hier wird z.B. ein Fenster mit drei Untergrafiken gezeichnet. Eingabe: t = 0 : .5 : 10; [x_grid, y_grid] = meshgrid(t, t); subplot(311); surf(x_grid, y_grid, sin(x_grid) + cos(y_grid) ); subplot(312); surf(x_grid, y_grid, sin(x_grid) + log(y_grid) ); subplot(313); surf(x_grid, y_grid, x_grid + cos(y_grid) ); Ausgabe: [[Datei:octave_subplot2.jpg]] Die dreistellige Ziffer beim subplot-Befehl bedeutet folgendes: * Die erste Ziffer ist die Zeilenanzahl * Die zweite Ziffer ist die Reihenanzahl und * Die dritte Ziffer ist der Index. Nun sei ein Beispiel mit 3x2-Untergrafiken angeführt. clear; close all; clc; x = 0 : .1 : 10; subplot(321); plot(x, sin(x)); text(2, -0.5, "Index 1"); subplot(322); plot(x, tan(x)); text(2, 2, "Index 2"); subplot(323); plot(x, cosh(x) ); text(2, 3000, "Index 3"); subplot(324); plot(x, gamma(x) ) text(2, 100000, "Index 4"); subplot(325); plot(x, log(x) ); text(2, 0, "Index 5"); subplot(326); plot(x, exp(x) ); text(2, 10000, "Index 6"); Ausgabe: [[Datei:octave_subplot3.jpg]] Hier ist sehr gut zu sehen, in welcher Reihenfolge der Index läuft. === figure === Zeichnen in verschiedene Fenster, z.B. clear; close all; clc; x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); figure(1) surf(x_grid, y_grid, sin(x_grid) + cos(y_grid)); figure(2) surf(x_grid, y_grid, sin(x_grid) + log(y_grid)); Ausgabe: [[Datei:octave_figure111.jpg|700px]] === Linien zeichnen === Zeichnen Sie eine Linie von der Koordinate [-15, 0] zu [15, 5]: clear; close all; clc; x = line([-15 15], [0, 5], "Color", "black", "LineWidth", 2); Ausgabe: [[Datei:octave_linie1.jpg]] Man beachte, dass Octave nicht Punkte P1(x1, y1), P2(x2, y2) erwartet, sondern einen x-Vektor [x1 x2] und einen y-Vektor [y1 y2]. Ein allgemeines Viereck wird z.B. mit folgendem Befehl gezeichnet. line([-15 15 10 -5, -15], [0, 5, 20, 15, 0], "LineWidth", 2); [[Datei:octave_viereck2.jpg]] Auch dreidimensionale Formen lassen sich mit dem line-Befehl zeichnen: clear; close all; clc; line([-15 15 10 -5, -15], [0, 5, 20, 15, 0], [10, 20, 30, 40, 50], "LineWidth", 2); [[Datei:octave_dreidim2.jpg]] === Aufgaben === * Zeichnen Sie mittels "subplot" die Funktionsgrafen <math>y_1=\tan(x), y_2=\tan(2x), y_3=\tan\sqrt x, y_4=x\cdot \tan(x)</math> in folgender Form in ein Fenster: ** in 2x2-Darstellung ** in 1x4-Darstellung. * Zeichnen Sie die im obigen Beispiel angegebenen Funktionsgrafen mittels "figure" jeweils in ein eigenes Fenster. = Vektoren und Matrizen = == Vektoren == Vektoren sollten jedem aus der Linearen Algebra bekannt sein. === Zeilen- und Spaltenvektoren === % Ein Zeilenvektor v1 = [1, 2, 3] % Ein Spaltenvektor v2 = [6; 7; 8] Ausgabe: v1 = 1 2 3 v2 = 6 7 8 Alternative Schreibweisen: % Ein Zeilenvektor v1 = [1 2 3] % Ein Spaltenvektor v2 = [6 7 8] Die Ausgabe entspricht der obigen Darstellung. === Zugriff auf Vektorelemente === Nachfolgend seien einige Zugriffsmöglichkeiten auf die einzelnen Vektorelemente erläutert. Auf ein einzelnes Element kann via Index zugegriffen werden. Der Index startet bei 1: v1 = [1 2 4 8 16]; v2 = v1(3) Ausgabe: v2 = 4 Mehrere Elemente werden folgendermaßen angesprochen: v1 = [1 2 4 8 16]; v2 = v1(3:4) Ausgabe: v2 = 4 8 Liefere den Teilvektor von einem gegebenen Index bis zum letzten Element: v1 = [1 2 4 8 16]; v2 = v1(3:end) Ausgabe: v2 = 4 8 16 === Addition und Subtraktion von Vektoren === v1 = [1, 2, 3]; v2 = [5, 7, 9]; res = v1 + v2 res = v1 - v2 Ausgabe: res = 6 9 12 res = -4 -5 -6 === Multiplikation mit Skalaren === faktor = 3; v = [1, 2, 3]; res = faktor * v Ausgabe: res = 3 6 9 === Skalarprodukt === Das Skalarprodukt ist bekanntermaßen als <math>v_1 \cdot v_2 = |v_1| |v_2| \cos(\angle(v_1, v_2))</math> definiert. In Octave sieht das so aus: v1 = [1, 2, 3]; v2 = [5, 6, 7]; res = dot(v1, v2) Ausgabe: res = 38 === Vektorprodukt === v1 = [1, 2, 3]; v2 = [5, 6, 7]; res = cross(v1, v2) Ausgabe: res = -4 8 -4 Enger an die mathematische Darstellung lehnt sich folgender Code an. Die zu multiplizierenden Vektoren seien in Form von Spaltenvektoren gegeben. Mathematisch: <math>a\ast b=\left(\begin{array}{c} a_{1}\\ a_{2}\\ a_{3} \end{array}\right)\ast\left(\begin{array}{c} b_{1}\\ b_{2}\\ b_{3} \end{array}\right)=\left(\begin{array}{c} a_{2}b_{3}-a_{3}b_{2}\\ a_{3}b_{1}-a_{1}b_{3}\\ a_{1}b_{2}-a_{2}b_{1} \end{array}\right) </math> Octave-Code: a = [1 2 3]; b = [5 6 7]; res = cross(a, b) Ausgabe: res = -4 8 -4 === Transponierter Vektor === v1 = [1, 2, 3]; v2 = [5; 6; 7]; res1 = v1' res2 = v2' Ausgabe: res1 = 1 2 3 res2 = 5 6 7 === Einige weitere Vektorfunktionen === Beispiel: % 1 + 2 + 3 v = [1 2 3]; sum(v) Ausgabe: ans = 6 Beispiel: % 1 * 2 * 3 * 4 v = [1 2 3 4]; prod(v) Ausgabe: ans = 24 Beispiel: % 1^2 + 2^2 + 3^2 v = [1 2 3]; sumsq (v) Ausgabe: ans = 14 == Matrizen == Gegeben sei folgende 2x3-Matrix <math>m=\left(\begin{array}{ccc} 1 & 2 & 3\\ 4 & 5 & 6 \end{array}\right)</math>. Eingabe: m = [1, 2, 3; 4, 5, 6] Ausgabe: m = 1 2 3 4 5 6 Alternativ und anschaulicher kann diese 2x3-Matrix auch so eingegeben werden: m = [1 2 3 4 5 6] Dies ist schon sehr nahe an der mathematischen Darstellungsweise. === Zugriff auf Matrizenelemente === m = [1 2 3 4 5 6]; % Element aus Zeile 2 und Spalte 3 m(2,3) Ausgabe: ans = 6 Eine andere Zugriffsmöglichkeit ist diese: m = [1 2 3 4 5 6]; % Auf das fünfte Element soll zugegriffen werden m(5) Ausgabe: ans = 3 Die Matrix wird also spaltenweise durchlaufen (nicht zeilenweise). Dies ist vielleicht auf den ersten Blick etwas ungewöhnlich, wird aber z.B. auch in Fortran so gehandhabt. Auch Teilmatrizen können einfach gebildet werden: m = [1 2 3 4 5 6]; m(2:end, 2:end) Ausgabe: ans = 5 6 Siehe zu diesem Thema auch etwas weiter hinten in diesem Text den Abschnitt "Teilmatrizen". === Addition und Subtraktion von Matrizen === m1 = [1, 2, 3; 4, 5, 6]; m2 = [-4, -2, 0; 2, 4, 6]; m1 + m2 m1 - m2 Ausgabe: ans = -3 0 3 6 9 12 ans = 5 4 3 2 1 0 === Transponierte Matrix === m = [1, 2, 3; 4, 5, 6]; m' Ausgabe: ans = 1 4 2 5 3 6 === Rang einer Matrix === Der Rang einer Matrix Rg(M) ist die maximale Anzahl der linear unabhängigen Zeilenvektoren (Spaltenvektoren). m1 = [1, 2, 3; 4, 5, 6]; m2 = [1, 2; 2, 4]; rank(m1) rank(m2) Ausgabe: ans = 2 ans = 1 Regulär ist eine nxn-Matrix, wenn der Rg(M) = n. D.h. die erste Matrix m1 ist regulär, die zweite m2 singulär. === Inverse Matrix === m1 = [1, 3; 0, -5 ]; m2 = [1, 2; 2, 4]; inv(m1) inv(m2) Ausgabe: ans = 1.00000 0.60000 0.00000 -0.20000 warning: matrix singular to machine precision warning: called from test1 at line 4 column 1 ans = Inf Inf Inf Inf Die Matrix m2 in diesem Beispiel ist singulär (d.h. die Determinante ist 0). Determinanten werden etwas weiter unten in diesem Text behandelt. Inf steht für Infinity (= Unendlich). === Multiplikation von Matrizen (falksches Schema) === m1 = [1, 3, 4; 0, -5, 1]; m2 = [1, 2; 2, 3; 0, 2]; m1 * m2 Ausgabe: ans = 7 19 -10 -13 Will man aus irgendwelchen Gründen nicht das falksche Schema ausführen, sondern elementweise Multiplikation, so funktioniert das mit dem Punkt-Operator, z.B. m1 = [1, 3; 0, -5]; m2 = [1, 2; 4, 2]; % falksches Schema m1 * m2 % elementweise Multiplikation m1 .* m2 Ausgabe: ans = 13 8 -20 -10 ans = 1 6 0 -10 Verifikation, falksches Schema (Zeile*Spalte): [ 1 3 ] [ 1 2 ] [ 1*1+3*4 1*2+3*2 ] [ 13 8 ] [ 0 -5 ] [ 4 2 ] = [ 0*1-4*5 0*2-5*2 ] = [ -20 -10 ] Verifikation, elementweise Multiplikation (homologe Elemente): [ 1 3 ] [ 1 2 ] [ 1*1 3*2 ] [ 1 6 ] [ 0 -5 ] [ 4 2 ] = [ 0*4 -5*2 ] = [ 0 -10 ] === Determinante einer Matrix === m1 = [1, 3; 0, -5 ]; m2 = [1, 2; 2, 4]; det(m1) det(m2) Ausgabe: ans = -5 ans = 0 m1 ist regulär, m2 ist singulär. Determinanten können nur von quadratischen Matrizen gebildet werden. === Teilmatrizen === m = [1, 2, 3; 0, 5, 1]; % Die Matrix in einen Spaltenvektor umwandeln m1 = m(:) % Das Element aus der 1. Zeile und der 2. Spalte extrahieren m2 = m(1,2) % Erste Zeile extrahieren m3 = m(1, 1:3) m4 = m(1, :) % Zweite Spalte extrahieren m5 = m(1:2, 2) m6 = m(:, 2) Ausgabe: m1 = 1 0 2 5 3 1 m2 = 2 m3 = 1 2 3 m4 = 1 2 3 m5 = 2 5 m6 = 2 5 === Einheitsmatrizen === eye(3,2) Ausgabe: ans = 1 0 0 1 0 0 === Nullmatrizen === zeros(2,3) Ausgabe: ans = 0 0 0 0 0 0 === Diagonalmatrizen === diag([1, 2, 3]) Ausgabe: ans = 1 0 0 0 2 0 0 0 3 === Spur einer Matrix === trace([1,2,3; 6,9, 0]) Ausgabe: ans = 10 === LR-Zerlegung einer Matrix === Führen Sie die LR-Faktorisierung (LR ... links/rechts bzw. LU ... left/upper) einer Matrix m aus. l sei die linke Dreiecksmatrix, r die rechte Dreiecksmatrix und p die Permutationsmatrix m = [1 0 5 -1 1 -2 0 0 3]; [l, r, p] = lu(m) Ausgabe: l = 1 0 0 -1 1 0 0 0 1 r = 1 0 5 0 1 3 0 0 3 p = 1 0 0 0 1 0 0 0 1 === Eigenwerte === a = [5 8 1 3]; % Eigenvektoren und Eigenwerte [ev, ew] = eig(a) Ausgabe: ev = 0.9701 -0.8944 0.2425 0.4472 ew = Diagonal Matrix 7 0 0 1 Die Eigenwerte sind hier <math>\lambda_1 = 7</math> und <math>\lambda_2 = 1</math>. Die Eigenvektoren sind [0.9701 0.2425] bzw. [-0.8944 0.4472]. Da das Gleichungssystem <math>(A - \lambda_i E) x_i = 0</math> singulär ist, sind alle Lösungsvektoren Vielfache dieser Eigenvektoren. === Schwach besetzte Matrizen === {{Wikipedia | Dünnbesetzte Matrix}} Gegeben sei die schwach besetzte Matrix m = [0 1 0 0 0 0 0 0 3 0 4 0 0 2 0 0 0 1 0 0 0 0 0 1 7] Mittels dem sparse-Befehl kann man einfach die Elemente != 0 nach folgendem Schema eingeben. sparse ([zeilenindizes] [spaltenindizes] [werte]) also in unserem Fall: ms = sparse([1 2 3 3 4 5 5], [2 4 1 4 3 4 5], [1 3 4 2 1 1 7]) Ausgabe: ms = Compressed Column Sparse (rows = 5, cols = 5, nnz = 7) (3, 1) -> 4 (1, 2) -> 1 (4, 3) -> 1 (2, 4) -> 3 (3, 4) -> 2 (5, 4) -> 1 (5, 5) -> 7 Die volle Matrix erhält man mit dem Befehl full: m = full(ms) Ausgabe: m = 0 1 0 0 0 0 0 0 3 0 4 0 0 2 0 0 0 1 0 0 0 0 0 1 7 Grafisch anzeigen lassen kann man sich die Besetzung von Matrizen mit dem spy-Befehl: spy(ms); oder (für allgemeine Matrizen auch mittels) spy(m); Ausgabe: [[Datei:octave_sparse1.jpg]] Wirklich interessant ist der spy-Befehl für größere Matrizen, z.B. um die Bandstruktur zu visualisieren. e = eye(200); es = sparse(e); % Auf sparse-Matrizen kann genauso zugegriffen werden wie auf normalen Matrizen es(100, 15) = 100; spy(es); Ausgabe: [[Datei:octave_sparse2.jpg]] === Matrizen mit Zufallswerten === Insbesondere für Testzwecke kann es manchmal sinnvoll sein größere Matrizen mit Zufallswerten zu bilden. Dazu stellt Octave u.a. den rand-Befehl zur Verfügung. m = rand(5, 6) Ausgabe: m = 0.86605 0.61108 0.71347 0.97119 0.52428 0.21993 0.74059 0.49062 0.56073 0.68592 0.74737 0.62680 0.20790 0.84874 0.36834 0.31102 0.25813 0.28933 0.84732 0.98777 0.91512 0.42240 0.87891 0.63757 0.76823 0.80367 0.24639 0.78208 0.77170 0.95281 Die Zufallszahlen liegen gleichverteilt zwischen 0 und 1 und werden nach dem Mersenne-Twister-Verfahren mit einer Periode von <math>2^{19937}-1</math> gebildet. Andere Verfahren sind: * randn: Normalverteilte Pseudozufallselemente mit Mittelwert=0 und Varianz=1 * rande: Exponentialverteilte Zufallselemente * randg: Gammaverteilte Zufallselemente * randp: Poissonverteilte Zufallselemente Details dazu siehe in der Octave-Hilfefunktion. == Aufgaben == * Berechnen Sie den Winkel zwischen den beiden Vektoren a = [1 2 0] und b = [2 1 1]. Hinweis: Siehe diesbezüglich auch im Oktave-Hilfesystem den Befehl "norm". * Gegeben seien Vektoren a = [1 2 5], b = [0 0 -1] und c = [-1 -2 2]. Berechnen Sie das Spatprodukt aus diesen drei Vektoren. * Multiplizieren Sie die beiden Matrizen A und B (mit Octave und zur Kontrolle händisch) A = [0 0 1 1 2 1] B = [1 1 1 2 0 4] * Ist die Matrix C regulär? Wenn ja, dann bilden Sie die inverse Matrix. C = [-1 0 0 -4 2 0 1 5 7 6 2 0 3 0 2 6] * Ist die Matrix D regulär? Wenn ja, dann bilden Sie die inverse Matrix. D = [2 1 0 0 0 0 2 1 0 0 0 2 1 1 0 0] * Berechnen Sie die Konditionszahl der folgenden Matrix. Hinweis: Siehe diesbezüglich im Oktave-Hilfesystem den Befehl cond [3 4 -5 6 0 3 1 1 2] * Berechnen Sie die Eigenwerte und Eigenvektoren der folgenden Matrix [6 -3 4 0 0 7 -1 1 0 10 -3 -2 0 1 -2 1] = Komplexe Zahlen = Die imaginäre Einheit wird in Octave durch den Buchstaben i, j, I oder J symbolisiert. Darstellen kann man eine komplexe Zahl bekannterweise in mehreren Formen: * Kartesische Darstellung <math>z = \Re(z) + i \cdot \Im(z)</math> * Polardarstellungen <math>z = r \cdot (\cos(\phi) + i \cdot \sin(\phi)) = r \cdot e^{i\cdot \phi}</math> Die konjugiert komplexe Zahl ist <math>z^* = \Re(z) - i \cdot \Im(z)</math> == Mit komplexen Zahlen rechnen == z1 = 2 + 5i; % kartesische Darstellung z2 = 3 * exp(3j); % Polardarstellung % Addition res = z1 + z2; disp("z1 + z2 = "); disp(res); % Multiplikation res = z1 * z2; disp("z1 * z2 = "); disp(res); % Realteil res = real(z2); disp("Realteil von z2 = "); disp(res); % Imaginärteil res = imag(z2); disp("Imaginaerteil von z2 = "); disp(res); % Betrag res = abs(z1); disp("Betrag von z1 = "); disp(res); % Argument res = angle(z1); disp("Argument von z1 = "); disp(res); % Konjugiert komplexe Zahl res = conj(z1); disp("Konjugiert komplexe Zahl von z1 = "); disp(res); Ausgabe: z1 + z2 = -0.96998 + 5.42336i z1 * z2 = -8.0568 - 14.0032i Realteil von z2 = -2.9700 Imaginaerteil von z2 = 0.42336 Betrag von z1 = 5.3852 Argument von z1 = 1.1903 Konjugiert komplexe Zahl von z1 = 2 - 5i == Die gaußsche Zahlenebene == clear; close all; clc; z1 = 3 + 5i; z2 = 5 * exp(0.5i); hold on; plot(z1, "*"); compass(z1); plot(z2, "o"); compass(z2); grid on; [[Datei:octave_komplex1.jpg]] == Aufgaben == * Berechnen Sie die Quadratwurzel der komplexen Zahl <math>z = 3 + 2i</math>. * Verwandeln Sie folgende Zahlen in die Polarkoordinatendarstellung: <math>-11 - 3i</math> und <math>(1+i)^{10}</math> * Verwandeln Sie folgende Zahlen in die Normaldarstellung: <math>12 \cdot e^{i\cdot \pi / 4}</math> und <math>3 \cdot (\cos(\pi / 3) + i \cdot \sin(\pi / 3))</math> * Zeichnen Sie die Zahl <math>3 + 5i</math> in der gaußschen Zahlenebene als Zeiger. = Funktionen = Um Programme zu strukturieren und einfacher zu gestalten können Programmteile in Funktionen ausgelagert werden. Eingebaute Funktionen haben wir schon kennengelernt (z.B. die Sinus-Funktion sin). Nun wollen wir sehen, wie man selbst solche Funktionen schreiben kann. == Eine einfache Funktion schreiben == Datei addiere.m: function res = addiere(a, b) % Addiere zwei Zahlen a + b res = a + b; end Datei test1.m: addiere(10, 15) Ausgabe: ans = 25 * Jede Funktion sollte in einer eigenen m-Datei stehen. * Der Dateiname sollte mit dem Funktionsnamen (natürlich ohne Dateiendung .m) übereinstimmen. * Der Kommentar unter dem Funktionskopf wird als Hilfstext angezeigt, wenn die help-Funktion (hier "help addiere") aufgerufen wird. == Inline-Funktionen == Kurze Funktionen können auch als Inline-Funktionen geschrieben werden. addiere = inline("a + b"); x = 5; y = 10; z = addiere(x, y) Oder in diesem Fall noch kürzer addiere = inline("a + b"); z = addiere(5, 10) Ausgabe: z = 15 Bei neueren Octave-Versionen kann bei der Verwendung von Inline-Funktionen die Warnung warning: inline is obsolete; use anonymous functions instead erscheinen. Ein Blick in die Hilfe-Funktion help inline zeigt das selbe Ergebnis. Es sollen also anonyme Funktionen (siehe etwas weiter unten in diesem Text) anstelle von Inline-Funktionen verwendet werden. == Funktionsstring == addiere = "a + b"; a = 5; b = 10; z = eval(addiere) Ausgabe: z = 15 == Anonyme Funktionen == {{Wikipedia | Anonyme Funktion}} addiere = @(a, b) a + b; x = 10; y = 20; z = addiere(x, y) oder kürzer addiere = @(a, b) a + b; z = addiere(10, 20) Ausgabe: z = 30 == Nullstellen von Funktionen bestimmen == sinh2 = @(x) sinh(x) + 2; z = fzero(sinh2, 1) Ausgabe: z = -1.4436 Zur Kontrolle soll hier der Graph der Funktion dargestellt werden clear; close all; clc; sinh2 = @(x) sinh(x) + 2; x = -2 : 0.1 : 0; y = sinh2(x); z = fzero(sinh2, 1) plot(x, y); hold on; plot(z, 0, "o", "Color", "red", "LineWidth", 2); text (-1.8, 0.8, "Nullstelle"); line([z -1.7], [0, .7], "Color", "black"); grid on; Ausgabe: [[Datei:octave_funktion5.jpg]] Weiter unten im Text wird die ähnliche Funktion "fsolve" beschrieben. "fzero" benutzt zwei verschiedene Funktionen zur Problemlösung, darunter eben auch "fsolve". Für die Nullstellenbestimmung von Polynomen gibt es die Funktion "roots". Näheres dazu folgt im nächsten Kapitel. == Globale Variablen == Datei addiere.m: function res = addiere() global a b; res = a + b; end Datei test1.m: clear; close all; clc; global a b; a = 5; b = 3; addiere() Ausgabe: ans = 8 == Aufgaben == * Schreiben Sie eine Funktion "ellipse", welche eine Ellipse am Bildschirm darstellt. Zur Erinnerung: Die Parameterdarstellung der Ellipse lautet <math>x = a\cdot\cos(t), y = b\cdot\sin(t), 0 \leq t \leq 2\pi</math>, Funktionsargumente seien a und b. * Schreiben Sie <math>y = 2\cdot\sin(x) + 3\cdot\cos(x/2)</math> ** als normale Funktion ** als Funktionsstring ** als Inlinefunktion ** als anonyme Funktion ** stellen Sie diese Funktion grafisch am Bildschirm dar. = Polynome = == Einzelne Polynomwerte berechnen == % y = 2*x^3 + 5*x^2 + 4 für x = 2 berechnen p = [2, 5, 0, 4]; polyval(p, 2) Ausgabe: ans = 40 == Polynome zeichnen == % y = 2*x^3 - 5*x^2 + 4 für das Intervall -5 <= x <= 5 grafisch darstellen x = -5 : .1 : 5; p = [2, 5, 0, 4]; y = polyval(p, x); plot(x,y); grid on; Ausgabe: [[Datei:octave_polynom1.jpg]] == Nullstellen bestimmen == Für Polynome existiert die Funktion "roots" zur Nullstellenbestimmung. % Nullstellen für y = 2*x^3 - 5*x^2 + 4 bestimmen p = [2, 5, 0, 4]; r = roots(p) Ausgabe: r = -2.76214 + 0.00000i 0.13107 + 0.84077i 0.13107 - 0.84077i Dieses Polynom hat nur eine reelle Nullstelle. Diese liegt, wie am obigen Grafen zu ersehen ist, in der Nähe von -2.762. Die beiden anderen Nullstellen sind konjugiert komplex zueinander (wie es auch sein sollte). == Aufgaben == * Berechnen Sie den Wert für x = 3 des Polynoms <math>y = 2x^4 - 3x^3 - x + 7</math>. * Berechnen Sie die Nullstellen von <math>y = 7x^5 - 3x^2 + 12</math>. * Zeichnen Sie das Polynom <math>y = 12x^4 - 70x</math> im Intervall <math>-5 \leq x \leq 5</math>. = Lineare Gleichungssysteme = Sei <math>Ax = b</math> ein lineares Gleichungssystem. <math>A</math> sei die Koeffizientenmatrix, <math>x</math> der Lösungsvektor und <math>b</math> ein bekannter Vektor. == Einfache Berechnung mittels Gauß-Verfahren == {{Wikipedia | Gaußsches Eliminationsverfahren}} Beispiel: A = [5 1 0 2]; b = [1 2]; x = A \ b Ausgabe: x = 0 1 == Das gmres-Verfahren == gmres steht für Generalized Minimal Residual. {{Wikipedia | GMRES-Verfahren}} A = [5 1 0 2]; b = [1 2]; x = gmres(A, b) Ausgabe: gmres converged at iteration 2 to a solution with relative residual 2.22045e-16 x = -1.6653e-16 1.0000e+00 Das Ergebnis weicht etwas vom gaußschen Verfahren ab, ist aber trotzdem im Rahmen der Näherung korrekt. Weiters kennt Octave noch andere iterative Verfahren, z.B. cgs (Conjugate Gradient Squared) oder bicgstab (Bi-Conjugate Gradient Stabilized). Näheres zu diesen Verfahren siehe in der weiterführenden Literatur (z.B. bei Meister: Numerik linearer Gleichungssysteme, Vieweg+Teubner, 2011) {{Wikipedia | CGS-Verfahren}} == Aufgabe == * Lösen Sie folgendes Gleichungssystem mittels Octave (und zur Kontrolle auch händisch): 5x + 6y - 2z = 12 3x - y - 3z = 6 2x + 2y + 4z = 5 = Nichtlineare Gleichungssysteme = == fsolve und fzero == Löse eine beliebige Gleichung f(x) = 0, z.B. <math> f(x) = x^2 - 5\cos(x) - 10 = 0 </math>: f = @(x) x^2 - 5*cos(x) - 10; xstart = 1; [x, fval, info] = fsolve(f, xstart) Ausgabe: x = 2.4681 fval = -1.7764e-015 info = 1 * x ist eine Nullstelle in der Nähe vom Startwert xstart. * fval ist die Abweichung, den f bei x aufweist. * info ist ein "Fehlercode": 1 bedeutet, dass der relative Fehler in der spezifizierten Toleranz liegt (wie es sein soll). 3 würde bedeuten, dass der Algorithmus nicht konvergiert (z.B. weil keine Nullstelle existiert). Zur Kontrolle plotten wir den Funktionsgraphen: x = - 1 : .1 : 3; y = x.^2 - 5.*cos(x) - 10; plot(x,y, "LineWidth", 2); grid on; Ausgabe: [[Datei:octave_nichtlin1.jpg]] Und siehe da, die gesuchte Nullstelle liegt wie berechnet bei einem Wert nahe 2,5. Die Funktion <math>x^2 - 5\cos(x) - 10</math> hat noch eine zweite Nullstelle, wie in der folgenden Abbildung zu erkennen ist. [[Datei:octave_nichtlin2.jpg]] Diese zweite Nullstelle erhalten wir, wenn der Startwert in der Nähe dieser zweiten Nullstelle liegt, also z.B. bei -1. Ändern Sie einfach den entsprechenden Startwert im obigen Programmcode, und das Programm sollte die Nullstelle in der Nähe von -2.5 liefern. Auch die Funktion ''fzero'' kann zur Lösung einer nichtlinearen Gleichung verwendet werden. Die Hilfe-Funktion von Octave empfiehlt dies sogar eindringlich für den Fall einer nichtlinearen Gleichung in einer Variablen. Für das gleiche Beispiel wie oben kann der Programmcode folgendermaßen aussehen: Eingabe: f = @(x) x^2 - 5*cos(x) - 10; [x0, y0] = fzero (f, [0, 3]) Ausgabe: x0 = 2.4681 y0 = -1.2434e-14 == Gleichungssysteme == Folgende Aufgabe ist dem Buch "Knorrenschild: Numerische Mathematik, Hanser, 2017, Seite 72" entnommen. Zu lösen ist das nichtlineare Gleichungssystem <math>f_1 = 2x_1 + 4x_2 = 0 </math> <math>f_2 = 4x_1 + 8x_2^3 = 0</math> Lösung: f.m: function y = f(x) y(1) = 2*x(1) + 4*x(2); y(2) = 4*x(1) + 8*x(2)^3; end test1.m: clear; close all; clc; [x, fval, info] = fsolve (@f, [0, 1]) [x, fval, info] = fsolve (@f, [0, -1]) [x, fval, info] = fsolve (@f, [0, 0]) Ausgabe: x = -2 1 fval = 0 7.4930e-09 info = 1 x = 2 -1 fval = 0 -7.4930e-09 info = 1 x = 0 0 fval = 0 0 info = 1 == Aufgaben == * Bestimmen Sie die Nullstellen von <math>f(x) = x^2 - 3</math>. Plotten Sie den Grafen. * Bestimmen Sie die Nullstelle von <math>f(x) = sin(x) - x - 1</math>. Plotten Sie den Grafen. * Lösen Sie das folgende Gleichungssystem (und stellen Sie das Ganze grafisch am Bildschirm dar): <math> f_1 = x_1 + x_2 = 0; f_2 = x_1 + \sin{x_2} = 0</math> = Interpolation = == Eindimensionale Interpolation == {{Wikipedia | Interpolation (Mathematik)}} Bezüglich eindimensionaler Interpolation sei auf die [https://docs.octave.org/v11.1.0/One_002ddimensional-Interpolation.html Octave-Dokumentation und Hilfefunktion zum Befehl " interp1"] verwiesen. Dort findet sich auch ein Programmbeispiel, das als Grundlage des folgenden Plots dient: [[Datei:octave_interpol1.jpg]] == Mehrdimensionale Interpolation == Bezüglich mehrdimensionaler Interpolation siehe die [https://docs.octave.org/v11.1.0/Multi_002ddimensional-Interpolation.html Hilfefunktion zu "interp2", "interp3" und "interpn"]. == Aufgabe == * Gegeben seinen die fünf Stützpunkte p1 = [1, 0], p2 = [2, -5], p3 = [3, 2], p4 = [4, 7], p5 = [5, 6]. Legen Sie eine Funktion (die Interpolierende) durch diese Stützpunkte. Eine Lösungsmöglichkeit: xp = [1 2 3 4 5]; yp = [0, -5, 2, 7, 6]; xf = 1 : .1 : 5; spl = interp1(xp, yp, xf, "spline"); pch = interp1(xp, yp, xf, "pchip"); plot(xp, yp, "or", "LineWidth", 2, xf, spl, "LineWidth", 2, ... xf, pch, "LineWidth", 2); legend("stuetzpunkte", "spline", "pchip", "location", "southeast"); [[Datei:octave_interpol3.jpg]] = Differenzialrechnung = == Polynome differenzieren == Es soll das Polynom <math>y = 2x^3 - 5x^2 + 7</math> differenziert werden. % Differenzieren des Polynoms y = 2*x^3 - 5*x^2 + 7 p = [2, -5, 0, 7]; polyder(p) Ausgabe: ans = 6 -10 0 D.h. also, die Ableitung von <math>y = 2x^3 - 5x^2 + 7</math> ist <math>y' = 6x^2 - 10x</math>. == Sonstige Funktionen differenzieren == Als Beispiel differenzieren wir <math>y = 5x\sin{x}</math> und stellen das Ganze grafisch dar. clear; close all; clc; x = 0 : 0.01 : 10; y = 5 .* x .* sin(x); y_strich = diff(y) / 0.01; plot(x, y, "Color", "red", "LineWidth", 2); hold on; plot(x(1:length(x)-1), y_strich, "Color", "blue", "LineWidth", 2); legend("y", "y'"); grid on; Ausgabe: [[Datei:octave_diff1.jpg]] diff(y) ist der Vektor aus den Differenzen y(2)-y(1), ..., y(n)-y(n-1). Für die genaue Arbeitsweise der diff-Funktion siehe "help diff". == Aufgaben == * Differenzieren Sie das Polynom <math>y = 5y^5 - y^4 + 6y - 4</math>. * Differenzieren Sie die Funktion <math>y = \log(x) + 10x</math> und stellen Sie y, sowie y' grafisch am Bildschirm dar. * Differenzieren Sie die Funktion <math>y = \frac{\sinh(x)}{(1+x)}</math> und stellen Sie y, sowie y' grafisch am Bildschirm dar. = Integralrechnung = == Polynome integrieren == Berechnen Sie das unbestimmte Integral von <math>y = 2x^3 - 7x^2 + 7</math> p = [2, -7, 0, 7]; p_int = polyint(p) Ausgabe: p_int = 0.50000 -2.33333 0.00000 7.00000 0.00000 Das Ergebnis lautet also <math>\int{y dx} = 0.5x^4 - 2.33333x^3 + 7x + C</math> (auf die Integrationskonstante C darf nicht vergessen werden!). == Gauß-Quadratur == {{Wikipedia | Gauß-Quadratur}} Berechnen Sie das Integral <math>\int_{0}^{3}x^2 dx</math> mittels Gauß-Quadratur. Datei f.m: function y = f(x) y = x^2; end Datei test1.m: [v, ier, nfun, err] = quad ("f", 0, 3) Ausgabe: v = 9.0000 ier = 0 nfun = 21 err = 9.9920e-014 Erläuterung zur Ausgabe: * v ... Resultat der Integration * ier ... integer error code * nfun ... Anzahl der Funktionsaufrufe * err ... Fehler in der Lösung == Quadratur mittels adaptiver Lobatto-Regel == Berechnen Sie diesmal das Integral <math>\int_{0}^{3}x^2 dx</math> mittels Lobatto-Quadratur. f = inline("x.^2"); v = quadl (f, 0, 3) Ausgabe: v = 9 Wie weiter oben bereits angesprochen kann bei der Ausgabe eine Warnung erfolgen. Inline-Funktionen sind inzwischen als obsolet erklärt und es sollen stattdessen anonyme Funktionen verwendet werden. Zwecks Übung sei nachfolgend nochmals dieses Beispiel berechnet. Diesmal wird aber eine anonyme Funktion verwendet. v = quadl (@(x) x.^2, 0, 3) == Aufgaben == * Integrieren Sie das Polynom <math>y = 5y^5 - y4 + 6y - 4</math>. * Integrieren Sie die Funktion <math>y = \log(x) + 10x</math> von -5 bis 5. * Integrieren Sie die Funktion <math>y = x^3</math> von 0 bis 4. Verwenden Sie hierzu die Simpsonregel (siehe dazu in der Hilfefunktion den Befehl "quadv"). = Gewöhnliche Differenzialgleichungen = == ode23, ode45 und lsode == Für die Lösung von Differenzialgleichungen stehen die Funktionen * ode23 bzw. * ode45 zur Verfügung. Diese Funktionen implementieren das Runge-Kutta-Verfahren. "ode" steht für "Ordinary Differential Equation" (also auf Deutsch für "Gewöhnliche Differentialgleichung"). Die Zahlen bei ode23 oder ode45 stehen für die Ordnung. {{Wikipedia | Runge-Kutta-Verfahren}} Beispiel <math>y' = x^2 + y^3</math>: clear; close all; clc; [x, y] = ode45(@(x,y) (x^2+y^3), [0 1], 0); plot(x, y, "LineWidth", 2); Ausgabe: [[Datei:octave_ode1.jpg]] Bezüglich der genauen Funktionsweise von "ode45" (oder "ode23") siehe die Octave-Hilfe. Auch die Funktion "lsode" steht zur Lösung von ODEs zur Verfügung. Beispiel <math>y' = x + y</math>: clear; close all; clc; t = 0 : .1 : 5; [y2, istate, msg] = lsode(@(x,y) (x + y), 1, t); istate msg plot(t, y2); Ausgabe: istate = 2 msg = successful exit [[Datei:octave_lsode1.jpg]] Bezüglich der genauen Funktionsweise von "lsode" siehe die Octave-Hilfe. == Aufgaben == * Lösen Sie die Differenzialgleichung <math>y' = \frac{1}{x\cdot y}</math> mit Octave. Kontrollieren Sie das Ergebnis, indem Sie die DGl händisch lösen. * Lösen Sie die Differenzialgleichung <math>m' = -k\cdot m</math>. Kontrollieren Sie das Ergebnis, indem Sie die DGl händisch lösen. * Lösen Sie die Differenzialgleichung <math>y' = \sqrt{|y|}</math>. = Die Fast-Fourier-Transformation = {{Wikipedia | Schnelle Fourier-Transformation}} Für die Funktion "fft" siehe das Octave-Hilfesystem. = Mengenrechnung = == Vereinigungsmenge == v1 = [1 2 3 4]; v2 = [2 4 6]; union(v1, v2) Ausgabe: ans = 1 2 3 4 6 == Schnittmenge == v1 = [1 2 3 4]; v2 = [2 4 6]; intersect(v1, v2) Ausgabe: ans = 2 4 = Logik = Logische Operatoren werden oft benötigt, z.B. bei Schleifen und Verzweigungen. Octave kennt die logischen Operatoren <code>or, and, not</code> und <code>xor</code>. Als Beispiel sei die Wahrheitstabelle für den Operator <code>or</code> dargestellt. A B A or B -------------------- true true true true false true false true true false false false In Octave kann das so ausgedrückt werden: or( true, true ) or( true, false ) or( false, true ) or( false, false ) Ausgabe: ans = 1 ans = 1 ans = 1 ans = 0 Zahlen ungleich 0 stehen für true, 0 für false. Z.B.: or( 22, 0) Ausgabe: ans = 1 Äquivalent zu <code>or</code> ist der Operator <code>|</code>: 22 | 0 Ausgabe: ans = 1 Zwecks näheren Informationen zu den Operatoren <code>and (&, &&), not (~, !)</code> und <code>xor</code> bemühe man Octaves Help-Funktion. Bitweise logische Funktionen kennt Octave auch, so kann man z.B. zwei Zahlen mit dem bitweisen OR-Operator verknüpfen: 0b1100101 0b0110001 --------- 0b1110101 Oder in Dezimalzahlen: 101 49 --- 117 In Octave: bitor( 0b1100101, 0b0110001 ) dec2bin( ans ) Ausgabe: ans = 117 ans = 1110101 Zu <code>bitand, bitxor</code> usw. siehe die Octave-Hilfe-Funktion. = Stochastik = ==Deskriptive Statistik == === Lageparameter === Arithmetischer Mittelwert: vec = [1 2 3 4 5 12 13]; mw = mean(vec) Ausgabe: mw = 5.7143 Der Median oder Zentralwert läßt sich folgendermaßen berechnen: vec = [1 2 3 4 5 12 13]; median(vec) Ausgabe: ans = 4 Der Modus oder häufigste Wert läßt sich mittels "mode"-Funktion eruieren: vec = [1 2 1 3 5 1 2 7]; [m, f, c] = mode (vec); disp(m); disp(f); disp(c); Ausgabe: 1 3 { [1,1] = 1 } m (erste Zeile der Ausgabe) ist der Modus. f (zweite Zeile) ist die Häufigkeit. Näheres dazu siehe im Octave-Hilfesystem. === Streuungsparameter === Varianz: vec = [1 2 3 1 1 6 7]; v = var(vec) Ausgabe: v = 6.3333 Standardabweichung: vec = [1 2 3 1 1 6 7]; s = std(vec) Ausgabe: s = 2.5166 === Grafiken erzeugen === Histogramme: v = [1 1 2 3 1 6 7 6 1 1 1 2]; hist(v, max(v)); Ausgabe: [[Datei:octave_histo2.jpg]] Balkendiagramme: v = [1 1 2 3 1 6 7 6]; bar(v); Ausgabe: [[Datei:octave_bar111.jpg]] Treppendiagramm: v = [1 1 2 3 1 6 7 6]; stairs(v); Ausgabe: [[Datei:octave_stairs1.jpg]] Stabdiagramm: v = [1 1 2 3 1 6 7 6]; stem(v); Ausgabe: [[Datei:octave_stem1.jpg]] === Aufgaben === Gegeben sei folgende Datentabelle mit den Werten: v1 = [3 4 1 1 7 2 1 9 2 5 9 7 2 2 9 2 2 1 2 8] v2 = [1 1 0 2 3 4 1 2 7 0 2 1 5 5 5 4 5 2 5 0] * Berechnen Sie die Lageparameter und Streuungsparameter des Vektors v1. * Berechnen Sie Kovarianz und Korrelationskoeffizient der beiden zugeordneten Vektoren v1 und v2. * Zeichnen Sie das Histogramm des Vektors v1. == Wahrscheinlichkeitsrechnung == === Kombinatorik === Der Binomialkoeffizient: <math>\binom{n}{k}=\frac{n!}{k!(n-k)!}</math> In Octave z.B.: n = 30; k = 4; n_ueber_k = nchoosek (n, k) Ausgabe: n_ueber_k = 27405 Permutationen sind die verschiedenen Anordnungsmöglichkeiten mit der Anzahl n! = n * (n-1) * ... * 2 * 1. Beispiel: v = [1, 2, 3]; p = perms(v) Ausgabe: p = 1 2 3 2 1 3 1 3 2 2 3 1 3 1 2 3 2 1 n! (n-Fakultät) selbst kann so berechnet werden: % 10! n = 10; factorial (n) Ausgabe: ans = 3628800 === Verteilungen === Octave kennt eine ganze Reihe von Dichte- und Verteilungsfunktionen und zwar * Probability Density Functions (PDF, Dichtefunktionen) * Cumulative Distribution Functions (CDF, Verteilungsfunktionen) Z.B.: * Binomialverteilung: ** binopdf ** binocdf * Hypergeometrische Verteilung: ** hygepdf ** hygecdf * Normalverteilung: ** normpdf ** normcdf * Studentverteilung: ** tpdf ** tcdf * Weibullverteilung: ** wblpdf ** wblcdf Ein Codebeispiel zur Binomialverteilung: clear; close all; clc; x = 0 : 1 : 10; n = 10; p = 0.1; b1 = binopdf (x, n, p); b2 = binocdf (x, n, p); subplot(221); bar(x, b1); title("binopdf"); text(1, 0.1, "n=10; p=0.1"); subplot(222); bar(x, b2); title("binocdf"); text(1, 0.5, "n=10; p=0.1"); n = 10; p = 0.5; b1 = binopdf (x, n, p); b2 = binocdf (x, n, p); subplot(223); bar(x, b1); text(1, 0.1, "n=10; p=0.5"); subplot(224); bar(x, b2); text(1, 0.1, "n=10; p=0.5"); Ausgabe: [[Datei:octave_bino3.jpg]] Möglicherweise erhalten Sie bei diesem Beispiel eine Fehlermeldung in der Form error: 'binopdf' undefined near line 8, column 6 The 'binopdf' function belongs to the statistics package from Octave Forge which you have installed but not loaded. To load the package, run 'pkg load statistics' from the Octave prompt. Laden Sie einfach das Paket für die Statistikfunktionen, wie in der Fehlermeldung beschrieben. Ein Codebeispiel zur Normalverteilung: clear; close all; clc; x = -4 : .1 : 4; b1 = normpdf(x); b2 = normcdf(x); subplot(121); plot(x, b1); title("normpdf"); grid on; subplot(122); plot(x, b2); title("normcdf"); grid on; Ausgabe: [[Datei:octave_norm111.jpg]] == Zufallszahlengeneratoren == Octave kann Zufallszahlen aus einer großen Anzahl von Verteilungen generieren, z.B. * Chi-Quadrat-Verteilung: chi2rnd * Log-Normal-Verteilung: lognrnd * Normalverteilung: normrnd Codebeispiel: mean = 0; standardabweichung = 1; zufallszahl = normrnd (mean, standardabweichung) Ausgabe (gibt eine Zufallszahl rund um den Mittelwert 0 aus), z.B. zufallszahl = 1.0451 Auch Zufallsvektoren (oder Zufallsmatrizen) können erstellt werden: mean = [0 0 0 0 0]; standardabweichung = 1; zufallsvektor = normrnd (mean, standardabweichung) Ausgabe, z.B.: zufallsvektor = 1.47108 -0.51280 0.52726 0.31730 -1.04422 = Einfache Benutzeroberflächen erstellen= == Input == fflush (stdout); x = input("Gib eine Zahl ein: "); disp(2 * x); Ein-/Ausgabe: Gib eine Zahl ein: 12 24 Der "fflush"-Befehl sollte immer vor dem Aufruf des input-Befehls aufgerufen werden. Näheres zu "fflush" siehe im Octave-Hilfesystem. == Diverse einfache vorgefertigte Dialoge == Fehlermeldung: errordlg("Fehlermeldung"); [[Bild:octave_fehlermeldung1.jpg]] Warnung: warndlg("Warnung"); [[Bild:octave_warnung1.jpg]] Hilfedialog: helpdlg [[Bild:octave_hilfe1.jpg]] Abfragedialog: button = questdlg ("Frage") [[Bild:octave_abfrage1.jpg]] Eingabedialog: in = inputdlg("Eingabe") [[Bild:octave_eingabe1.jpg]] Messagebox: h = msgbox ("Eine Mitteilung!"); [[Bild:octave_messagebox1.jpg]] == Komplexere vorgefertigte Dialogboxen == === Menübox === auswahl = menu("Auswahl", "Affe", "Elefant", "Loewe", "Sonstiges"); switch(auswahl) case 1 disp "Affe quietscht" case 2 disp "Elefant trompetet" case 3 disp "Loewe bruellt" otherwise disp "Sonstiges" end Ausgabe: [[Bild:octave_menu1.jpg]] Es werde beispielsweise die Nummer 2 gewählt. Ausgabe: Elefant trompetet === Dialogliste === clear; close all; clc; opt = {"Eins", "Zwei", "Drei"}; [sel, ok] = listdlg ("ListString", opt, "SelectionMode", "Multiple"); if (ok == 1) for i = 1 : numel(sel) disp(opt{sel(i)}); end else disp("Cancel"); end [[Bild:octave_dialog1.jpg]] Es werden beispielsweise alle Optionen ausgewählt. Ausgabe: Eins Zwei Drei === Fortschrittsbalken === h = waitbar ([0.5]) [[Bild:octave_fortschritt1.jpg]] === Datei- und Verzeichnisdialoge === Dateidialog: [fname, fpath, fltidx] = uigetfile () [[Bild:octave_dateidialog2.jpg]] Ähnlich sind die Befehle "uiputfile" und "uigetdir". Dazu sei auf die Octave-Hilfe verwiesen. == Eigene Dialoge kreieren == Dieses Thema sei hier nur kurz angerissen. Programmcode: d = dialog("Position", [300, 300, 250, 150], "Name", "Dialog"); txt = uicontrol("Parent", d, ... "Style", "text", ... "Position", [20, 80, 210, 40], ... "String", "Hallo Welt"); btn_servus = uicontrol("Parent", d, ... "Position", [30, 20, 80, 30], ... "String", "Servus", ... "Callback", "disp('Servus angeklickt!');"); btn_hallo = uicontrol("Parent", d, ... "Position", [140, 20, 80, 30], ... "String", "Hallo", ... "Callback", "disp('Hallo angeklickt!');"); uiwait(d); Ausgegebenes Dialogfenster: [[Bild:octave_dialog100.jpg]] Ausgabe auf der Konsole (je nach gedrücktem Button), z.B.: Servus angeklickt! Die Position wird als [links, unten, breite, höhe] angegeben. Der Koordinatennullpunkt liegt, bezogen auf das Elternfenster, links unten. Es sind auch negative Koordinatenwerte möglich. Sinnvoll ist das z.B. bei einem dynamischen Ausblenden ohne zu löschen, oder für Animationen. [[Bild:Cartesian-coordinate-system.svg | 150px]] Wer mehr dazu wissen will, sei auf die Octave-Dokumentation verwiesen. Insbesondere siehe * dialog * uicontrol * uipanel * uibuttongroup * uitable * uimenu * uitoolbar == Aufgaben == === Aufgabe 1 === Erzeugen Sie ein Dialogfenster mit einem Texteingabefeld und einem Button. Beim Klicken auf den Button soll der Eingabetext auf der Konsole ausgegeben werden. Das Dialogfenster soll also in etwa so aussehen: [[Bild:octave_dialog105.jpg]] Da dies etwas komplizierter als das oben gezeigte Beispiel ist, werden nachfolgend ein paar Codefragmente zwecks Lösung angegeben: Datei button_callback.m: function button_callback(editHandle) eingegText = get(editHandle, "String"); disp(eingegText); end Codefragement in test1.m: % ... edit = uicontrol(% ... "Style", "edit", ... %, ... "HorizontalAlignment", "left"); btn = uicontrol(% ... "Callback", @(src, event) button_callback(edit)); % ... Aufruf mit: octave test1.m Eingabe von z.B. "Hallo Welt!": [[Bild:octave_dialog106.jpg]] Ausgabe auf der Konsole nach dem Drücken des Buttons: Hallo Welt! === Aufgabe 2 === Erzeugen Sie ein Dialogfenster mit zwei Eingabefeldern und einem Button. Eingegeben in diese zwei Eingabefelder werden vom Benutzer Zahlen. Auf der Konsole ausgegeben werden soll, nach Drücken des Buttons, das Produkt dieser zwei Zahlen. Auch hier werden wieder Codefragemente angegeben. Datei button_callback.m: function button_callback(edit1, edit2) zahl1 = str2double(get(edit1, 'String')); zahl2 = str2double(get(edit2, 'String')); disp(zahl1 * zahl2); end Codefragment Datei test1.m: % ... btn = uicontrol("Parent", d, ... % ... "Callback", @(src, event) button_callback(edit1, edit2)); % ... Was passiert, wenn der Benutzer keine Zahlen, sondern beliebige Strings eingibt? = Fehlerhandling mit try/catch = Die try/catch-Anweisung entspricht weitgehend jener, die aus höheren Programmiersprachen wie C++ oder Java bekannt sind. Aufgebaut ist diese Anweisungsfolge so: try BODY catch CLEANUP end Beispiel: clear; close all; clc; try a = 10 / "zahl"; disp(a); disp("Weiter im try-Block"); catch disp("Catch: Kann nicht durch einen String dividieren"); end Ausgabe: Catch: Kann nicht durch einen String dividieren Sinnvoll ist die try/catch-Folge, wenn z.B. auch in einem Fehlerfall Dateien wieder geschlossen werden sollen. = Ein- und Ausgabe = == Formatierte Ausgabe am Bildschirm, formatiertes Lesen von der Tastatur == Folgendes Beispiel ist der Octave-Hilfe (von Octave 3.0.3) entnommen: pct = 37; filename = "foo.txt"; printf ("Processed %d%% of `%s'.\nPlease be patient.\n", pct, filename); Ausgabe: Processed 37% of `foo.txt'. Please be patient. "printf" gibt einen formatierten String am Bildschirm (genauer in den Stream stdout) aus. Wie man sieht, orientiert sich das Format an der Programmiersprache C. Für das formatierte Lesen vom Stream stdin (normalerweise also von der Tastatur) steht das Pendant "scanf" bereit. == Von einem String lesen bzw. in einen String schreiben == Bezüglich der Funktionen * sprintf und * sscanf sei auf die Octave-Hilfefunktion verwiesen. == Lesen und Schreiben von einer Datei == === Datei schreiben === % Datei c:\tmp\datei.test zum Schreiben öffnen datei = fopen ("c:/tmp/datei.test", "w"); % Etwas in die Datei schreiben fprintf(datei, "Hallo, Welt!"); % Datei schließen fclose(datei); === Datei lesen === % Datei c:\tmp\datei.test zum Lesen öffnen datei = fopen ("c:/tmp/datei.test", "r"); % Etwas aus der Datei lesen [string] = fscanf(datei, "%s"); disp(string); % Datei schließen fclose(datei); Ausgabe: Hallo,Welt! === Dateiende prüfen === Mittels des Befehls feof(FID); kann das Dateiende geprüft werden. Wenn die EOF-Bedingung zutrifft, dann wird 1 zurückgegeben, wenn nicht dann 0. Ein Beispiel folgt später als Lösung einer Aufgabe. === warning und error === Eine Warnung kann man am stderr-Stream ausgeben. Die warning-Funktion entspricht ansonsten der printf-Funktion. Nach Ausgabe der Warnung wird das Programm normal fortgesetzt. m = [1 2 3 6]; if(det(m) == 0) warning("Matrix ist singulaer"); end disp("Weiter geht's"); Ausgabe: warning: Matrix ist singulaer warning: called from test1 at line 5 column 3 Weiter geht's Schärfer ist der error-Befehl. Die Fehlermeldung wird am stderr-Stream ausgegeben. Vom Format her entspricht diese Funktion dem printf-Befehl. Nach Ausgabe der Fehlermeldung wird das Programm beendet. m = [1 2 3 6]; if(det(m) == 0) error("Matrix ist singulaer"); end disp("Weiter geht's"); Ausgabe: error: Matrix ist singulaer error: called from test1 at line 5 column 3 == Aufgaben == * Schreiben Sie ein Programm, das die Zahlen 1 bis 10 zeilenweise in eine Datei ausgibt. * Lesen Sie diese Zeilen wieder von der Datei ein und geben Sie sie am Bildschirm aus. * Gegeben sei eine Datei. Lesen Sie die Daten aus dieser Datei ein und rechnen Sie per Octave-Programm den Gesamtpreis für alle Tiere aus. Die Anzahl der Zeilen und der genaue Dateinhalt sei Ihnen vorab nicht bekannt. Bekannt ist nur das Datenformat wie folgt: Nr. Name Einzelpreis Stueck 1 Affe 15000.50 2 2 Loewe 11000.90 1 3 Nashorn 45000.10 1 4 Elefant 51245.90 3 5 Tiger 9000.70 2 6 Maus 34.90 12 Eine einfache Lösung ohne Schnickschnack (Fehlerüberprüfungen etc.) für dieses Beispiel könnte wie folgt aussehen: clear; close all; clc; datei = fopen ("c:/tmp/daten1.txt", "r"); gesamtpreis = 0; % Kopfzeile einlesen [nr, name, preis, stk] = fscanf(datei, "%s %s %s %s", "C"); while(feof(datei) == 0) % Datensätze einlesen [nr, name, preis, stk] = fscanf(datei, "%d %s %f %d", "C"); gesamtpreis += preis*stk; end fclose(datei); disp("Gesamtpreis = "); format long; disp(gesamtpreis); Ausgabe: Gesamtpreis = 258159.900000000 = Datencontainer = == Datenstrukturen == Pseudocode: STRUKTUR s ZAHL a VEKTOR b STRING c END Octave-Code: s.a = 45.9; s.b = [1 2 3 4 5]; s.c = "Hallo!"; s Ausgabe: s = scalar structure containing the fields: a = 45.90000000000000 b = 1 2 3 4 5 c = Hallo! Um ein paar weitere Möglichkeiten zum Handling mit Datenstrukturen aufzuzeigen, sei folgender Code aufgeführt. Datei addsub.m function res = addsub(a, b) res.x = a + b; res.y = a - b; end Datei test1.m clear; clc; addsub(10, 50) r = addsub(30, 70) r.x r.y ++r.x Ausgabe: ans = scalar structure containing the fields: x = 60 y = -40 r = scalar structure containing the fields: x = 100 y = -40 ans = 100 ans = -40 ans = 101 Die Funktion "addsub" liefert die Struktur res mit zwei Zahlenwerten. Die Elemente der Datenstruktur können auch außerhalb der Funktion angesprochen werden. Auch gerechnet werden kann mit diesen Elementen. == Cell Arrays == Manchmal kann es sinnvoll sein mehrere Variablen verschiedenen Typs und Größe in einer Variablen zu speichern. Dies funktioniert ähnlich wie bei Vektoren. Es werden aber geschweifte Klammern verwendet. Eingabe: c = {"Hallo Welt!", [2 2], 44} c{1} c{1:2} Ausgabe: c = { [1,1] = Hallo Welt! [1,2] = 2 2 [1,3] = 44 } ans = Hallo Welt! ans = Hallo Welt! ans = 2 2 Elemente des Cell Arrays können auch wieder mit Variablen anderen Typs überschrieben werden. c = {"Hallo Welt!", [2 2], 44}; c{1} = 5; c Ausgabe: c = { [1,1] = 5 [1,2] = 2 2 [1,3] = 44 } = Objektorientierte Programmierung = Octave unterstützt auch objektorientierte Programmierung mit dem Schlüsselwort <code>classdef</code> (ab Version 4.0). Dieses Thema ist aber etwas für fortgeschrittene Anwender und wird hier nicht behandelt. Wen es trotzdem interessiert, der sei auf die [https://docs.octave.org/latest/Object-Oriented-Programming.html Octave-Dokumentation] verwiesen. = Octave im Zusammenspiel mit anderen Programmiersprachen = == .oct-Dateien == Eine .oct-Datei in GNU Octave ist eine kompilierte C/C++-Datei, die als dynamisch ladbares Objekt direkt in Octave ausgeführt werden kann. oct-Dateien sind meist schneller als nativer Octave-Code. 1. Schritt: Erstelle z.B. eine C++-Datei ''quadrat.cc'' (es soll das Quadrat einer Zahl berechnet werden) #include <octave/oct.h> DEFUN_DLD(quadrat, args, nargout, "Quadrat einer Zahl berechnen") { double x = args(0).double_value(); double res = x*x; return octave_value(res); } * <code>DEFUN_DLD</code> ist ein Makro. Damit wird angezeigt, dass es sich um eine dynamisch ladbare Funktion handelt. * <code>args</code>: Argumente die beim Aufruf in Octave übergeben werden. 2. Schritt: ''quadrat.cc'' kompilieren # Terminal öffnen # In das quadrat.cc-Verzeichnis wechseln # Octave aufrufen # cc-Datei zu einer oct-Datei kompilieren: <code>mkoctfile quadrat.cc</code> # Wenn das ohne Fehlermeldung durchläuft, so sollte im Anschluss eine (relativ große) ''quadrat.oct''-Datei im entsprechenden Verzeichnis zu finden sein. 3. Schritt: Funktion <code>quadrat()</code> in Octave aufrufen, z.B.: y = quadrat(5) Es ergibt sich folgende Ausgabe: y = 25 Damit das funktioniert, müssen natürlich die entsprechenden Werkzeuge (Compiler etc.) installiert sein. Darauf wird hier aber nicht näher eingegangen. == Andere Möglichkeiten == * .mex-Dateien ('''M'''ATLAB '''Ex'''ecutables): Wenn man kompatibel zu MATLAB bleiben muss * Java- oder Python-Schnittstelle (Nachteil: langsamer als .oct-Dateien) Bevor man aber diese Möglichkeiten in Anspruch nimmt, sollte man vektorisieren. Damit lassen sich oft schon höhere Geschwindigkeiten erzielen. Dieses Thema wurde früher schon kurz behandelt. = Octave GUI = Das GUI-Programm ('''G'''raphical '''U'''ser '''I'''nterface) von Octave entspricht im Wesentlichen anderen Programmier-Benutzeroberflächen (IDEs ... '''I'''ntegrated '''D'''evelopment '''E'''nvironments), wie z.B. Eclipse (Java), Code::Blocks (C/C++) oder Spyder (Python). Nachfolgend ist ein Screenshot des Octave-GUI mit einigen Anmerkungen dargestellt. [[Bild:octave_gui2.jpg|600px]] Probieren Sie einfach die Möglichkeiten der zur Verfügung gestellten GUI/IDE aus. = Komplexere Aufgaben = * Berechnen Sie die Fläche, den Umfang, die Seitenlängen, den Inkreis und den Umkreis eines Dreiecks. Stellen Sie das Dreieck inklusive In- und Umkreis grafisch dar. Speichern Sie die Daten in einer Datei. Die drei Eckpunkte dieses Dreiecks sollen vom Benutzer beliebig vorgegeben werden. * Die Werte einer beliebig großen quadratischen Matrix seien in einer Datei gespeichert. Lesen Sie diese Datei ein und berechnen Sie daraus die Determinante der Matrix, die inverse Matrix, die Eigenvektoren und -werte, die Spur. Führen Sie die LR-Zerlegung durch. Geben Sie diese Werte am Bildschirm aus. = Ausblick = Dies war eine kurze Einführung in die Berechnungs- und Darstellungsmöglichkeiten mit Octave. Es sollten etliche relevante Themen behandelt, oder zumindest kurz angesprochen worden sein. Wem dieser Text nicht ausreichend ist, der sei auf die entsprechende weiterführende Literatur, die Octave-Hilfefunktion und die Octave-Dokumentation verwiesen. Octave kennt noch viel mehr Befehle, als hier dargestellt wurden. Aber auch Octave selbst ist erweiterbar. Man siehe z.B. Octave Packages (https://gnu-octave.github.io/packages/) oder man schreibt selbst Erweiterungen. {{Navigation_zurückhochvor_buch| zurücktext=Maxima| zurücklink=Ing Mathematik: Computeralgebrasysteme am Beispiel von Maxima| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Julia für Ingenieure| vorlink=Ing Mathematik: Julia}} mi0n9ycid72c2eaz87bay0mb0voxc8d 1091090 1091089 2026-09-19T14:44:44Z Intruder 1513 /* .oct-Dateien */ 1091090 wikitext text/x-wiki {{Navigation_zurückhochvor_buch| zurücktext=Maxima| zurücklink=Ing Mathematik: Computeralgebrasysteme am Beispiel von Maxima| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Julia für Ingenieure| vorlink=Ing Mathematik: Julia}} = Hallo Welt und allgemeine Hinweise = == Was ist Octave == * Octave ist eine Software zur numerischen Lösung mathematischer Probleme. * Octave ist Open-Source (GPL-Lizenz). * Octave ist für viele Betriebssysteme erhältlich (z.B. für Linux, MS Windows, macOS). * Octave ist weitgehend kompatibel zum Numerik-Standardprogramm {{W|Matlab|MATLAB}}. * Octave ist ein Interpreter. * Octave als Programmiersprache ist case-sensitive - d.h. Groß- und Kleinschreibung ist relevant bei der Eingabe von Befehlen. {{Wikipedia | GNU Octave}} == Octave installieren == === MS Windows === Laden Sie das aktuelle Octave-Paket von der Webseite [https://octave.org/download] herunter. Weiter geht es wie bei jedem anderen größeren zu installierenden Programm. Einfach das Installationsprogramm im Explorer doppelklicken und den Anweisungen des Setup-Programmes folgen. === Linux === Entweder ist Octave bereits standardmäßig installiert, ansonsten ist die Installation mittels Paketmanagementsystem einfach möglich. Dazu gehen Sie auf die Seite [https://wiki.octave.org/Category:Installation], wählen die vorhandene Linux-Variante und folgen der angegebenen Beschreibung (z.B. <code>zypper ... </code> für openSUSE. Oder Sie benutzen unter openSUSE Tumbleweed direkt das Setup-Programm {{W|YaST}}). == Octave starten == === MS Windows === Das Icon für das Octave-Programm doppelklicken (für das Konsolenprogramm ... CLI, für die grafische Benutzeroberfläche ... GUI). Und schon startet das Programm. [[Datei:octavestart1.jpg]] === Linux === In einer Linux-Konsole den Befehl "octave" eintippen, mit der RETURN-Taste bestätigen, und das Programm (CLI) startet: GNU Octave (x86_64-suse-linux-gnu) version 11.1.0 Copyright (C) 1993-2026 The Octave Project Developers. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software; see the source code for copying conditions. There is NO WARRANTY, to the extent permitted by law. For details, type 'warranty'. Home page: <https://octave.org> Support resources: <https://octave.org/support> Improve Octave: <https://octave.org/get-involved> For changes from previous versions, type 'news'. octave:1> Um Octave mit der eingebauten GUI zu starten, kann der Befehl <code>octave --force-gui</code> verwendet werden: [[File:Gnu_Octave_IDE.png|600px]] Alternativ kann, z.B. unter openSUSE Tumbleweed (mit {{W|KDE Plasma 6|KDE-Plasma}}), die Octave-IDE auch über den Application Launcher im Menü ''Education -> GNU Octave'' gestartet werden. == Ein paar Worte zur Erklärung == Im Folgenden wird immer das Konsolenprogramm (CLI ... Command Line Interface) für die Eingabe von Befehlen benutzt. Erst gegen Ende dieses Textes wird auch kurz auf das GUI von Octave eingegangen. Teilweise werden Ergebnisse der älteren Octave-Version 3.0.3 dargestellt. Die dargestellten Grafiken und Ausgabetexte können je nach Version leicht voneinander abweichen. Der Text wurde ursprünglich mit der Octave-Version 3.0.3 erstellt und anschließend auf die Versionen 5.2 bis 11.1.0 aktualisiert. Dieser Mischmasch sollte aber kein Problem darstellen. Getestet wurden die Beispiele ursprünglich unter dem Betriebssystem MS Windows 10, später auch mit MS Windows 11, bzw. mit openSUSE Leap 15.6 (Octave 6.4.0, nur vereinzelt) und ab März 2026 auch mit openSUSE Tumbleweed (ab Octave 10.3.0, nur vereinzelt). == Ein erstes Programm == Kommentare werden in Octave mit dem Prozentzeichen (%) oder alternativ mit der Raute (#) eingeleitet. Sie werden vom Octave-Interpreter ignoriert. Will man kompatibel mit MATLAB bleiben, so ist die Version mit dem %-Zeichen vorzuziehen. Text kann mit der disp-Funktion ausgegeben werden. Starten Sie Octave und geben sie folgende Anweisungen zeilenweise ein octave-3.0.3.exe:1> % Das ist ein Kommentar octave-3.0.3.exe:2> # und das auch octave-3.0.3.exe:3> disp "Hallo Welt!" Als Ergebnis erhalten Sie Hallo Welt! Der Prompt (z.B. octave-3.0.3.exe:1>) ist natürlich abhängig von der Octave-Version und den schon eingegebenen Zeilen. Er ist selbstverständlich nicht einzutippen, sondern wird vom Octave-System geliefert. Strings können in Octave entweder in Anführungszeichen (") gesetzt werden oder in Hochkommatas('). In diesem Text wird die erste Variante bevorzugt eingesetzt. = Octave als Taschenrechner = == Allgemeines == Wir wollen 3 * 5 berechnen. Dazu starten wir Octave. Geben Sie dann die Formel octave-3.0.3.exe:1> 3 * 5 ein, drücken die Taste ENTER/RETURN und erhalten als Ergebnis ans = 15 Auch kompliziertere Ausdrücke sind möglich. Beispielsweise mit Winkelfunktionen, Quadratwurzeln etc. Wir wollen nun den Ausdruck <math>\sin\sqrt{15}</math> berechnen : octave-3.0.3.exe:2> sin(sqrt(15)) ans = -0.6679 Octave kennt eine Handvoll von Konstanten, z.B.: Zeilenweise Eingabe: % Die Kreiszahl PI pi % Die Eulersche Zahl e % Zur Maschinengenauigkeit eps Ausgabe: ans = 3.1416 ans = 2.7183 ans = 2.2204e-016 "ans" steht übrigens für den Begriff "answer" (auf Deutsch "Antwort"). Mit "ans" kann wie mit jeder anderen Variable oder Konstanten weitergerechnet werden, z.B.: Eingabe: % Der Kreisradius sei 10 10 % Der Kreis-Umfang mit diesem Radius sei folgendes 2 * pi * ans Ausgabe: ans = 10 ans = 62.832 Die Ausgabe eines Befehls am Bildschirm (das "Echo") kann übrigens durch Anwendung des Semikolons (;) unterdrückt werden. Gezeigt werden soll dies nun mit Hilfe des obigen Beispiels. Es soll nur der Umfang ausgegeben werden, nicht der Radius. Eingabe: % Der Kreisradius sei 10 10; % Der Kreis-Umfang mit diesem Radius sei folgendes 2 * pi * ans Ausgabe: ans = 62.832 Vielleicht ist manchem die Genauigkeit, mit der Echo bzw. der Befehl disp Werte ausgibt, nicht ausreichend. Dem kann Abhilfe verschafft werden und zwar so: Eingabe: format short pi format long pi format longe pi % usw. Ausgabe: ans = 3.1416 ans = 3.14159265358979 ans = 3.14159265358979e+00 Beenden lässt sich das Octave-Programm durch Eingabe von quit oder exit (und natürlich zur Bestätigung die RETURN-Taste drücken). == Die Hilfefunktion von Octave == Die Eingabe von help mit Angabe eines Funktionsnamens liefert detaillierte Infos zu der gesuchten Funktion. Eingabe: help sin Ausgabe: 'sin' is a built-in function from the file libinterp/corefcn/mappers.cc -- Y = sin (X) Compute the sine for each element of X in radians. See also: asin, sind, sinh. Additional help for built-in functions and operators is available in the online version of the manual. Use the command 'doc <topic>' to search the manual index. Help and information about Octave is also available on the WWW at https://www.octave.org and via the help@octave.org mailing list. Auch gibt es die doc-Funktion für eine vollständige Dokumentation des Octave-Systems, z.B.: Eingabe: doc Ausgabe: [[Datei:Octave_730_doc_screenshot.jpg]] == Sonstige einfache Berechnungen == In octave gibt es eine "umgekehrte" Division: 11 / 2 % normale Division (Rechtsdivision) 11 \ 2 % umgekehrte Division (Linksdivision) Ausgabe: ans = 5.5000 ans = 0.1818 Potenzieren kann man so: 12^5 Ausgabe: ans = 248832 Den Modulo-Operator % wie in C/C++, Java oder Python gibt es in Octave '''nicht'''. Das Prozentzeichen ist dem Kommentar vorbehalten. Man kann aber eine Funktion hierfür benutzen y = mod(20, 3) Ausgabe: y = 2 Runden mit und auf Ganzzahlen kann man in Octave so: a = int32(10); b = int32(3); x = a / b y = int32(15) / int32(4) Ausgabe: x = 3 y = 4 Siehe dazu aber auch die Funktionen <code>floor</code>, <code>ceil</code> und <code>idivide</code>. Mittels <code>int32()</code> werden Zahlen als 32-Bit-Ganzzahlen dargestellt. Standardmäßig ist der Datentyp nämlich <code>double</code>. Das ist zu beachten, es ergeben sich unterschiedliche Ergebnisse. Beispiel: clear(); a = int32(10); b = int32(3); x = a / b c = 10; d = 3; y = c / d whos() Ausgabe: x = 3 y = 3.3333 Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 4 int32 b 1x1 4 int32 c 1x1 8 double d 1x1 8 double x 1x1 4 int32 y 1x1 8 double Total is 6 elements using 36 bytes Ist der Wertebereich von <code>int32</code> zu klein (4 Bytes, <math>-2^{31}</math> bis <math>2^{31} - 1</math>), so gibt es auch <code>int64</code> (8 Bytes, <math>-2^{63}</math> bis <math>2^{63} - 1</math>). <code>clear</code> löscht Namen und gibt den Speicherplatz wieder frei. <code>whos()</code> liefert detaillierte Informationen der aktuell definierten Variablen. == Aufgaben == * Berechnen Sie mit Octave den Ausdruck <math>\frac{1}{2}\cdot e^2 \cdot \tan(\pi/3)</math>. * Berechnen Sie mit Octave den Ausdruck <math>2\; \text{cosd}(60) - 3\sin(\pi/5)</math>. Anmerkung: cosd erwartet den Parameter im Gradmaß (d für "degree"), sin erwartet den Parameter im Bogenmaß. * Erkunden Sie die Fehlerfunktion "erf" mittels Octave-Hilfe. * Welche Zahl ergibt sich durch <code>3 / 4 \ 2</code>? * Welche Zahlen werden durch die folgenden Anweisungen ausgegeben? idivide(int32(10), int32(3), "fix") idivide(int32(10), int32(3), "round") idivide(int32(10), int32(3), "floor") idivide(int32(10), int32(3), "ceil") floor(10.3) ceil(10.3) = Octave als Scriptsprache = Häufig wird man aber kompliziertere Anweisungsfolgen verarbeiten müssen. Diese will man normalerweise nicht jedesmal neu eingeben, sondern in einer Datei speichern und diese Datei dann zur Ausführung bringen. Speichern Sie dazu folgenden Code in einer Textdatei, z.B. unter MS Windows als c:\tmp\test1.m % Das ist ein Kommentar # und das auch disp "Hallo Welt!" Skriptdateien müssen mit der Dateiendung .m versehen werden. In der Octave-Konsole fügen Sie den Dateipfad mittels octave-3.0.3.exe:1> addpath("c:/tmp") hinzu (es ist der UNIX-spezifische Slash (/) zu benutzen). Alternativ können Sie zumindest unter MS Windows auch einen Doppel-Backslash (\\) einsetzen. Oder Sie wechseln mittels <code>cd c:/tmp</code> direkt ins Verzeichnis <code>c:/tmp</code>. Danach bringen Sie die Skriptdatei test1.m (sozusagen das Hauptprogramm) zur Ausführung octave-3.0.3.exe:2> test1 Achtung: Die Datei (die Funktion oder das Hauptprogramm) ist in der Octave-Kommandozeile ohne .m-Dateiendung anzugeben. Wie erwartet ergibt sich folgende Ausgabe am Bildschirm Hallo Welt! Zumindest unter Linux können Sie z.B. auch komfortabel den {{W|Shebang|Shebang}} (<code>#!</code>) nutzen. Gegeben sei das Octave-Script #!/usr/bin/octave disp("Hallo Welt!"); Gepeichert sei es ebenfalls als <code>test1.m</code>. Starten Sie ein Terminal, wechseln Sie in das entsprechende Arbeitsverzeichnis und geben Sie ./test1.m ein, so erhalten Sie wieder Hallo Welt! als Ausgabe auf dem Terminal. Die Zugriffsberechtigung muss natürlich mittels <code>chmod</code> richtig gesetzt werden. Oder Sie führen direkt Octave mit der Datei <code>test1.m</code> aus: octave test1.m Sie sehen, mehrere Wege führen zum Ziel. == Blockkommentare == In neueren Octave-Versionen ab dem Jahr 2009 sind auch Blockkommentare möglich. Blockkommentare werden wie normale Kommentare vom Octave-Interpreter ignoriert. %{ Das ist ein Blockkommentar %} #{ und das auch #} == Variablen == Variablenbezeichner können aus Buchstaben (A-Za-z), Ziffern (0-9) und Underscores (_) bestehen, dürfen aber nicht mit einer Zahl beginnen. Gültige Variablenbezeichner wären also: xyz x1 _wert name_anzahl Da Octave case-sensitiv ist, repräsentieren folgende Bezeichner verschiedene Variablen: xyz XYZ xYz Werte werden an Variablen mittels Gleich-Zeichen (=) zugewiesen. Im Folgenden wird der Code immer in der Datei c:\tmp\test1.m gespeichert. x = 5 y = 10 z = x*y Bringen Sie die Datei test1.m zur Ausführung, so erhalten Sie folgende Bildschirmausgabe x = 5 y = 10 z = 50 Normalerweise will man aber nur z anzeigen, die Werte von x und y sind ja bereits bekannt. Dazu fügen Sie an den Anweisungsenden, wie bereits weiter oben erwähnt, bei x und y jeweils ein Semikolon (;) an, um das Anweisungsende explizit zu markieren. x = 5; y = 10; z = x*y Nun erhalten Sie als Ergebnis nur noch z = 50 Sie können auch mehrere Anweisungen in einer Zeile durch Semikolon getrennt schreiben. x = 5; y = 10; z = x*y Ausgabe: z = 50 Auch aus der Programmiersprache C/C++ oder Java bekannte Konstrukte können Sie verwenden, z.B. x = 5; % inkrementiere x ++x % x = x - 2 x -= 2 Bildschirmausgabe: ans = 6 x = 4 Beachten Sie, dass mit dem =-Zeichen eine Wertezuweisung durchgeführt wird. Dies ist nicht äquivalent zum mathematischen =-Zeichen, wie am vorigen Beispiel zu ersehen ist. Soll eine Anweisung auf mehrere Zeilen verteilt werden, z.B. weil sie zu lang ist, so kann dies durch Verwendung von drei Punkten (...) geschehen, wie nachfolgend dargestellt. x = 5; y = 1000 * x + ... sin(x/2) Ausgabe: y = 5000.6 Diese Drei-Punkte-Methode soll nicht für in Anführungszeichen (") eingeschlossene Strings verwendet werden. Diese Methode ist seit geraumer Zeit "deprecated" und funktioniert mit der Version 9.1.0 gar nicht mehr. Benutzen Sie statt dessen den Backslash (\): txt = "xxxxxxxxxxxxxxxxxxxx\ yyyyyyyyyyyyyyyyy" Ausgabe: txt = xxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyy Variablen sind nicht an einen bestimmten Datentyp gebunden, folgendes ist in Octave problemlos möglich: wert = 10 wert = 35.5 wert = "Hallo" wert = pi Ausgabe: wert = 10 wert = 35.500 wert = Hallo wert = 3.1416 Der Befehl <code>who</code>, bzw. <code>whos</code> listet die gegenwärtig definierten Variablen, z.B.: clear; a = 10.5; v = [1 2 3 4 5 12 13]; m = ["s1", "s2"; "s3", "s4"]; disp "***** Der Befehl who *****" who disp "***** Der Befehl whos *****" whos Ausgabe: ***** Der Befehl who ***** Variables visible from the current scope: a m v ***** Der Befehl whos ***** Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 8 double m 2x4 8 char v 1x7 56 double Total is 16 elements using 72 bytes ==Hexadezimale und binäre Zahlen== % Hexadezimale Zahl disp( 0xABC ) % Binäre Zahl disp( 0b1000011 ) Ausgabe (als Dezimalzahlen): 2748 67 Octave kann auch dezimale in binäre Zahlen etc. umwandeln: dec2bin( 214 ) Ausgabe: ans = 11010110 Siehe dazu in der Octave-Hilfe auch folgende Funktionen: bin2dec, dec2base, dec2hex, hex2dec, base2dec == Zahlenkolonnen == Eine Zahlenkolonne (oder ein Vektor) mit gleichen Abständen der Werte kann folgendermaßen erzeugt werden: % a ... Startwert % b ... Schrittweite % c ... Endwert a = 0; b = 10; c = 100; x = a : b : c; disp(x); Ausgabe: 0 10 20 30 40 50 60 70 80 90 100 Ähnliche Resultate lassen sich auch durch Anwendung der linspace-Funktion erhalten, z.B.: % a ... Startwert % b ... Endwert % c ... Anzahl der Werte a = 0; b = 100; c = 11; v = linspace(a, b, c) Ausgabe: v = 0 10 20 30 40 50 60 70 80 90 100 == Verzweigungen == === Die IF-Verzweigung === Die IF-Verzweigung ist aus anderen Programmiersprachen bereits bekannt. In Pseudocode lässt sie sich folgendermaßen darstellen: WENN bedingung TRUE führe block1 aus SONST führe block2 aus ENDE Die test1.m-Datei laute also wie folgt: x = 5; if x < 4 disp "x ist kleiner als 4"; else disp "Der else-Zweig wird ausgefuehrt"; disp "x ist groesser oder gleich 4"; end Ausgabe: Der else-Zweig wird ausgefuehrt x ist groesser oder gleich 4 Octave kennt eine Reihe von Vergleichs- und Verknüpfungsoperatoren: * <, <= ... kleiner (gleich) * >, >= ... größer (gleich) * == ... gleich * ~=, != ... ungleich * &, && ... AND * |, || ... OR * ~, ! ... NOT Beispielsweise: a = 5; b = 9; if a<=10 & b!=7 disp("OK"); else disp("Nicht OK"); end Ausgabe: OK === Die SWITCH-Verzweigung === In Pseudocode: WECHSLE ZU var FALLS wert1 == var führe block1 aus FALLS wert2 == var führe block2 aus ... SONST führe blockn aus ENDE Eine Beispielsimplementierung in Octave könnte so aussehen: x = "g"; switch(x) case "k" disp("klein"); case "g" disp("gross"); otherwise disp("sonstiges") end Ausgabe: gross Anmerkungen für C-Programmierer: * in Octave darf zum Abschluß von ''case'' kein Doppelpunkt folgen (würde einen Syntaxfehler auslösen). * ein ''break'' als Abschluß eines ''case''-Blocks ist nicht erlaubt (würde in Octave einen parse error auslösen). ''break'' ist Schleifen vorbehalten. ''switch'' hat in Octave keinen "Durchfall" und ähnelt somit eher der Fortran-Anweisung ''select case''. Mehrere Fälle in einem ''case'' können wie nachfolgend behandelt werden: x = "K"; switch(x) case {"k" "K"} disp("klein"); case {"g" "G"} disp("gross"); otherwise disp("sonstiges") end Ausgabe: klein == Schleifen == === Die WHILE-Schleife === Die WHILE-Schleife ist kopfgesteuert. Sie funktioniert wie aus anderen Programmiersprachen bekannt. In Pseudocode: SOLANGE bedingung TRUE führe block aus ENDE In Octave: x = 0; while x <= 10 disp(x); x++; end Ausgabe: 0 1 2 3 4 5 6 7 8 9 10 === Die DO-UNTIL-Schleife === Die DO-UNTIL-Schleife ist fußgesteuert. Beachte: Diese Schleife ist nicht äquivalent zu der aus anderen Programmiersprachen bekannten DO-WHILE-Schleife. DO-WHILE bedeutet "TUE SOLANGE", DO-UNTIL bedeutet "TUE BIS". Sie wird mindestens einmal ausgeführt. Pseudocode: TUE führe block aus BIS bedingung TRUE Mittels Octave: x = 0; do disp(x); x++; until(x >= 5) Ausgabe: 0 1 2 3 4 === Die FOR-Schleife === for x = 0 : 2 : 10 disp(x); end Ausgabe: 0 2 4 6 8 10 Der FOR-Schleifenkopf ist in Form einer Zahlenkolonne folgendermaßen aufgebaut: for variable = startwert : schrittweite : endwert Man beachte, dass Vektorisierung gegenüber einem Schleifendurchlauf eine erhebliche Zeiteinsparung bewirken kann (man siehe in der [https://docs.octave.org/latest/Vectorization-and-Faster-Code-Execution.html Octave-Dokumentation das Kapitel 19 "Vectorization and Faster Code Execution"]). Folgendes Beispiel ist an genanntes Octave-Kapitel angelehnt. Zuerst wird eine Berechnung mittels Schleifendurchlauf durchgeführt und der Zeitbedarf ausgegeben. Dieser Zeitbedarf hängt natürlich auch von der verwendeten Hardware etc. ab. Eingabe: n = m = 500; a = b = eye(500); t1 = time(); for i = 1:n for j = 1:m c(i,j) = a(i,j) + b(i,j); endfor endfor t2 = time(); t_diff = t2-t1 Ausgabe: t_diff = 3.7566 Der Zeitverbrauch beträgt hier also ca. 4 Sekunden. Im Gegensatz dazu Eingabe: a = b = eye(500); t1 = time(); c = a + b; t2 = time(); t_diff = t2-t1 Ausgabe: t_diff = 1.5974e-05 ist der Zeitverbrauch hier sehr gering. Vektoren und Matrizen werden etwas später in diesem Text detailliert behandelt. Hier nur soviel: Mittels ''eye'' wird eine Einheitsmatrix kreiert. === Schleifen abbrechen === Zum Abbrechen einer Schleife gibt es den Befehl "break". for var = 0 : 1 : 100 disp (var); if var == 5 break; end end Ausgabe: 0 1 2 3 4 5 "continue" setzt mit dem nächsten Schleifendurchlauf fort, z.B. for var = 0 : 1 : 10 if var == 5 continue; end disp (var); end Ausgabe: 0 1 2 3 4 6 7 8 9 10 == Aufgaben == * Berechnen Sie die Summe der ersten 10000 natürlichen Zahlen (bei 1 beginnend) ** in Form einer WHILE-Schleife ** in Form einer DO-UNTIL-Schleife ** in Form einer FOR-Schleife ** mittels sum-Befehl (siehe dazu auch die von Octave zur Verfügung gestellte Hilfefunktion). ** mittels gaußscher Summenformel (<math>\sum_{i=1}^n{i} = 1+2+...+n = n(n+1) / 2</math>) * Schreiben Sie für obige Alternativen Programme mit denen der Zeitbedarf der Schleifen, Befehle bzw. Formeln gemessen werden kann. Welche Alternativen sind aus Zeitgründen (minimale Laufzeit) empfehlenswert? = Grafiken zeichnen = == 2D == === Graph einer Funktion === Es soll die cosh-Funktion im Intervall <math>x\in[-3,3]</math> gezeichnet werden. Der Programmcode lautet in der einfachsten Form: x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; Ausgabe: [[Datei:octave_cosh.jpg]] Der Code ist quasi selbsterklärend. x läuft von -3 bis +3. y wird für jeden x-Wert per Formel ausgerechnet. "plot" ist der Zeichenbefehl. "grid on" schaltet ein Zeichengitter ein. Die Schrittweite 0.1 wurde so gewählt, um einen ausreichend glatten Verlauf des Graphen zu gewährleisten. Das ist immer ein Kompromiss zwischen Berechnungszeit und Ansehnlichkeit. Testen Sie einfach ein paar verschiedene Werte, um ein Gefühl dafür zu zu bekommen. Sie könnten nun auf die Idee kommen, obiges Script unter Linux mit der Shebang-Zeile zu erweitern, um es direkt als Programm auszuführen. #!/usr/bin/octave x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; Die Enttäuschung folgt auf dem Fuß. Außer einem kurzen Aufblinken des Grafikfensters ist nicht viel zu sehen. Das Programm läuft einfach durch und wird nach der letzten Anweisung beendet. Abhilfe kann z.B. der <code>input</code>-Befehl schaffen: #!/usr/bin/octave x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; refresh(); input("Zum Beenden RETURN-Taste drücken"); Das Programm wartet somit, bis Sie im Terminal die RETURN-Taste drücken. <code>refresh()</code> dient dazu, das Grafikfenster unmittelbar zu aktualisieren. Sonst würde das Ausgabefenster leer bleiben, bis es durch externe Anreize aktualisiert wird (z.B. durch Fenster minimieren/maximieren). Gleiches gilt für die <code>octave test1.m</code>-Variante. Ein etwas komplexeres Beispiel ist Folgendes x = -3 : .1: 3; y = cosh(x) + 2.^x; plot(x,y); grid on; Man beachte den Punkt bei 2.^x (2 hoch x). Vergisst man den Punkt, dann erhält man eine Fehlermeldung (ähnlich dieser): error: for x^y, only square matrix arguments are permitted and one argument must be scalar. Use .^ for elementwise power. error: called from test1 at line 2 column 3 Ausgabe: [[Datei:octave_cosh2.jpg]] Der Funktionsgraph kann auch als Fläche eingefärbt werden: x = -3 : .1: 3; y = cosh(x) + 2.^x; fill (x, y, "b"); Ausgabe: [[Datei:octave_cosh3.jpg | 500px]] === Graphen mehrerer Funktionen und weiteres === Mehrere Graphen lassen sich folgendermaßen in ein Fenster zeichnen: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, x,y2); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Bild:octave_cosh14.jpg|600px]] Um die Linienstile etwas individueller zu gestalten, ist folgender Programmcode gedacht: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1,"*r", x,y2,"ob"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Datei:octave_cosh4.jpg]] Bei plot kann auch der Linienstil des jeweiligen Graphen angegeben werden, z.B. steht * für Sternchenlinie o für Kreise in der Linie r für rot b für blau Ein ähnliches Resultat liefert der Code: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, "Color", "red", "*", x,y2, "Color", "blue", "o"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; Will man mehrere Graphen in ein Fenster zeichnen, aber nicht alles in einen plot-Befehl quetschen, so kann die "hold on"-Anweisung die Lösung des Problems sein: %Lösche alle benutzerdefinierten Variablen aus der Symboltabelle clear; %Schließe alle Fenster close all; %Lösche Konsolenfenster und setze Cursor zurück clc; x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, "Color", "red"); hold on; plot(x,y2, "Color", "blue"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Datei:octave_coshsin1.jpg]] Bei diesem Program wurden auch einige Möglichkeiten (clear, close, clc) gezeigt, um das System aufzuräumen. Ein "hold off" würde natürlich die hold-Funktion wieder ausschalten. === Funktion in Parameterdarstellung === Es soll die archimedische Spirale <math>x = t \cos(t), y = t \sin(t)</math> im Intervall <math>[0, 6\pi]</math> gezeichnet werden. clear; close all; clc; t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y); grid on; [[Datei:octave_spirale1.jpg]] Diese Darstellung erscheint verzerrt. Will man gleiche Achsenskalierungen, so kann man den axis-Befehl verwenden (axis muss nach plot erscheinen). t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y); grid on; axis equal; [[Datei:octave_spirale222.jpg]] === Strichstärke === Für manche Zwecke ist es sinnvoll die Strichstärke des Graphen zu erhöhen. Dies kann über den Parameter "LineWidth" der plot-Funktion geschehen. t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y, "LineWidth", 2); grid on; axis equal; Ausgabe: [[Datei:octave_spirale3.jpg]] === Beliebigen Text ausgeben === x = -10:0.1:10; plot (x, sin (x), "LineWidth", 2); text (2.7, 0.8, "Das ist die sin-Funktion"); Ausgabe: [[Datei:octave_text1.jpg]] === Logarithmische Achseneinteilung === x = -3 : .1: 3; y = cosh(x) + 2.^x; % Halblogarithmische Darstellung semilogy(x,y); grid on; Ausgabe: [[Datei:octave_semilog1.jpg]] Auch die x-Achse kann mit "semilogx" logarithmisch skaliert werden. Mit "loglog" werden beide Achsen logarithmisch skaliert. === Aufgaben === * Zeichnen Sie die Strophoide <math>x = \frac{a(t^2-1)}{t^2+1}, y = \frac{at(t^2-1)}{t^2+1}, a = 2, -3 \leq t \leq 3</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_strophoide.jpg]] * Zeichnen Sie die verschlungene Hypozykloide <math>x = (R-r)\cos t + c\cos\frac{R-r}{r}t, y = (R-r)\sin t - c\sin\frac{R-r}{r}t, c = 3, r = 2, R = 6, -15 \leq t \leq 15</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_hypozykloide.jpg]] * Testen Sie bei den obigen Übungsaufgaben verschiedene Linienstile und Farben (Hinweis: Siehe dazu auch die Octave-Hilfefunktion für den plot-Befehl). * Testen Sie bei den obigen Übungsaufgaben verschiedene Werte für a, c, r und R. * Erkunden Sie in der Octave-Hilfe den ezplot-Befehl. == 3D == === Räumliche Kurven === Mittels "plot3" lassen sich Raumkurven zeichnen. t = 0 : .1 : 9*pi; x = cos(t); y = sin(t); z = 1.3 .^ t; plot3(x,y,z); grid on; [[Datei:octave_raumkurve1.jpg]] === Flächen === ==== ezsurf ==== Die wahrscheinlich einfachste Möglichkeit 3D-Flächen zu erzeugen, besteht in der Verwendung des ezsurf-Befehls. Beachten Sie beim folgenden Beispiel auch wieder den Punkt beim Multiplikationssymbol (elementweise Multiplikation soll verwendet werden, keine Matrizenmultiplikation) in der anonymen Funktion. Was eine anonyme Funktion ist, wird weiter hinten in diesem Text kurz erklärt. Fürs Erste reicht es zu wissen, dass die Funktion f(x, y) jeweils im Intervall [0, 10] gezeichnet werden soll. clear; close all; clc; clf; f = @(x, y) sin(x) + 3.*cos(y); ezsurf (f, [0, 10]); [[Bild:octave_ezsurf1.jpg|600px]] Dieses Bild wurde mit der Octave-Version 5.2 erstellt. Es ist im Prinzip identisch zu jenen des folgenden Abschnitts, die mit der Version 3.0.3 erstellt wurden, nur die Farbschattierung ist anders. Ändern lässt sich diese Eigenschaft mit dem colormap-Befehl (siehe auch Octave-Hilfe): clear; close all; clc; clf; colormap(hot); f = @(x, y) sin(x) + 3.*cos(y); ezsurf (f, [0, 10]); [[Bild:octave_colormap_hot.jpg|600px]] ==== surf und mesh ==== Für das Zeichnen von Flächen existiert der surf-Befehl. Der meshgrid-Befehl kreiert ein Netz in der xy-Zeichenebene. Beachten Sie beim folgenden Beispiel auch wieder den Punkt beim Multiplikationssymbol der Formel für z. x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); surf(x_grid, y_grid, z); [[Datei:octave_flaeche1.jpg]] Auch ein Farbstreifen kann via "colorbar" zur Grafik hinzugefügt werden. x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); surf(x_grid, y_grid, z); colorbar("East"); [[Datei:octave_flaeche2.jpg]] Das Ganze in Netzdarstellung läßt sich so programmieren: x = 0 : .2 : 10; y = 0 : .2 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); mesh(x_grid, y_grid, z); Ausgabe: [[Datei:octave_mesh1.jpg]] ==== Ellipsoide und Kegel ==== Für das Zeichnen von Kugeln oder Ellipsoiden stellt Octave den "sphere"-Befehl bzw. den "ellipsoid"-Befehl zur Verfügung. clear; close all; clc; % Ellipsoiden zeichnen [x, y, z] = sphere(30); surf(5*x, 4*y, 3*z); hold on; [x, y, z] = ellipsoid(5, 5, 5, 6, 3, 2, 30); surf(x, y, z); axis equal; [[Bild:octave_ellipsoid2.jpg|600px]] Für Zylinder und Kegel ist der "cylinder"-Befehl zuständig. clear; close all; clc; % Kegel und Zylinder zeichnen [x, y, z] = cylinder([1 2], 100); surf(x, y, z*3); hold on; [x, y, z] = cylinder([0.5 0.5], 50); surf(x+3, y, z*2); axis equal; [[Bild:octave_cylinder2.jpg|600px]] === Aufgaben === * Zeichnen Sie die räumliche Kurve <math>x = 2 \cdot \cosh(t)</math>, <math>y = 5 \cdot \sin(t)</math>, <math> z = t^{2} - t</math>, <math>0 \leq t \leq 3\pi</math>. Das Ganze sollte etwa wie folgt aussehen: [[Datei:octave_kurve10.jpg]] * Zeichnen Sie die Fläche <math>z = \log(x) + \cos(y)</math>. Das Ganze sollte etwa wie folgt aussehen: [[Datei:octave_flaeche10.jpg]] == Weiteres == === subplot === Zeichnen mit Untergrafiken: Hier wird z.B. ein Fenster mit drei Untergrafiken gezeichnet. Eingabe: t = 0 : .5 : 10; [x_grid, y_grid] = meshgrid(t, t); subplot(311); surf(x_grid, y_grid, sin(x_grid) + cos(y_grid) ); subplot(312); surf(x_grid, y_grid, sin(x_grid) + log(y_grid) ); subplot(313); surf(x_grid, y_grid, x_grid + cos(y_grid) ); Ausgabe: [[Datei:octave_subplot2.jpg]] Die dreistellige Ziffer beim subplot-Befehl bedeutet folgendes: * Die erste Ziffer ist die Zeilenanzahl * Die zweite Ziffer ist die Reihenanzahl und * Die dritte Ziffer ist der Index. Nun sei ein Beispiel mit 3x2-Untergrafiken angeführt. clear; close all; clc; x = 0 : .1 : 10; subplot(321); plot(x, sin(x)); text(2, -0.5, "Index 1"); subplot(322); plot(x, tan(x)); text(2, 2, "Index 2"); subplot(323); plot(x, cosh(x) ); text(2, 3000, "Index 3"); subplot(324); plot(x, gamma(x) ) text(2, 100000, "Index 4"); subplot(325); plot(x, log(x) ); text(2, 0, "Index 5"); subplot(326); plot(x, exp(x) ); text(2, 10000, "Index 6"); Ausgabe: [[Datei:octave_subplot3.jpg]] Hier ist sehr gut zu sehen, in welcher Reihenfolge der Index läuft. === figure === Zeichnen in verschiedene Fenster, z.B. clear; close all; clc; x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); figure(1) surf(x_grid, y_grid, sin(x_grid) + cos(y_grid)); figure(2) surf(x_grid, y_grid, sin(x_grid) + log(y_grid)); Ausgabe: [[Datei:octave_figure111.jpg|700px]] === Linien zeichnen === Zeichnen Sie eine Linie von der Koordinate [-15, 0] zu [15, 5]: clear; close all; clc; x = line([-15 15], [0, 5], "Color", "black", "LineWidth", 2); Ausgabe: [[Datei:octave_linie1.jpg]] Man beachte, dass Octave nicht Punkte P1(x1, y1), P2(x2, y2) erwartet, sondern einen x-Vektor [x1 x2] und einen y-Vektor [y1 y2]. Ein allgemeines Viereck wird z.B. mit folgendem Befehl gezeichnet. line([-15 15 10 -5, -15], [0, 5, 20, 15, 0], "LineWidth", 2); [[Datei:octave_viereck2.jpg]] Auch dreidimensionale Formen lassen sich mit dem line-Befehl zeichnen: clear; close all; clc; line([-15 15 10 -5, -15], [0, 5, 20, 15, 0], [10, 20, 30, 40, 50], "LineWidth", 2); [[Datei:octave_dreidim2.jpg]] === Aufgaben === * Zeichnen Sie mittels "subplot" die Funktionsgrafen <math>y_1=\tan(x), y_2=\tan(2x), y_3=\tan\sqrt x, y_4=x\cdot \tan(x)</math> in folgender Form in ein Fenster: ** in 2x2-Darstellung ** in 1x4-Darstellung. * Zeichnen Sie die im obigen Beispiel angegebenen Funktionsgrafen mittels "figure" jeweils in ein eigenes Fenster. = Vektoren und Matrizen = == Vektoren == Vektoren sollten jedem aus der Linearen Algebra bekannt sein. === Zeilen- und Spaltenvektoren === % Ein Zeilenvektor v1 = [1, 2, 3] % Ein Spaltenvektor v2 = [6; 7; 8] Ausgabe: v1 = 1 2 3 v2 = 6 7 8 Alternative Schreibweisen: % Ein Zeilenvektor v1 = [1 2 3] % Ein Spaltenvektor v2 = [6 7 8] Die Ausgabe entspricht der obigen Darstellung. === Zugriff auf Vektorelemente === Nachfolgend seien einige Zugriffsmöglichkeiten auf die einzelnen Vektorelemente erläutert. Auf ein einzelnes Element kann via Index zugegriffen werden. Der Index startet bei 1: v1 = [1 2 4 8 16]; v2 = v1(3) Ausgabe: v2 = 4 Mehrere Elemente werden folgendermaßen angesprochen: v1 = [1 2 4 8 16]; v2 = v1(3:4) Ausgabe: v2 = 4 8 Liefere den Teilvektor von einem gegebenen Index bis zum letzten Element: v1 = [1 2 4 8 16]; v2 = v1(3:end) Ausgabe: v2 = 4 8 16 === Addition und Subtraktion von Vektoren === v1 = [1, 2, 3]; v2 = [5, 7, 9]; res = v1 + v2 res = v1 - v2 Ausgabe: res = 6 9 12 res = -4 -5 -6 === Multiplikation mit Skalaren === faktor = 3; v = [1, 2, 3]; res = faktor * v Ausgabe: res = 3 6 9 === Skalarprodukt === Das Skalarprodukt ist bekanntermaßen als <math>v_1 \cdot v_2 = |v_1| |v_2| \cos(\angle(v_1, v_2))</math> definiert. In Octave sieht das so aus: v1 = [1, 2, 3]; v2 = [5, 6, 7]; res = dot(v1, v2) Ausgabe: res = 38 === Vektorprodukt === v1 = [1, 2, 3]; v2 = [5, 6, 7]; res = cross(v1, v2) Ausgabe: res = -4 8 -4 Enger an die mathematische Darstellung lehnt sich folgender Code an. Die zu multiplizierenden Vektoren seien in Form von Spaltenvektoren gegeben. Mathematisch: <math>a\ast b=\left(\begin{array}{c} a_{1}\\ a_{2}\\ a_{3} \end{array}\right)\ast\left(\begin{array}{c} b_{1}\\ b_{2}\\ b_{3} \end{array}\right)=\left(\begin{array}{c} a_{2}b_{3}-a_{3}b_{2}\\ a_{3}b_{1}-a_{1}b_{3}\\ a_{1}b_{2}-a_{2}b_{1} \end{array}\right) </math> Octave-Code: a = [1 2 3]; b = [5 6 7]; res = cross(a, b) Ausgabe: res = -4 8 -4 === Transponierter Vektor === v1 = [1, 2, 3]; v2 = [5; 6; 7]; res1 = v1' res2 = v2' Ausgabe: res1 = 1 2 3 res2 = 5 6 7 === Einige weitere Vektorfunktionen === Beispiel: % 1 + 2 + 3 v = [1 2 3]; sum(v) Ausgabe: ans = 6 Beispiel: % 1 * 2 * 3 * 4 v = [1 2 3 4]; prod(v) Ausgabe: ans = 24 Beispiel: % 1^2 + 2^2 + 3^2 v = [1 2 3]; sumsq (v) Ausgabe: ans = 14 == Matrizen == Gegeben sei folgende 2x3-Matrix <math>m=\left(\begin{array}{ccc} 1 & 2 & 3\\ 4 & 5 & 6 \end{array}\right)</math>. Eingabe: m = [1, 2, 3; 4, 5, 6] Ausgabe: m = 1 2 3 4 5 6 Alternativ und anschaulicher kann diese 2x3-Matrix auch so eingegeben werden: m = [1 2 3 4 5 6] Dies ist schon sehr nahe an der mathematischen Darstellungsweise. === Zugriff auf Matrizenelemente === m = [1 2 3 4 5 6]; % Element aus Zeile 2 und Spalte 3 m(2,3) Ausgabe: ans = 6 Eine andere Zugriffsmöglichkeit ist diese: m = [1 2 3 4 5 6]; % Auf das fünfte Element soll zugegriffen werden m(5) Ausgabe: ans = 3 Die Matrix wird also spaltenweise durchlaufen (nicht zeilenweise). Dies ist vielleicht auf den ersten Blick etwas ungewöhnlich, wird aber z.B. auch in Fortran so gehandhabt. Auch Teilmatrizen können einfach gebildet werden: m = [1 2 3 4 5 6]; m(2:end, 2:end) Ausgabe: ans = 5 6 Siehe zu diesem Thema auch etwas weiter hinten in diesem Text den Abschnitt "Teilmatrizen". === Addition und Subtraktion von Matrizen === m1 = [1, 2, 3; 4, 5, 6]; m2 = [-4, -2, 0; 2, 4, 6]; m1 + m2 m1 - m2 Ausgabe: ans = -3 0 3 6 9 12 ans = 5 4 3 2 1 0 === Transponierte Matrix === m = [1, 2, 3; 4, 5, 6]; m' Ausgabe: ans = 1 4 2 5 3 6 === Rang einer Matrix === Der Rang einer Matrix Rg(M) ist die maximale Anzahl der linear unabhängigen Zeilenvektoren (Spaltenvektoren). m1 = [1, 2, 3; 4, 5, 6]; m2 = [1, 2; 2, 4]; rank(m1) rank(m2) Ausgabe: ans = 2 ans = 1 Regulär ist eine nxn-Matrix, wenn der Rg(M) = n. D.h. die erste Matrix m1 ist regulär, die zweite m2 singulär. === Inverse Matrix === m1 = [1, 3; 0, -5 ]; m2 = [1, 2; 2, 4]; inv(m1) inv(m2) Ausgabe: ans = 1.00000 0.60000 0.00000 -0.20000 warning: matrix singular to machine precision warning: called from test1 at line 4 column 1 ans = Inf Inf Inf Inf Die Matrix m2 in diesem Beispiel ist singulär (d.h. die Determinante ist 0). Determinanten werden etwas weiter unten in diesem Text behandelt. Inf steht für Infinity (= Unendlich). === Multiplikation von Matrizen (falksches Schema) === m1 = [1, 3, 4; 0, -5, 1]; m2 = [1, 2; 2, 3; 0, 2]; m1 * m2 Ausgabe: ans = 7 19 -10 -13 Will man aus irgendwelchen Gründen nicht das falksche Schema ausführen, sondern elementweise Multiplikation, so funktioniert das mit dem Punkt-Operator, z.B. m1 = [1, 3; 0, -5]; m2 = [1, 2; 4, 2]; % falksches Schema m1 * m2 % elementweise Multiplikation m1 .* m2 Ausgabe: ans = 13 8 -20 -10 ans = 1 6 0 -10 Verifikation, falksches Schema (Zeile*Spalte): [ 1 3 ] [ 1 2 ] [ 1*1+3*4 1*2+3*2 ] [ 13 8 ] [ 0 -5 ] [ 4 2 ] = [ 0*1-4*5 0*2-5*2 ] = [ -20 -10 ] Verifikation, elementweise Multiplikation (homologe Elemente): [ 1 3 ] [ 1 2 ] [ 1*1 3*2 ] [ 1 6 ] [ 0 -5 ] [ 4 2 ] = [ 0*4 -5*2 ] = [ 0 -10 ] === Determinante einer Matrix === m1 = [1, 3; 0, -5 ]; m2 = [1, 2; 2, 4]; det(m1) det(m2) Ausgabe: ans = -5 ans = 0 m1 ist regulär, m2 ist singulär. Determinanten können nur von quadratischen Matrizen gebildet werden. === Teilmatrizen === m = [1, 2, 3; 0, 5, 1]; % Die Matrix in einen Spaltenvektor umwandeln m1 = m(:) % Das Element aus der 1. Zeile und der 2. Spalte extrahieren m2 = m(1,2) % Erste Zeile extrahieren m3 = m(1, 1:3) m4 = m(1, :) % Zweite Spalte extrahieren m5 = m(1:2, 2) m6 = m(:, 2) Ausgabe: m1 = 1 0 2 5 3 1 m2 = 2 m3 = 1 2 3 m4 = 1 2 3 m5 = 2 5 m6 = 2 5 === Einheitsmatrizen === eye(3,2) Ausgabe: ans = 1 0 0 1 0 0 === Nullmatrizen === zeros(2,3) Ausgabe: ans = 0 0 0 0 0 0 === Diagonalmatrizen === diag([1, 2, 3]) Ausgabe: ans = 1 0 0 0 2 0 0 0 3 === Spur einer Matrix === trace([1,2,3; 6,9, 0]) Ausgabe: ans = 10 === LR-Zerlegung einer Matrix === Führen Sie die LR-Faktorisierung (LR ... links/rechts bzw. LU ... left/upper) einer Matrix m aus. l sei die linke Dreiecksmatrix, r die rechte Dreiecksmatrix und p die Permutationsmatrix m = [1 0 5 -1 1 -2 0 0 3]; [l, r, p] = lu(m) Ausgabe: l = 1 0 0 -1 1 0 0 0 1 r = 1 0 5 0 1 3 0 0 3 p = 1 0 0 0 1 0 0 0 1 === Eigenwerte === a = [5 8 1 3]; % Eigenvektoren und Eigenwerte [ev, ew] = eig(a) Ausgabe: ev = 0.9701 -0.8944 0.2425 0.4472 ew = Diagonal Matrix 7 0 0 1 Die Eigenwerte sind hier <math>\lambda_1 = 7</math> und <math>\lambda_2 = 1</math>. Die Eigenvektoren sind [0.9701 0.2425] bzw. [-0.8944 0.4472]. Da das Gleichungssystem <math>(A - \lambda_i E) x_i = 0</math> singulär ist, sind alle Lösungsvektoren Vielfache dieser Eigenvektoren. === Schwach besetzte Matrizen === {{Wikipedia | Dünnbesetzte Matrix}} Gegeben sei die schwach besetzte Matrix m = [0 1 0 0 0 0 0 0 3 0 4 0 0 2 0 0 0 1 0 0 0 0 0 1 7] Mittels dem sparse-Befehl kann man einfach die Elemente != 0 nach folgendem Schema eingeben. sparse ([zeilenindizes] [spaltenindizes] [werte]) also in unserem Fall: ms = sparse([1 2 3 3 4 5 5], [2 4 1 4 3 4 5], [1 3 4 2 1 1 7]) Ausgabe: ms = Compressed Column Sparse (rows = 5, cols = 5, nnz = 7) (3, 1) -> 4 (1, 2) -> 1 (4, 3) -> 1 (2, 4) -> 3 (3, 4) -> 2 (5, 4) -> 1 (5, 5) -> 7 Die volle Matrix erhält man mit dem Befehl full: m = full(ms) Ausgabe: m = 0 1 0 0 0 0 0 0 3 0 4 0 0 2 0 0 0 1 0 0 0 0 0 1 7 Grafisch anzeigen lassen kann man sich die Besetzung von Matrizen mit dem spy-Befehl: spy(ms); oder (für allgemeine Matrizen auch mittels) spy(m); Ausgabe: [[Datei:octave_sparse1.jpg]] Wirklich interessant ist der spy-Befehl für größere Matrizen, z.B. um die Bandstruktur zu visualisieren. e = eye(200); es = sparse(e); % Auf sparse-Matrizen kann genauso zugegriffen werden wie auf normalen Matrizen es(100, 15) = 100; spy(es); Ausgabe: [[Datei:octave_sparse2.jpg]] === Matrizen mit Zufallswerten === Insbesondere für Testzwecke kann es manchmal sinnvoll sein größere Matrizen mit Zufallswerten zu bilden. Dazu stellt Octave u.a. den rand-Befehl zur Verfügung. m = rand(5, 6) Ausgabe: m = 0.86605 0.61108 0.71347 0.97119 0.52428 0.21993 0.74059 0.49062 0.56073 0.68592 0.74737 0.62680 0.20790 0.84874 0.36834 0.31102 0.25813 0.28933 0.84732 0.98777 0.91512 0.42240 0.87891 0.63757 0.76823 0.80367 0.24639 0.78208 0.77170 0.95281 Die Zufallszahlen liegen gleichverteilt zwischen 0 und 1 und werden nach dem Mersenne-Twister-Verfahren mit einer Periode von <math>2^{19937}-1</math> gebildet. Andere Verfahren sind: * randn: Normalverteilte Pseudozufallselemente mit Mittelwert=0 und Varianz=1 * rande: Exponentialverteilte Zufallselemente * randg: Gammaverteilte Zufallselemente * randp: Poissonverteilte Zufallselemente Details dazu siehe in der Octave-Hilfefunktion. == Aufgaben == * Berechnen Sie den Winkel zwischen den beiden Vektoren a = [1 2 0] und b = [2 1 1]. Hinweis: Siehe diesbezüglich auch im Oktave-Hilfesystem den Befehl "norm". * Gegeben seien Vektoren a = [1 2 5], b = [0 0 -1] und c = [-1 -2 2]. Berechnen Sie das Spatprodukt aus diesen drei Vektoren. * Multiplizieren Sie die beiden Matrizen A und B (mit Octave und zur Kontrolle händisch) A = [0 0 1 1 2 1] B = [1 1 1 2 0 4] * Ist die Matrix C regulär? Wenn ja, dann bilden Sie die inverse Matrix. C = [-1 0 0 -4 2 0 1 5 7 6 2 0 3 0 2 6] * Ist die Matrix D regulär? Wenn ja, dann bilden Sie die inverse Matrix. D = [2 1 0 0 0 0 2 1 0 0 0 2 1 1 0 0] * Berechnen Sie die Konditionszahl der folgenden Matrix. Hinweis: Siehe diesbezüglich im Oktave-Hilfesystem den Befehl cond [3 4 -5 6 0 3 1 1 2] * Berechnen Sie die Eigenwerte und Eigenvektoren der folgenden Matrix [6 -3 4 0 0 7 -1 1 0 10 -3 -2 0 1 -2 1] = Komplexe Zahlen = Die imaginäre Einheit wird in Octave durch den Buchstaben i, j, I oder J symbolisiert. Darstellen kann man eine komplexe Zahl bekannterweise in mehreren Formen: * Kartesische Darstellung <math>z = \Re(z) + i \cdot \Im(z)</math> * Polardarstellungen <math>z = r \cdot (\cos(\phi) + i \cdot \sin(\phi)) = r \cdot e^{i\cdot \phi}</math> Die konjugiert komplexe Zahl ist <math>z^* = \Re(z) - i \cdot \Im(z)</math> == Mit komplexen Zahlen rechnen == z1 = 2 + 5i; % kartesische Darstellung z2 = 3 * exp(3j); % Polardarstellung % Addition res = z1 + z2; disp("z1 + z2 = "); disp(res); % Multiplikation res = z1 * z2; disp("z1 * z2 = "); disp(res); % Realteil res = real(z2); disp("Realteil von z2 = "); disp(res); % Imaginärteil res = imag(z2); disp("Imaginaerteil von z2 = "); disp(res); % Betrag res = abs(z1); disp("Betrag von z1 = "); disp(res); % Argument res = angle(z1); disp("Argument von z1 = "); disp(res); % Konjugiert komplexe Zahl res = conj(z1); disp("Konjugiert komplexe Zahl von z1 = "); disp(res); Ausgabe: z1 + z2 = -0.96998 + 5.42336i z1 * z2 = -8.0568 - 14.0032i Realteil von z2 = -2.9700 Imaginaerteil von z2 = 0.42336 Betrag von z1 = 5.3852 Argument von z1 = 1.1903 Konjugiert komplexe Zahl von z1 = 2 - 5i == Die gaußsche Zahlenebene == clear; close all; clc; z1 = 3 + 5i; z2 = 5 * exp(0.5i); hold on; plot(z1, "*"); compass(z1); plot(z2, "o"); compass(z2); grid on; [[Datei:octave_komplex1.jpg]] == Aufgaben == * Berechnen Sie die Quadratwurzel der komplexen Zahl <math>z = 3 + 2i</math>. * Verwandeln Sie folgende Zahlen in die Polarkoordinatendarstellung: <math>-11 - 3i</math> und <math>(1+i)^{10}</math> * Verwandeln Sie folgende Zahlen in die Normaldarstellung: <math>12 \cdot e^{i\cdot \pi / 4}</math> und <math>3 \cdot (\cos(\pi / 3) + i \cdot \sin(\pi / 3))</math> * Zeichnen Sie die Zahl <math>3 + 5i</math> in der gaußschen Zahlenebene als Zeiger. = Funktionen = Um Programme zu strukturieren und einfacher zu gestalten können Programmteile in Funktionen ausgelagert werden. Eingebaute Funktionen haben wir schon kennengelernt (z.B. die Sinus-Funktion sin). Nun wollen wir sehen, wie man selbst solche Funktionen schreiben kann. == Eine einfache Funktion schreiben == Datei addiere.m: function res = addiere(a, b) % Addiere zwei Zahlen a + b res = a + b; end Datei test1.m: addiere(10, 15) Ausgabe: ans = 25 * Jede Funktion sollte in einer eigenen m-Datei stehen. * Der Dateiname sollte mit dem Funktionsnamen (natürlich ohne Dateiendung .m) übereinstimmen. * Der Kommentar unter dem Funktionskopf wird als Hilfstext angezeigt, wenn die help-Funktion (hier "help addiere") aufgerufen wird. == Inline-Funktionen == Kurze Funktionen können auch als Inline-Funktionen geschrieben werden. addiere = inline("a + b"); x = 5; y = 10; z = addiere(x, y) Oder in diesem Fall noch kürzer addiere = inline("a + b"); z = addiere(5, 10) Ausgabe: z = 15 Bei neueren Octave-Versionen kann bei der Verwendung von Inline-Funktionen die Warnung warning: inline is obsolete; use anonymous functions instead erscheinen. Ein Blick in die Hilfe-Funktion help inline zeigt das selbe Ergebnis. Es sollen also anonyme Funktionen (siehe etwas weiter unten in diesem Text) anstelle von Inline-Funktionen verwendet werden. == Funktionsstring == addiere = "a + b"; a = 5; b = 10; z = eval(addiere) Ausgabe: z = 15 == Anonyme Funktionen == {{Wikipedia | Anonyme Funktion}} addiere = @(a, b) a + b; x = 10; y = 20; z = addiere(x, y) oder kürzer addiere = @(a, b) a + b; z = addiere(10, 20) Ausgabe: z = 30 == Nullstellen von Funktionen bestimmen == sinh2 = @(x) sinh(x) + 2; z = fzero(sinh2, 1) Ausgabe: z = -1.4436 Zur Kontrolle soll hier der Graph der Funktion dargestellt werden clear; close all; clc; sinh2 = @(x) sinh(x) + 2; x = -2 : 0.1 : 0; y = sinh2(x); z = fzero(sinh2, 1) plot(x, y); hold on; plot(z, 0, "o", "Color", "red", "LineWidth", 2); text (-1.8, 0.8, "Nullstelle"); line([z -1.7], [0, .7], "Color", "black"); grid on; Ausgabe: [[Datei:octave_funktion5.jpg]] Weiter unten im Text wird die ähnliche Funktion "fsolve" beschrieben. "fzero" benutzt zwei verschiedene Funktionen zur Problemlösung, darunter eben auch "fsolve". Für die Nullstellenbestimmung von Polynomen gibt es die Funktion "roots". Näheres dazu folgt im nächsten Kapitel. == Globale Variablen == Datei addiere.m: function res = addiere() global a b; res = a + b; end Datei test1.m: clear; close all; clc; global a b; a = 5; b = 3; addiere() Ausgabe: ans = 8 == Aufgaben == * Schreiben Sie eine Funktion "ellipse", welche eine Ellipse am Bildschirm darstellt. Zur Erinnerung: Die Parameterdarstellung der Ellipse lautet <math>x = a\cdot\cos(t), y = b\cdot\sin(t), 0 \leq t \leq 2\pi</math>, Funktionsargumente seien a und b. * Schreiben Sie <math>y = 2\cdot\sin(x) + 3\cdot\cos(x/2)</math> ** als normale Funktion ** als Funktionsstring ** als Inlinefunktion ** als anonyme Funktion ** stellen Sie diese Funktion grafisch am Bildschirm dar. = Polynome = == Einzelne Polynomwerte berechnen == % y = 2*x^3 + 5*x^2 + 4 für x = 2 berechnen p = [2, 5, 0, 4]; polyval(p, 2) Ausgabe: ans = 40 == Polynome zeichnen == % y = 2*x^3 - 5*x^2 + 4 für das Intervall -5 <= x <= 5 grafisch darstellen x = -5 : .1 : 5; p = [2, 5, 0, 4]; y = polyval(p, x); plot(x,y); grid on; Ausgabe: [[Datei:octave_polynom1.jpg]] == Nullstellen bestimmen == Für Polynome existiert die Funktion "roots" zur Nullstellenbestimmung. % Nullstellen für y = 2*x^3 - 5*x^2 + 4 bestimmen p = [2, 5, 0, 4]; r = roots(p) Ausgabe: r = -2.76214 + 0.00000i 0.13107 + 0.84077i 0.13107 - 0.84077i Dieses Polynom hat nur eine reelle Nullstelle. Diese liegt, wie am obigen Grafen zu ersehen ist, in der Nähe von -2.762. Die beiden anderen Nullstellen sind konjugiert komplex zueinander (wie es auch sein sollte). == Aufgaben == * Berechnen Sie den Wert für x = 3 des Polynoms <math>y = 2x^4 - 3x^3 - x + 7</math>. * Berechnen Sie die Nullstellen von <math>y = 7x^5 - 3x^2 + 12</math>. * Zeichnen Sie das Polynom <math>y = 12x^4 - 70x</math> im Intervall <math>-5 \leq x \leq 5</math>. = Lineare Gleichungssysteme = Sei <math>Ax = b</math> ein lineares Gleichungssystem. <math>A</math> sei die Koeffizientenmatrix, <math>x</math> der Lösungsvektor und <math>b</math> ein bekannter Vektor. == Einfache Berechnung mittels Gauß-Verfahren == {{Wikipedia | Gaußsches Eliminationsverfahren}} Beispiel: A = [5 1 0 2]; b = [1 2]; x = A \ b Ausgabe: x = 0 1 == Das gmres-Verfahren == gmres steht für Generalized Minimal Residual. {{Wikipedia | GMRES-Verfahren}} A = [5 1 0 2]; b = [1 2]; x = gmres(A, b) Ausgabe: gmres converged at iteration 2 to a solution with relative residual 2.22045e-16 x = -1.6653e-16 1.0000e+00 Das Ergebnis weicht etwas vom gaußschen Verfahren ab, ist aber trotzdem im Rahmen der Näherung korrekt. Weiters kennt Octave noch andere iterative Verfahren, z.B. cgs (Conjugate Gradient Squared) oder bicgstab (Bi-Conjugate Gradient Stabilized). Näheres zu diesen Verfahren siehe in der weiterführenden Literatur (z.B. bei Meister: Numerik linearer Gleichungssysteme, Vieweg+Teubner, 2011) {{Wikipedia | CGS-Verfahren}} == Aufgabe == * Lösen Sie folgendes Gleichungssystem mittels Octave (und zur Kontrolle auch händisch): 5x + 6y - 2z = 12 3x - y - 3z = 6 2x + 2y + 4z = 5 = Nichtlineare Gleichungssysteme = == fsolve und fzero == Löse eine beliebige Gleichung f(x) = 0, z.B. <math> f(x) = x^2 - 5\cos(x) - 10 = 0 </math>: f = @(x) x^2 - 5*cos(x) - 10; xstart = 1; [x, fval, info] = fsolve(f, xstart) Ausgabe: x = 2.4681 fval = -1.7764e-015 info = 1 * x ist eine Nullstelle in der Nähe vom Startwert xstart. * fval ist die Abweichung, den f bei x aufweist. * info ist ein "Fehlercode": 1 bedeutet, dass der relative Fehler in der spezifizierten Toleranz liegt (wie es sein soll). 3 würde bedeuten, dass der Algorithmus nicht konvergiert (z.B. weil keine Nullstelle existiert). Zur Kontrolle plotten wir den Funktionsgraphen: x = - 1 : .1 : 3; y = x.^2 - 5.*cos(x) - 10; plot(x,y, "LineWidth", 2); grid on; Ausgabe: [[Datei:octave_nichtlin1.jpg]] Und siehe da, die gesuchte Nullstelle liegt wie berechnet bei einem Wert nahe 2,5. Die Funktion <math>x^2 - 5\cos(x) - 10</math> hat noch eine zweite Nullstelle, wie in der folgenden Abbildung zu erkennen ist. [[Datei:octave_nichtlin2.jpg]] Diese zweite Nullstelle erhalten wir, wenn der Startwert in der Nähe dieser zweiten Nullstelle liegt, also z.B. bei -1. Ändern Sie einfach den entsprechenden Startwert im obigen Programmcode, und das Programm sollte die Nullstelle in der Nähe von -2.5 liefern. Auch die Funktion ''fzero'' kann zur Lösung einer nichtlinearen Gleichung verwendet werden. Die Hilfe-Funktion von Octave empfiehlt dies sogar eindringlich für den Fall einer nichtlinearen Gleichung in einer Variablen. Für das gleiche Beispiel wie oben kann der Programmcode folgendermaßen aussehen: Eingabe: f = @(x) x^2 - 5*cos(x) - 10; [x0, y0] = fzero (f, [0, 3]) Ausgabe: x0 = 2.4681 y0 = -1.2434e-14 == Gleichungssysteme == Folgende Aufgabe ist dem Buch "Knorrenschild: Numerische Mathematik, Hanser, 2017, Seite 72" entnommen. Zu lösen ist das nichtlineare Gleichungssystem <math>f_1 = 2x_1 + 4x_2 = 0 </math> <math>f_2 = 4x_1 + 8x_2^3 = 0</math> Lösung: f.m: function y = f(x) y(1) = 2*x(1) + 4*x(2); y(2) = 4*x(1) + 8*x(2)^3; end test1.m: clear; close all; clc; [x, fval, info] = fsolve (@f, [0, 1]) [x, fval, info] = fsolve (@f, [0, -1]) [x, fval, info] = fsolve (@f, [0, 0]) Ausgabe: x = -2 1 fval = 0 7.4930e-09 info = 1 x = 2 -1 fval = 0 -7.4930e-09 info = 1 x = 0 0 fval = 0 0 info = 1 == Aufgaben == * Bestimmen Sie die Nullstellen von <math>f(x) = x^2 - 3</math>. Plotten Sie den Grafen. * Bestimmen Sie die Nullstelle von <math>f(x) = sin(x) - x - 1</math>. Plotten Sie den Grafen. * Lösen Sie das folgende Gleichungssystem (und stellen Sie das Ganze grafisch am Bildschirm dar): <math> f_1 = x_1 + x_2 = 0; f_2 = x_1 + \sin{x_2} = 0</math> = Interpolation = == Eindimensionale Interpolation == {{Wikipedia | Interpolation (Mathematik)}} Bezüglich eindimensionaler Interpolation sei auf die [https://docs.octave.org/v11.1.0/One_002ddimensional-Interpolation.html Octave-Dokumentation und Hilfefunktion zum Befehl " interp1"] verwiesen. Dort findet sich auch ein Programmbeispiel, das als Grundlage des folgenden Plots dient: [[Datei:octave_interpol1.jpg]] == Mehrdimensionale Interpolation == Bezüglich mehrdimensionaler Interpolation siehe die [https://docs.octave.org/v11.1.0/Multi_002ddimensional-Interpolation.html Hilfefunktion zu "interp2", "interp3" und "interpn"]. == Aufgabe == * Gegeben seinen die fünf Stützpunkte p1 = [1, 0], p2 = [2, -5], p3 = [3, 2], p4 = [4, 7], p5 = [5, 6]. Legen Sie eine Funktion (die Interpolierende) durch diese Stützpunkte. Eine Lösungsmöglichkeit: xp = [1 2 3 4 5]; yp = [0, -5, 2, 7, 6]; xf = 1 : .1 : 5; spl = interp1(xp, yp, xf, "spline"); pch = interp1(xp, yp, xf, "pchip"); plot(xp, yp, "or", "LineWidth", 2, xf, spl, "LineWidth", 2, ... xf, pch, "LineWidth", 2); legend("stuetzpunkte", "spline", "pchip", "location", "southeast"); [[Datei:octave_interpol3.jpg]] = Differenzialrechnung = == Polynome differenzieren == Es soll das Polynom <math>y = 2x^3 - 5x^2 + 7</math> differenziert werden. % Differenzieren des Polynoms y = 2*x^3 - 5*x^2 + 7 p = [2, -5, 0, 7]; polyder(p) Ausgabe: ans = 6 -10 0 D.h. also, die Ableitung von <math>y = 2x^3 - 5x^2 + 7</math> ist <math>y' = 6x^2 - 10x</math>. == Sonstige Funktionen differenzieren == Als Beispiel differenzieren wir <math>y = 5x\sin{x}</math> und stellen das Ganze grafisch dar. clear; close all; clc; x = 0 : 0.01 : 10; y = 5 .* x .* sin(x); y_strich = diff(y) / 0.01; plot(x, y, "Color", "red", "LineWidth", 2); hold on; plot(x(1:length(x)-1), y_strich, "Color", "blue", "LineWidth", 2); legend("y", "y'"); grid on; Ausgabe: [[Datei:octave_diff1.jpg]] diff(y) ist der Vektor aus den Differenzen y(2)-y(1), ..., y(n)-y(n-1). Für die genaue Arbeitsweise der diff-Funktion siehe "help diff". == Aufgaben == * Differenzieren Sie das Polynom <math>y = 5y^5 - y^4 + 6y - 4</math>. * Differenzieren Sie die Funktion <math>y = \log(x) + 10x</math> und stellen Sie y, sowie y' grafisch am Bildschirm dar. * Differenzieren Sie die Funktion <math>y = \frac{\sinh(x)}{(1+x)}</math> und stellen Sie y, sowie y' grafisch am Bildschirm dar. = Integralrechnung = == Polynome integrieren == Berechnen Sie das unbestimmte Integral von <math>y = 2x^3 - 7x^2 + 7</math> p = [2, -7, 0, 7]; p_int = polyint(p) Ausgabe: p_int = 0.50000 -2.33333 0.00000 7.00000 0.00000 Das Ergebnis lautet also <math>\int{y dx} = 0.5x^4 - 2.33333x^3 + 7x + C</math> (auf die Integrationskonstante C darf nicht vergessen werden!). == Gauß-Quadratur == {{Wikipedia | Gauß-Quadratur}} Berechnen Sie das Integral <math>\int_{0}^{3}x^2 dx</math> mittels Gauß-Quadratur. Datei f.m: function y = f(x) y = x^2; end Datei test1.m: [v, ier, nfun, err] = quad ("f", 0, 3) Ausgabe: v = 9.0000 ier = 0 nfun = 21 err = 9.9920e-014 Erläuterung zur Ausgabe: * v ... Resultat der Integration * ier ... integer error code * nfun ... Anzahl der Funktionsaufrufe * err ... Fehler in der Lösung == Quadratur mittels adaptiver Lobatto-Regel == Berechnen Sie diesmal das Integral <math>\int_{0}^{3}x^2 dx</math> mittels Lobatto-Quadratur. f = inline("x.^2"); v = quadl (f, 0, 3) Ausgabe: v = 9 Wie weiter oben bereits angesprochen kann bei der Ausgabe eine Warnung erfolgen. Inline-Funktionen sind inzwischen als obsolet erklärt und es sollen stattdessen anonyme Funktionen verwendet werden. Zwecks Übung sei nachfolgend nochmals dieses Beispiel berechnet. Diesmal wird aber eine anonyme Funktion verwendet. v = quadl (@(x) x.^2, 0, 3) == Aufgaben == * Integrieren Sie das Polynom <math>y = 5y^5 - y4 + 6y - 4</math>. * Integrieren Sie die Funktion <math>y = \log(x) + 10x</math> von -5 bis 5. * Integrieren Sie die Funktion <math>y = x^3</math> von 0 bis 4. Verwenden Sie hierzu die Simpsonregel (siehe dazu in der Hilfefunktion den Befehl "quadv"). = Gewöhnliche Differenzialgleichungen = == ode23, ode45 und lsode == Für die Lösung von Differenzialgleichungen stehen die Funktionen * ode23 bzw. * ode45 zur Verfügung. Diese Funktionen implementieren das Runge-Kutta-Verfahren. "ode" steht für "Ordinary Differential Equation" (also auf Deutsch für "Gewöhnliche Differentialgleichung"). Die Zahlen bei ode23 oder ode45 stehen für die Ordnung. {{Wikipedia | Runge-Kutta-Verfahren}} Beispiel <math>y' = x^2 + y^3</math>: clear; close all; clc; [x, y] = ode45(@(x,y) (x^2+y^3), [0 1], 0); plot(x, y, "LineWidth", 2); Ausgabe: [[Datei:octave_ode1.jpg]] Bezüglich der genauen Funktionsweise von "ode45" (oder "ode23") siehe die Octave-Hilfe. Auch die Funktion "lsode" steht zur Lösung von ODEs zur Verfügung. Beispiel <math>y' = x + y</math>: clear; close all; clc; t = 0 : .1 : 5; [y2, istate, msg] = lsode(@(x,y) (x + y), 1, t); istate msg plot(t, y2); Ausgabe: istate = 2 msg = successful exit [[Datei:octave_lsode1.jpg]] Bezüglich der genauen Funktionsweise von "lsode" siehe die Octave-Hilfe. == Aufgaben == * Lösen Sie die Differenzialgleichung <math>y' = \frac{1}{x\cdot y}</math> mit Octave. Kontrollieren Sie das Ergebnis, indem Sie die DGl händisch lösen. * Lösen Sie die Differenzialgleichung <math>m' = -k\cdot m</math>. Kontrollieren Sie das Ergebnis, indem Sie die DGl händisch lösen. * Lösen Sie die Differenzialgleichung <math>y' = \sqrt{|y|}</math>. = Die Fast-Fourier-Transformation = {{Wikipedia | Schnelle Fourier-Transformation}} Für die Funktion "fft" siehe das Octave-Hilfesystem. = Mengenrechnung = == Vereinigungsmenge == v1 = [1 2 3 4]; v2 = [2 4 6]; union(v1, v2) Ausgabe: ans = 1 2 3 4 6 == Schnittmenge == v1 = [1 2 3 4]; v2 = [2 4 6]; intersect(v1, v2) Ausgabe: ans = 2 4 = Logik = Logische Operatoren werden oft benötigt, z.B. bei Schleifen und Verzweigungen. Octave kennt die logischen Operatoren <code>or, and, not</code> und <code>xor</code>. Als Beispiel sei die Wahrheitstabelle für den Operator <code>or</code> dargestellt. A B A or B -------------------- true true true true false true false true true false false false In Octave kann das so ausgedrückt werden: or( true, true ) or( true, false ) or( false, true ) or( false, false ) Ausgabe: ans = 1 ans = 1 ans = 1 ans = 0 Zahlen ungleich 0 stehen für true, 0 für false. Z.B.: or( 22, 0) Ausgabe: ans = 1 Äquivalent zu <code>or</code> ist der Operator <code>|</code>: 22 | 0 Ausgabe: ans = 1 Zwecks näheren Informationen zu den Operatoren <code>and (&, &&), not (~, !)</code> und <code>xor</code> bemühe man Octaves Help-Funktion. Bitweise logische Funktionen kennt Octave auch, so kann man z.B. zwei Zahlen mit dem bitweisen OR-Operator verknüpfen: 0b1100101 0b0110001 --------- 0b1110101 Oder in Dezimalzahlen: 101 49 --- 117 In Octave: bitor( 0b1100101, 0b0110001 ) dec2bin( ans ) Ausgabe: ans = 117 ans = 1110101 Zu <code>bitand, bitxor</code> usw. siehe die Octave-Hilfe-Funktion. = Stochastik = ==Deskriptive Statistik == === Lageparameter === Arithmetischer Mittelwert: vec = [1 2 3 4 5 12 13]; mw = mean(vec) Ausgabe: mw = 5.7143 Der Median oder Zentralwert läßt sich folgendermaßen berechnen: vec = [1 2 3 4 5 12 13]; median(vec) Ausgabe: ans = 4 Der Modus oder häufigste Wert läßt sich mittels "mode"-Funktion eruieren: vec = [1 2 1 3 5 1 2 7]; [m, f, c] = mode (vec); disp(m); disp(f); disp(c); Ausgabe: 1 3 { [1,1] = 1 } m (erste Zeile der Ausgabe) ist der Modus. f (zweite Zeile) ist die Häufigkeit. Näheres dazu siehe im Octave-Hilfesystem. === Streuungsparameter === Varianz: vec = [1 2 3 1 1 6 7]; v = var(vec) Ausgabe: v = 6.3333 Standardabweichung: vec = [1 2 3 1 1 6 7]; s = std(vec) Ausgabe: s = 2.5166 === Grafiken erzeugen === Histogramme: v = [1 1 2 3 1 6 7 6 1 1 1 2]; hist(v, max(v)); Ausgabe: [[Datei:octave_histo2.jpg]] Balkendiagramme: v = [1 1 2 3 1 6 7 6]; bar(v); Ausgabe: [[Datei:octave_bar111.jpg]] Treppendiagramm: v = [1 1 2 3 1 6 7 6]; stairs(v); Ausgabe: [[Datei:octave_stairs1.jpg]] Stabdiagramm: v = [1 1 2 3 1 6 7 6]; stem(v); Ausgabe: [[Datei:octave_stem1.jpg]] === Aufgaben === Gegeben sei folgende Datentabelle mit den Werten: v1 = [3 4 1 1 7 2 1 9 2 5 9 7 2 2 9 2 2 1 2 8] v2 = [1 1 0 2 3 4 1 2 7 0 2 1 5 5 5 4 5 2 5 0] * Berechnen Sie die Lageparameter und Streuungsparameter des Vektors v1. * Berechnen Sie Kovarianz und Korrelationskoeffizient der beiden zugeordneten Vektoren v1 und v2. * Zeichnen Sie das Histogramm des Vektors v1. == Wahrscheinlichkeitsrechnung == === Kombinatorik === Der Binomialkoeffizient: <math>\binom{n}{k}=\frac{n!}{k!(n-k)!}</math> In Octave z.B.: n = 30; k = 4; n_ueber_k = nchoosek (n, k) Ausgabe: n_ueber_k = 27405 Permutationen sind die verschiedenen Anordnungsmöglichkeiten mit der Anzahl n! = n * (n-1) * ... * 2 * 1. Beispiel: v = [1, 2, 3]; p = perms(v) Ausgabe: p = 1 2 3 2 1 3 1 3 2 2 3 1 3 1 2 3 2 1 n! (n-Fakultät) selbst kann so berechnet werden: % 10! n = 10; factorial (n) Ausgabe: ans = 3628800 === Verteilungen === Octave kennt eine ganze Reihe von Dichte- und Verteilungsfunktionen und zwar * Probability Density Functions (PDF, Dichtefunktionen) * Cumulative Distribution Functions (CDF, Verteilungsfunktionen) Z.B.: * Binomialverteilung: ** binopdf ** binocdf * Hypergeometrische Verteilung: ** hygepdf ** hygecdf * Normalverteilung: ** normpdf ** normcdf * Studentverteilung: ** tpdf ** tcdf * Weibullverteilung: ** wblpdf ** wblcdf Ein Codebeispiel zur Binomialverteilung: clear; close all; clc; x = 0 : 1 : 10; n = 10; p = 0.1; b1 = binopdf (x, n, p); b2 = binocdf (x, n, p); subplot(221); bar(x, b1); title("binopdf"); text(1, 0.1, "n=10; p=0.1"); subplot(222); bar(x, b2); title("binocdf"); text(1, 0.5, "n=10; p=0.1"); n = 10; p = 0.5; b1 = binopdf (x, n, p); b2 = binocdf (x, n, p); subplot(223); bar(x, b1); text(1, 0.1, "n=10; p=0.5"); subplot(224); bar(x, b2); text(1, 0.1, "n=10; p=0.5"); Ausgabe: [[Datei:octave_bino3.jpg]] Möglicherweise erhalten Sie bei diesem Beispiel eine Fehlermeldung in der Form error: 'binopdf' undefined near line 8, column 6 The 'binopdf' function belongs to the statistics package from Octave Forge which you have installed but not loaded. To load the package, run 'pkg load statistics' from the Octave prompt. Laden Sie einfach das Paket für die Statistikfunktionen, wie in der Fehlermeldung beschrieben. Ein Codebeispiel zur Normalverteilung: clear; close all; clc; x = -4 : .1 : 4; b1 = normpdf(x); b2 = normcdf(x); subplot(121); plot(x, b1); title("normpdf"); grid on; subplot(122); plot(x, b2); title("normcdf"); grid on; Ausgabe: [[Datei:octave_norm111.jpg]] == Zufallszahlengeneratoren == Octave kann Zufallszahlen aus einer großen Anzahl von Verteilungen generieren, z.B. * Chi-Quadrat-Verteilung: chi2rnd * Log-Normal-Verteilung: lognrnd * Normalverteilung: normrnd Codebeispiel: mean = 0; standardabweichung = 1; zufallszahl = normrnd (mean, standardabweichung) Ausgabe (gibt eine Zufallszahl rund um den Mittelwert 0 aus), z.B. zufallszahl = 1.0451 Auch Zufallsvektoren (oder Zufallsmatrizen) können erstellt werden: mean = [0 0 0 0 0]; standardabweichung = 1; zufallsvektor = normrnd (mean, standardabweichung) Ausgabe, z.B.: zufallsvektor = 1.47108 -0.51280 0.52726 0.31730 -1.04422 = Einfache Benutzeroberflächen erstellen= == Input == fflush (stdout); x = input("Gib eine Zahl ein: "); disp(2 * x); Ein-/Ausgabe: Gib eine Zahl ein: 12 24 Der "fflush"-Befehl sollte immer vor dem Aufruf des input-Befehls aufgerufen werden. Näheres zu "fflush" siehe im Octave-Hilfesystem. == Diverse einfache vorgefertigte Dialoge == Fehlermeldung: errordlg("Fehlermeldung"); [[Bild:octave_fehlermeldung1.jpg]] Warnung: warndlg("Warnung"); [[Bild:octave_warnung1.jpg]] Hilfedialog: helpdlg [[Bild:octave_hilfe1.jpg]] Abfragedialog: button = questdlg ("Frage") [[Bild:octave_abfrage1.jpg]] Eingabedialog: in = inputdlg("Eingabe") [[Bild:octave_eingabe1.jpg]] Messagebox: h = msgbox ("Eine Mitteilung!"); [[Bild:octave_messagebox1.jpg]] == Komplexere vorgefertigte Dialogboxen == === Menübox === auswahl = menu("Auswahl", "Affe", "Elefant", "Loewe", "Sonstiges"); switch(auswahl) case 1 disp "Affe quietscht" case 2 disp "Elefant trompetet" case 3 disp "Loewe bruellt" otherwise disp "Sonstiges" end Ausgabe: [[Bild:octave_menu1.jpg]] Es werde beispielsweise die Nummer 2 gewählt. Ausgabe: Elefant trompetet === Dialogliste === clear; close all; clc; opt = {"Eins", "Zwei", "Drei"}; [sel, ok] = listdlg ("ListString", opt, "SelectionMode", "Multiple"); if (ok == 1) for i = 1 : numel(sel) disp(opt{sel(i)}); end else disp("Cancel"); end [[Bild:octave_dialog1.jpg]] Es werden beispielsweise alle Optionen ausgewählt. Ausgabe: Eins Zwei Drei === Fortschrittsbalken === h = waitbar ([0.5]) [[Bild:octave_fortschritt1.jpg]] === Datei- und Verzeichnisdialoge === Dateidialog: [fname, fpath, fltidx] = uigetfile () [[Bild:octave_dateidialog2.jpg]] Ähnlich sind die Befehle "uiputfile" und "uigetdir". Dazu sei auf die Octave-Hilfe verwiesen. == Eigene Dialoge kreieren == Dieses Thema sei hier nur kurz angerissen. Programmcode: d = dialog("Position", [300, 300, 250, 150], "Name", "Dialog"); txt = uicontrol("Parent", d, ... "Style", "text", ... "Position", [20, 80, 210, 40], ... "String", "Hallo Welt"); btn_servus = uicontrol("Parent", d, ... "Position", [30, 20, 80, 30], ... "String", "Servus", ... "Callback", "disp('Servus angeklickt!');"); btn_hallo = uicontrol("Parent", d, ... "Position", [140, 20, 80, 30], ... "String", "Hallo", ... "Callback", "disp('Hallo angeklickt!');"); uiwait(d); Ausgegebenes Dialogfenster: [[Bild:octave_dialog100.jpg]] Ausgabe auf der Konsole (je nach gedrücktem Button), z.B.: Servus angeklickt! Die Position wird als [links, unten, breite, höhe] angegeben. Der Koordinatennullpunkt liegt, bezogen auf das Elternfenster, links unten. Es sind auch negative Koordinatenwerte möglich. Sinnvoll ist das z.B. bei einem dynamischen Ausblenden ohne zu löschen, oder für Animationen. [[Bild:Cartesian-coordinate-system.svg | 150px]] Wer mehr dazu wissen will, sei auf die Octave-Dokumentation verwiesen. Insbesondere siehe * dialog * uicontrol * uipanel * uibuttongroup * uitable * uimenu * uitoolbar == Aufgaben == === Aufgabe 1 === Erzeugen Sie ein Dialogfenster mit einem Texteingabefeld und einem Button. Beim Klicken auf den Button soll der Eingabetext auf der Konsole ausgegeben werden. Das Dialogfenster soll also in etwa so aussehen: [[Bild:octave_dialog105.jpg]] Da dies etwas komplizierter als das oben gezeigte Beispiel ist, werden nachfolgend ein paar Codefragmente zwecks Lösung angegeben: Datei button_callback.m: function button_callback(editHandle) eingegText = get(editHandle, "String"); disp(eingegText); end Codefragement in test1.m: % ... edit = uicontrol(% ... "Style", "edit", ... %, ... "HorizontalAlignment", "left"); btn = uicontrol(% ... "Callback", @(src, event) button_callback(edit)); % ... Aufruf mit: octave test1.m Eingabe von z.B. "Hallo Welt!": [[Bild:octave_dialog106.jpg]] Ausgabe auf der Konsole nach dem Drücken des Buttons: Hallo Welt! === Aufgabe 2 === Erzeugen Sie ein Dialogfenster mit zwei Eingabefeldern und einem Button. Eingegeben in diese zwei Eingabefelder werden vom Benutzer Zahlen. Auf der Konsole ausgegeben werden soll, nach Drücken des Buttons, das Produkt dieser zwei Zahlen. Auch hier werden wieder Codefragemente angegeben. Datei button_callback.m: function button_callback(edit1, edit2) zahl1 = str2double(get(edit1, 'String')); zahl2 = str2double(get(edit2, 'String')); disp(zahl1 * zahl2); end Codefragment Datei test1.m: % ... btn = uicontrol("Parent", d, ... % ... "Callback", @(src, event) button_callback(edit1, edit2)); % ... Was passiert, wenn der Benutzer keine Zahlen, sondern beliebige Strings eingibt? = Fehlerhandling mit try/catch = Die try/catch-Anweisung entspricht weitgehend jener, die aus höheren Programmiersprachen wie C++ oder Java bekannt sind. Aufgebaut ist diese Anweisungsfolge so: try BODY catch CLEANUP end Beispiel: clear; close all; clc; try a = 10 / "zahl"; disp(a); disp("Weiter im try-Block"); catch disp("Catch: Kann nicht durch einen String dividieren"); end Ausgabe: Catch: Kann nicht durch einen String dividieren Sinnvoll ist die try/catch-Folge, wenn z.B. auch in einem Fehlerfall Dateien wieder geschlossen werden sollen. = Ein- und Ausgabe = == Formatierte Ausgabe am Bildschirm, formatiertes Lesen von der Tastatur == Folgendes Beispiel ist der Octave-Hilfe (von Octave 3.0.3) entnommen: pct = 37; filename = "foo.txt"; printf ("Processed %d%% of `%s'.\nPlease be patient.\n", pct, filename); Ausgabe: Processed 37% of `foo.txt'. Please be patient. "printf" gibt einen formatierten String am Bildschirm (genauer in den Stream stdout) aus. Wie man sieht, orientiert sich das Format an der Programmiersprache C. Für das formatierte Lesen vom Stream stdin (normalerweise also von der Tastatur) steht das Pendant "scanf" bereit. == Von einem String lesen bzw. in einen String schreiben == Bezüglich der Funktionen * sprintf und * sscanf sei auf die Octave-Hilfefunktion verwiesen. == Lesen und Schreiben von einer Datei == === Datei schreiben === % Datei c:\tmp\datei.test zum Schreiben öffnen datei = fopen ("c:/tmp/datei.test", "w"); % Etwas in die Datei schreiben fprintf(datei, "Hallo, Welt!"); % Datei schließen fclose(datei); === Datei lesen === % Datei c:\tmp\datei.test zum Lesen öffnen datei = fopen ("c:/tmp/datei.test", "r"); % Etwas aus der Datei lesen [string] = fscanf(datei, "%s"); disp(string); % Datei schließen fclose(datei); Ausgabe: Hallo,Welt! === Dateiende prüfen === Mittels des Befehls feof(FID); kann das Dateiende geprüft werden. Wenn die EOF-Bedingung zutrifft, dann wird 1 zurückgegeben, wenn nicht dann 0. Ein Beispiel folgt später als Lösung einer Aufgabe. === warning und error === Eine Warnung kann man am stderr-Stream ausgeben. Die warning-Funktion entspricht ansonsten der printf-Funktion. Nach Ausgabe der Warnung wird das Programm normal fortgesetzt. m = [1 2 3 6]; if(det(m) == 0) warning("Matrix ist singulaer"); end disp("Weiter geht's"); Ausgabe: warning: Matrix ist singulaer warning: called from test1 at line 5 column 3 Weiter geht's Schärfer ist der error-Befehl. Die Fehlermeldung wird am stderr-Stream ausgegeben. Vom Format her entspricht diese Funktion dem printf-Befehl. Nach Ausgabe der Fehlermeldung wird das Programm beendet. m = [1 2 3 6]; if(det(m) == 0) error("Matrix ist singulaer"); end disp("Weiter geht's"); Ausgabe: error: Matrix ist singulaer error: called from test1 at line 5 column 3 == Aufgaben == * Schreiben Sie ein Programm, das die Zahlen 1 bis 10 zeilenweise in eine Datei ausgibt. * Lesen Sie diese Zeilen wieder von der Datei ein und geben Sie sie am Bildschirm aus. * Gegeben sei eine Datei. Lesen Sie die Daten aus dieser Datei ein und rechnen Sie per Octave-Programm den Gesamtpreis für alle Tiere aus. Die Anzahl der Zeilen und der genaue Dateinhalt sei Ihnen vorab nicht bekannt. Bekannt ist nur das Datenformat wie folgt: Nr. Name Einzelpreis Stueck 1 Affe 15000.50 2 2 Loewe 11000.90 1 3 Nashorn 45000.10 1 4 Elefant 51245.90 3 5 Tiger 9000.70 2 6 Maus 34.90 12 Eine einfache Lösung ohne Schnickschnack (Fehlerüberprüfungen etc.) für dieses Beispiel könnte wie folgt aussehen: clear; close all; clc; datei = fopen ("c:/tmp/daten1.txt", "r"); gesamtpreis = 0; % Kopfzeile einlesen [nr, name, preis, stk] = fscanf(datei, "%s %s %s %s", "C"); while(feof(datei) == 0) % Datensätze einlesen [nr, name, preis, stk] = fscanf(datei, "%d %s %f %d", "C"); gesamtpreis += preis*stk; end fclose(datei); disp("Gesamtpreis = "); format long; disp(gesamtpreis); Ausgabe: Gesamtpreis = 258159.900000000 = Datencontainer = == Datenstrukturen == Pseudocode: STRUKTUR s ZAHL a VEKTOR b STRING c END Octave-Code: s.a = 45.9; s.b = [1 2 3 4 5]; s.c = "Hallo!"; s Ausgabe: s = scalar structure containing the fields: a = 45.90000000000000 b = 1 2 3 4 5 c = Hallo! Um ein paar weitere Möglichkeiten zum Handling mit Datenstrukturen aufzuzeigen, sei folgender Code aufgeführt. Datei addsub.m function res = addsub(a, b) res.x = a + b; res.y = a - b; end Datei test1.m clear; clc; addsub(10, 50) r = addsub(30, 70) r.x r.y ++r.x Ausgabe: ans = scalar structure containing the fields: x = 60 y = -40 r = scalar structure containing the fields: x = 100 y = -40 ans = 100 ans = -40 ans = 101 Die Funktion "addsub" liefert die Struktur res mit zwei Zahlenwerten. Die Elemente der Datenstruktur können auch außerhalb der Funktion angesprochen werden. Auch gerechnet werden kann mit diesen Elementen. == Cell Arrays == Manchmal kann es sinnvoll sein mehrere Variablen verschiedenen Typs und Größe in einer Variablen zu speichern. Dies funktioniert ähnlich wie bei Vektoren. Es werden aber geschweifte Klammern verwendet. Eingabe: c = {"Hallo Welt!", [2 2], 44} c{1} c{1:2} Ausgabe: c = { [1,1] = Hallo Welt! [1,2] = 2 2 [1,3] = 44 } ans = Hallo Welt! ans = Hallo Welt! ans = 2 2 Elemente des Cell Arrays können auch wieder mit Variablen anderen Typs überschrieben werden. c = {"Hallo Welt!", [2 2], 44}; c{1} = 5; c Ausgabe: c = { [1,1] = 5 [1,2] = 2 2 [1,3] = 44 } = Objektorientierte Programmierung = Octave unterstützt auch objektorientierte Programmierung mit dem Schlüsselwort <code>classdef</code> (ab Version 4.0). Dieses Thema ist aber etwas für fortgeschrittene Anwender und wird hier nicht behandelt. Wen es trotzdem interessiert, der sei auf die [https://docs.octave.org/latest/Object-Oriented-Programming.html Octave-Dokumentation] verwiesen. = Octave im Zusammenspiel mit anderen Programmiersprachen = == .oct-Dateien == Eine .oct-Datei in GNU Octave ist eine kompilierte C/C++-Datei, die als dynamisch ladbares Objekt direkt in Octave ausgeführt werden kann. oct-Dateien sind meist schneller als nativer Octave-Code. 1. Schritt: Erstelle z.B. eine C++-Datei ''quadrat.cc'' (es soll das Quadrat einer Zahl berechnet werden) #include <octave/oct.h> DEFUN_DLD(quadrat, args, nargout, "Quadrat einer Zahl berechnen") { double x = args(0).double_value(); double res = x*x; return octave_value(res); } * <code>DEFUN_DLD</code> ist ein Makro. Damit wird angezeigt, dass es sich um eine dynamisch ladbare Funktion handelt. * <code>args</code>: Argumente die beim Aufruf in Octave übergeben werden. 2. Schritt: ''quadrat.cc'' kompilieren # Terminal öffnen # In das quadrat.cc-Verzeichnis wechseln # Octave aufrufen # cc-Datei zu einer oct-Datei kompilieren: <code>mkoctfile quadrat.cc</code> # Wenn das ohne Fehlermeldung durchläuft, so sollte im Anschluss eine (relativ große) ''quadrat.oct''-Datei im entsprechenden Verzeichnis zu finden sein. 3. Schritt: Funktion <code>quadrat()</code> in Octave aufrufen, z.B.: y = quadrat(5) Es ergibt sich folgende Ausgabe: y = 25 Damit das funktioniert, müssen natürlich die entsprechenden Werkzeuge (Compiler etc.) installiert sein. Darauf wird hier aber nicht näher eingegangen. Die Dokumentation zu den .oct-Dateien findet sich auf [https://docs.octave.org/v11.1.0/Oct_002dFiles.html]. == Andere Möglichkeiten == * .mex-Dateien ('''M'''ATLAB '''Ex'''ecutables): Wenn man kompatibel zu MATLAB bleiben muss * Java- oder Python-Schnittstelle (Nachteil: langsamer als .oct-Dateien) Bevor man aber diese Möglichkeiten in Anspruch nimmt, sollte man vektorisieren. Damit lassen sich oft schon höhere Geschwindigkeiten erzielen. Dieses Thema wurde früher schon kurz behandelt. = Octave GUI = Das GUI-Programm ('''G'''raphical '''U'''ser '''I'''nterface) von Octave entspricht im Wesentlichen anderen Programmier-Benutzeroberflächen (IDEs ... '''I'''ntegrated '''D'''evelopment '''E'''nvironments), wie z.B. Eclipse (Java), Code::Blocks (C/C++) oder Spyder (Python). Nachfolgend ist ein Screenshot des Octave-GUI mit einigen Anmerkungen dargestellt. [[Bild:octave_gui2.jpg|600px]] Probieren Sie einfach die Möglichkeiten der zur Verfügung gestellten GUI/IDE aus. = Komplexere Aufgaben = * Berechnen Sie die Fläche, den Umfang, die Seitenlängen, den Inkreis und den Umkreis eines Dreiecks. Stellen Sie das Dreieck inklusive In- und Umkreis grafisch dar. Speichern Sie die Daten in einer Datei. Die drei Eckpunkte dieses Dreiecks sollen vom Benutzer beliebig vorgegeben werden. * Die Werte einer beliebig großen quadratischen Matrix seien in einer Datei gespeichert. Lesen Sie diese Datei ein und berechnen Sie daraus die Determinante der Matrix, die inverse Matrix, die Eigenvektoren und -werte, die Spur. Führen Sie die LR-Zerlegung durch. Geben Sie diese Werte am Bildschirm aus. = Ausblick = Dies war eine kurze Einführung in die Berechnungs- und Darstellungsmöglichkeiten mit Octave. Es sollten etliche relevante Themen behandelt, oder zumindest kurz angesprochen worden sein. Wem dieser Text nicht ausreichend ist, der sei auf die entsprechende weiterführende Literatur, die Octave-Hilfefunktion und die Octave-Dokumentation verwiesen. Octave kennt noch viel mehr Befehle, als hier dargestellt wurden. Aber auch Octave selbst ist erweiterbar. Man siehe z.B. Octave Packages (https://gnu-octave.github.io/packages/) oder man schreibt selbst Erweiterungen. {{Navigation_zurückhochvor_buch| zurücktext=Maxima| zurücklink=Ing Mathematik: Computeralgebrasysteme am Beispiel von Maxima| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Julia für Ingenieure| vorlink=Ing Mathematik: Julia}} cykecfvxg3zhb8vz4v743ztrj43pwe9 1091094 1091090 2026-09-19T15:27:06Z Intruder 1513 /* .oct-Dateien */ 1091094 wikitext text/x-wiki {{Navigation_zurückhochvor_buch| zurücktext=Maxima| zurücklink=Ing Mathematik: Computeralgebrasysteme am Beispiel von Maxima| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Julia für Ingenieure| vorlink=Ing Mathematik: Julia}} = Hallo Welt und allgemeine Hinweise = == Was ist Octave == * Octave ist eine Software zur numerischen Lösung mathematischer Probleme. * Octave ist Open-Source (GPL-Lizenz). * Octave ist für viele Betriebssysteme erhältlich (z.B. für Linux, MS Windows, macOS). * Octave ist weitgehend kompatibel zum Numerik-Standardprogramm {{W|Matlab|MATLAB}}. * Octave ist ein Interpreter. * Octave als Programmiersprache ist case-sensitive - d.h. Groß- und Kleinschreibung ist relevant bei der Eingabe von Befehlen. {{Wikipedia | GNU Octave}} == Octave installieren == === MS Windows === Laden Sie das aktuelle Octave-Paket von der Webseite [https://octave.org/download] herunter. Weiter geht es wie bei jedem anderen größeren zu installierenden Programm. Einfach das Installationsprogramm im Explorer doppelklicken und den Anweisungen des Setup-Programmes folgen. === Linux === Entweder ist Octave bereits standardmäßig installiert, ansonsten ist die Installation mittels Paketmanagementsystem einfach möglich. Dazu gehen Sie auf die Seite [https://wiki.octave.org/Category:Installation], wählen die vorhandene Linux-Variante und folgen der angegebenen Beschreibung (z.B. <code>zypper ... </code> für openSUSE. Oder Sie benutzen unter openSUSE Tumbleweed direkt das Setup-Programm {{W|YaST}}). == Octave starten == === MS Windows === Das Icon für das Octave-Programm doppelklicken (für das Konsolenprogramm ... CLI, für die grafische Benutzeroberfläche ... GUI). Und schon startet das Programm. [[Datei:octavestart1.jpg]] === Linux === In einer Linux-Konsole den Befehl "octave" eintippen, mit der RETURN-Taste bestätigen, und das Programm (CLI) startet: GNU Octave (x86_64-suse-linux-gnu) version 11.1.0 Copyright (C) 1993-2026 The Octave Project Developers. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software; see the source code for copying conditions. There is NO WARRANTY, to the extent permitted by law. For details, type 'warranty'. Home page: <https://octave.org> Support resources: <https://octave.org/support> Improve Octave: <https://octave.org/get-involved> For changes from previous versions, type 'news'. octave:1> Um Octave mit der eingebauten GUI zu starten, kann der Befehl <code>octave --force-gui</code> verwendet werden: [[File:Gnu_Octave_IDE.png|600px]] Alternativ kann, z.B. unter openSUSE Tumbleweed (mit {{W|KDE Plasma 6|KDE-Plasma}}), die Octave-IDE auch über den Application Launcher im Menü ''Education -> GNU Octave'' gestartet werden. == Ein paar Worte zur Erklärung == Im Folgenden wird immer das Konsolenprogramm (CLI ... Command Line Interface) für die Eingabe von Befehlen benutzt. Erst gegen Ende dieses Textes wird auch kurz auf das GUI von Octave eingegangen. Teilweise werden Ergebnisse der älteren Octave-Version 3.0.3 dargestellt. Die dargestellten Grafiken und Ausgabetexte können je nach Version leicht voneinander abweichen. Der Text wurde ursprünglich mit der Octave-Version 3.0.3 erstellt und anschließend auf die Versionen 5.2 bis 11.1.0 aktualisiert. Dieser Mischmasch sollte aber kein Problem darstellen. Getestet wurden die Beispiele ursprünglich unter dem Betriebssystem MS Windows 10, später auch mit MS Windows 11, bzw. mit openSUSE Leap 15.6 (Octave 6.4.0, nur vereinzelt) und ab März 2026 auch mit openSUSE Tumbleweed (ab Octave 10.3.0, nur vereinzelt). == Ein erstes Programm == Kommentare werden in Octave mit dem Prozentzeichen (%) oder alternativ mit der Raute (#) eingeleitet. Sie werden vom Octave-Interpreter ignoriert. Will man kompatibel mit MATLAB bleiben, so ist die Version mit dem %-Zeichen vorzuziehen. Text kann mit der disp-Funktion ausgegeben werden. Starten Sie Octave und geben sie folgende Anweisungen zeilenweise ein octave-3.0.3.exe:1> % Das ist ein Kommentar octave-3.0.3.exe:2> # und das auch octave-3.0.3.exe:3> disp "Hallo Welt!" Als Ergebnis erhalten Sie Hallo Welt! Der Prompt (z.B. octave-3.0.3.exe:1>) ist natürlich abhängig von der Octave-Version und den schon eingegebenen Zeilen. Er ist selbstverständlich nicht einzutippen, sondern wird vom Octave-System geliefert. Strings können in Octave entweder in Anführungszeichen (") gesetzt werden oder in Hochkommatas('). In diesem Text wird die erste Variante bevorzugt eingesetzt. = Octave als Taschenrechner = == Allgemeines == Wir wollen 3 * 5 berechnen. Dazu starten wir Octave. Geben Sie dann die Formel octave-3.0.3.exe:1> 3 * 5 ein, drücken die Taste ENTER/RETURN und erhalten als Ergebnis ans = 15 Auch kompliziertere Ausdrücke sind möglich. Beispielsweise mit Winkelfunktionen, Quadratwurzeln etc. Wir wollen nun den Ausdruck <math>\sin\sqrt{15}</math> berechnen : octave-3.0.3.exe:2> sin(sqrt(15)) ans = -0.6679 Octave kennt eine Handvoll von Konstanten, z.B.: Zeilenweise Eingabe: % Die Kreiszahl PI pi % Die Eulersche Zahl e % Zur Maschinengenauigkeit eps Ausgabe: ans = 3.1416 ans = 2.7183 ans = 2.2204e-016 "ans" steht übrigens für den Begriff "answer" (auf Deutsch "Antwort"). Mit "ans" kann wie mit jeder anderen Variable oder Konstanten weitergerechnet werden, z.B.: Eingabe: % Der Kreisradius sei 10 10 % Der Kreis-Umfang mit diesem Radius sei folgendes 2 * pi * ans Ausgabe: ans = 10 ans = 62.832 Die Ausgabe eines Befehls am Bildschirm (das "Echo") kann übrigens durch Anwendung des Semikolons (;) unterdrückt werden. Gezeigt werden soll dies nun mit Hilfe des obigen Beispiels. Es soll nur der Umfang ausgegeben werden, nicht der Radius. Eingabe: % Der Kreisradius sei 10 10; % Der Kreis-Umfang mit diesem Radius sei folgendes 2 * pi * ans Ausgabe: ans = 62.832 Vielleicht ist manchem die Genauigkeit, mit der Echo bzw. der Befehl disp Werte ausgibt, nicht ausreichend. Dem kann Abhilfe verschafft werden und zwar so: Eingabe: format short pi format long pi format longe pi % usw. Ausgabe: ans = 3.1416 ans = 3.14159265358979 ans = 3.14159265358979e+00 Beenden lässt sich das Octave-Programm durch Eingabe von quit oder exit (und natürlich zur Bestätigung die RETURN-Taste drücken). == Die Hilfefunktion von Octave == Die Eingabe von help mit Angabe eines Funktionsnamens liefert detaillierte Infos zu der gesuchten Funktion. Eingabe: help sin Ausgabe: 'sin' is a built-in function from the file libinterp/corefcn/mappers.cc -- Y = sin (X) Compute the sine for each element of X in radians. See also: asin, sind, sinh. Additional help for built-in functions and operators is available in the online version of the manual. Use the command 'doc <topic>' to search the manual index. Help and information about Octave is also available on the WWW at https://www.octave.org and via the help@octave.org mailing list. Auch gibt es die doc-Funktion für eine vollständige Dokumentation des Octave-Systems, z.B.: Eingabe: doc Ausgabe: [[Datei:Octave_730_doc_screenshot.jpg]] == Sonstige einfache Berechnungen == In octave gibt es eine "umgekehrte" Division: 11 / 2 % normale Division (Rechtsdivision) 11 \ 2 % umgekehrte Division (Linksdivision) Ausgabe: ans = 5.5000 ans = 0.1818 Potenzieren kann man so: 12^5 Ausgabe: ans = 248832 Den Modulo-Operator % wie in C/C++, Java oder Python gibt es in Octave '''nicht'''. Das Prozentzeichen ist dem Kommentar vorbehalten. Man kann aber eine Funktion hierfür benutzen y = mod(20, 3) Ausgabe: y = 2 Runden mit und auf Ganzzahlen kann man in Octave so: a = int32(10); b = int32(3); x = a / b y = int32(15) / int32(4) Ausgabe: x = 3 y = 4 Siehe dazu aber auch die Funktionen <code>floor</code>, <code>ceil</code> und <code>idivide</code>. Mittels <code>int32()</code> werden Zahlen als 32-Bit-Ganzzahlen dargestellt. Standardmäßig ist der Datentyp nämlich <code>double</code>. Das ist zu beachten, es ergeben sich unterschiedliche Ergebnisse. Beispiel: clear(); a = int32(10); b = int32(3); x = a / b c = 10; d = 3; y = c / d whos() Ausgabe: x = 3 y = 3.3333 Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 4 int32 b 1x1 4 int32 c 1x1 8 double d 1x1 8 double x 1x1 4 int32 y 1x1 8 double Total is 6 elements using 36 bytes Ist der Wertebereich von <code>int32</code> zu klein (4 Bytes, <math>-2^{31}</math> bis <math>2^{31} - 1</math>), so gibt es auch <code>int64</code> (8 Bytes, <math>-2^{63}</math> bis <math>2^{63} - 1</math>). <code>clear</code> löscht Namen und gibt den Speicherplatz wieder frei. <code>whos()</code> liefert detaillierte Informationen der aktuell definierten Variablen. == Aufgaben == * Berechnen Sie mit Octave den Ausdruck <math>\frac{1}{2}\cdot e^2 \cdot \tan(\pi/3)</math>. * Berechnen Sie mit Octave den Ausdruck <math>2\; \text{cosd}(60) - 3\sin(\pi/5)</math>. Anmerkung: cosd erwartet den Parameter im Gradmaß (d für "degree"), sin erwartet den Parameter im Bogenmaß. * Erkunden Sie die Fehlerfunktion "erf" mittels Octave-Hilfe. * Welche Zahl ergibt sich durch <code>3 / 4 \ 2</code>? * Welche Zahlen werden durch die folgenden Anweisungen ausgegeben? idivide(int32(10), int32(3), "fix") idivide(int32(10), int32(3), "round") idivide(int32(10), int32(3), "floor") idivide(int32(10), int32(3), "ceil") floor(10.3) ceil(10.3) = Octave als Scriptsprache = Häufig wird man aber kompliziertere Anweisungsfolgen verarbeiten müssen. Diese will man normalerweise nicht jedesmal neu eingeben, sondern in einer Datei speichern und diese Datei dann zur Ausführung bringen. Speichern Sie dazu folgenden Code in einer Textdatei, z.B. unter MS Windows als c:\tmp\test1.m % Das ist ein Kommentar # und das auch disp "Hallo Welt!" Skriptdateien müssen mit der Dateiendung .m versehen werden. In der Octave-Konsole fügen Sie den Dateipfad mittels octave-3.0.3.exe:1> addpath("c:/tmp") hinzu (es ist der UNIX-spezifische Slash (/) zu benutzen). Alternativ können Sie zumindest unter MS Windows auch einen Doppel-Backslash (\\) einsetzen. Oder Sie wechseln mittels <code>cd c:/tmp</code> direkt ins Verzeichnis <code>c:/tmp</code>. Danach bringen Sie die Skriptdatei test1.m (sozusagen das Hauptprogramm) zur Ausführung octave-3.0.3.exe:2> test1 Achtung: Die Datei (die Funktion oder das Hauptprogramm) ist in der Octave-Kommandozeile ohne .m-Dateiendung anzugeben. Wie erwartet ergibt sich folgende Ausgabe am Bildschirm Hallo Welt! Zumindest unter Linux können Sie z.B. auch komfortabel den {{W|Shebang|Shebang}} (<code>#!</code>) nutzen. Gegeben sei das Octave-Script #!/usr/bin/octave disp("Hallo Welt!"); Gepeichert sei es ebenfalls als <code>test1.m</code>. Starten Sie ein Terminal, wechseln Sie in das entsprechende Arbeitsverzeichnis und geben Sie ./test1.m ein, so erhalten Sie wieder Hallo Welt! als Ausgabe auf dem Terminal. Die Zugriffsberechtigung muss natürlich mittels <code>chmod</code> richtig gesetzt werden. Oder Sie führen direkt Octave mit der Datei <code>test1.m</code> aus: octave test1.m Sie sehen, mehrere Wege führen zum Ziel. == Blockkommentare == In neueren Octave-Versionen ab dem Jahr 2009 sind auch Blockkommentare möglich. Blockkommentare werden wie normale Kommentare vom Octave-Interpreter ignoriert. %{ Das ist ein Blockkommentar %} #{ und das auch #} == Variablen == Variablenbezeichner können aus Buchstaben (A-Za-z), Ziffern (0-9) und Underscores (_) bestehen, dürfen aber nicht mit einer Zahl beginnen. Gültige Variablenbezeichner wären also: xyz x1 _wert name_anzahl Da Octave case-sensitiv ist, repräsentieren folgende Bezeichner verschiedene Variablen: xyz XYZ xYz Werte werden an Variablen mittels Gleich-Zeichen (=) zugewiesen. Im Folgenden wird der Code immer in der Datei c:\tmp\test1.m gespeichert. x = 5 y = 10 z = x*y Bringen Sie die Datei test1.m zur Ausführung, so erhalten Sie folgende Bildschirmausgabe x = 5 y = 10 z = 50 Normalerweise will man aber nur z anzeigen, die Werte von x und y sind ja bereits bekannt. Dazu fügen Sie an den Anweisungsenden, wie bereits weiter oben erwähnt, bei x und y jeweils ein Semikolon (;) an, um das Anweisungsende explizit zu markieren. x = 5; y = 10; z = x*y Nun erhalten Sie als Ergebnis nur noch z = 50 Sie können auch mehrere Anweisungen in einer Zeile durch Semikolon getrennt schreiben. x = 5; y = 10; z = x*y Ausgabe: z = 50 Auch aus der Programmiersprache C/C++ oder Java bekannte Konstrukte können Sie verwenden, z.B. x = 5; % inkrementiere x ++x % x = x - 2 x -= 2 Bildschirmausgabe: ans = 6 x = 4 Beachten Sie, dass mit dem =-Zeichen eine Wertezuweisung durchgeführt wird. Dies ist nicht äquivalent zum mathematischen =-Zeichen, wie am vorigen Beispiel zu ersehen ist. Soll eine Anweisung auf mehrere Zeilen verteilt werden, z.B. weil sie zu lang ist, so kann dies durch Verwendung von drei Punkten (...) geschehen, wie nachfolgend dargestellt. x = 5; y = 1000 * x + ... sin(x/2) Ausgabe: y = 5000.6 Diese Drei-Punkte-Methode soll nicht für in Anführungszeichen (") eingeschlossene Strings verwendet werden. Diese Methode ist seit geraumer Zeit "deprecated" und funktioniert mit der Version 9.1.0 gar nicht mehr. Benutzen Sie statt dessen den Backslash (\): txt = "xxxxxxxxxxxxxxxxxxxx\ yyyyyyyyyyyyyyyyy" Ausgabe: txt = xxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyy Variablen sind nicht an einen bestimmten Datentyp gebunden, folgendes ist in Octave problemlos möglich: wert = 10 wert = 35.5 wert = "Hallo" wert = pi Ausgabe: wert = 10 wert = 35.500 wert = Hallo wert = 3.1416 Der Befehl <code>who</code>, bzw. <code>whos</code> listet die gegenwärtig definierten Variablen, z.B.: clear; a = 10.5; v = [1 2 3 4 5 12 13]; m = ["s1", "s2"; "s3", "s4"]; disp "***** Der Befehl who *****" who disp "***** Der Befehl whos *****" whos Ausgabe: ***** Der Befehl who ***** Variables visible from the current scope: a m v ***** Der Befehl whos ***** Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 8 double m 2x4 8 char v 1x7 56 double Total is 16 elements using 72 bytes ==Hexadezimale und binäre Zahlen== % Hexadezimale Zahl disp( 0xABC ) % Binäre Zahl disp( 0b1000011 ) Ausgabe (als Dezimalzahlen): 2748 67 Octave kann auch dezimale in binäre Zahlen etc. umwandeln: dec2bin( 214 ) Ausgabe: ans = 11010110 Siehe dazu in der Octave-Hilfe auch folgende Funktionen: bin2dec, dec2base, dec2hex, hex2dec, base2dec == Zahlenkolonnen == Eine Zahlenkolonne (oder ein Vektor) mit gleichen Abständen der Werte kann folgendermaßen erzeugt werden: % a ... Startwert % b ... Schrittweite % c ... Endwert a = 0; b = 10; c = 100; x = a : b : c; disp(x); Ausgabe: 0 10 20 30 40 50 60 70 80 90 100 Ähnliche Resultate lassen sich auch durch Anwendung der linspace-Funktion erhalten, z.B.: % a ... Startwert % b ... Endwert % c ... Anzahl der Werte a = 0; b = 100; c = 11; v = linspace(a, b, c) Ausgabe: v = 0 10 20 30 40 50 60 70 80 90 100 == Verzweigungen == === Die IF-Verzweigung === Die IF-Verzweigung ist aus anderen Programmiersprachen bereits bekannt. In Pseudocode lässt sie sich folgendermaßen darstellen: WENN bedingung TRUE führe block1 aus SONST führe block2 aus ENDE Die test1.m-Datei laute also wie folgt: x = 5; if x < 4 disp "x ist kleiner als 4"; else disp "Der else-Zweig wird ausgefuehrt"; disp "x ist groesser oder gleich 4"; end Ausgabe: Der else-Zweig wird ausgefuehrt x ist groesser oder gleich 4 Octave kennt eine Reihe von Vergleichs- und Verknüpfungsoperatoren: * <, <= ... kleiner (gleich) * >, >= ... größer (gleich) * == ... gleich * ~=, != ... ungleich * &, && ... AND * |, || ... OR * ~, ! ... NOT Beispielsweise: a = 5; b = 9; if a<=10 & b!=7 disp("OK"); else disp("Nicht OK"); end Ausgabe: OK === Die SWITCH-Verzweigung === In Pseudocode: WECHSLE ZU var FALLS wert1 == var führe block1 aus FALLS wert2 == var führe block2 aus ... SONST führe blockn aus ENDE Eine Beispielsimplementierung in Octave könnte so aussehen: x = "g"; switch(x) case "k" disp("klein"); case "g" disp("gross"); otherwise disp("sonstiges") end Ausgabe: gross Anmerkungen für C-Programmierer: * in Octave darf zum Abschluß von ''case'' kein Doppelpunkt folgen (würde einen Syntaxfehler auslösen). * ein ''break'' als Abschluß eines ''case''-Blocks ist nicht erlaubt (würde in Octave einen parse error auslösen). ''break'' ist Schleifen vorbehalten. ''switch'' hat in Octave keinen "Durchfall" und ähnelt somit eher der Fortran-Anweisung ''select case''. Mehrere Fälle in einem ''case'' können wie nachfolgend behandelt werden: x = "K"; switch(x) case {"k" "K"} disp("klein"); case {"g" "G"} disp("gross"); otherwise disp("sonstiges") end Ausgabe: klein == Schleifen == === Die WHILE-Schleife === Die WHILE-Schleife ist kopfgesteuert. Sie funktioniert wie aus anderen Programmiersprachen bekannt. In Pseudocode: SOLANGE bedingung TRUE führe block aus ENDE In Octave: x = 0; while x <= 10 disp(x); x++; end Ausgabe: 0 1 2 3 4 5 6 7 8 9 10 === Die DO-UNTIL-Schleife === Die DO-UNTIL-Schleife ist fußgesteuert. Beachte: Diese Schleife ist nicht äquivalent zu der aus anderen Programmiersprachen bekannten DO-WHILE-Schleife. DO-WHILE bedeutet "TUE SOLANGE", DO-UNTIL bedeutet "TUE BIS". Sie wird mindestens einmal ausgeführt. Pseudocode: TUE führe block aus BIS bedingung TRUE Mittels Octave: x = 0; do disp(x); x++; until(x >= 5) Ausgabe: 0 1 2 3 4 === Die FOR-Schleife === for x = 0 : 2 : 10 disp(x); end Ausgabe: 0 2 4 6 8 10 Der FOR-Schleifenkopf ist in Form einer Zahlenkolonne folgendermaßen aufgebaut: for variable = startwert : schrittweite : endwert Man beachte, dass Vektorisierung gegenüber einem Schleifendurchlauf eine erhebliche Zeiteinsparung bewirken kann (man siehe in der [https://docs.octave.org/latest/Vectorization-and-Faster-Code-Execution.html Octave-Dokumentation das Kapitel 19 "Vectorization and Faster Code Execution"]). Folgendes Beispiel ist an genanntes Octave-Kapitel angelehnt. Zuerst wird eine Berechnung mittels Schleifendurchlauf durchgeführt und der Zeitbedarf ausgegeben. Dieser Zeitbedarf hängt natürlich auch von der verwendeten Hardware etc. ab. Eingabe: n = m = 500; a = b = eye(500); t1 = time(); for i = 1:n for j = 1:m c(i,j) = a(i,j) + b(i,j); endfor endfor t2 = time(); t_diff = t2-t1 Ausgabe: t_diff = 3.7566 Der Zeitverbrauch beträgt hier also ca. 4 Sekunden. Im Gegensatz dazu Eingabe: a = b = eye(500); t1 = time(); c = a + b; t2 = time(); t_diff = t2-t1 Ausgabe: t_diff = 1.5974e-05 ist der Zeitverbrauch hier sehr gering. Vektoren und Matrizen werden etwas später in diesem Text detailliert behandelt. Hier nur soviel: Mittels ''eye'' wird eine Einheitsmatrix kreiert. === Schleifen abbrechen === Zum Abbrechen einer Schleife gibt es den Befehl "break". for var = 0 : 1 : 100 disp (var); if var == 5 break; end end Ausgabe: 0 1 2 3 4 5 "continue" setzt mit dem nächsten Schleifendurchlauf fort, z.B. for var = 0 : 1 : 10 if var == 5 continue; end disp (var); end Ausgabe: 0 1 2 3 4 6 7 8 9 10 == Aufgaben == * Berechnen Sie die Summe der ersten 10000 natürlichen Zahlen (bei 1 beginnend) ** in Form einer WHILE-Schleife ** in Form einer DO-UNTIL-Schleife ** in Form einer FOR-Schleife ** mittels sum-Befehl (siehe dazu auch die von Octave zur Verfügung gestellte Hilfefunktion). ** mittels gaußscher Summenformel (<math>\sum_{i=1}^n{i} = 1+2+...+n = n(n+1) / 2</math>) * Schreiben Sie für obige Alternativen Programme mit denen der Zeitbedarf der Schleifen, Befehle bzw. Formeln gemessen werden kann. Welche Alternativen sind aus Zeitgründen (minimale Laufzeit) empfehlenswert? = Grafiken zeichnen = == 2D == === Graph einer Funktion === Es soll die cosh-Funktion im Intervall <math>x\in[-3,3]</math> gezeichnet werden. Der Programmcode lautet in der einfachsten Form: x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; Ausgabe: [[Datei:octave_cosh.jpg]] Der Code ist quasi selbsterklärend. x läuft von -3 bis +3. y wird für jeden x-Wert per Formel ausgerechnet. "plot" ist der Zeichenbefehl. "grid on" schaltet ein Zeichengitter ein. Die Schrittweite 0.1 wurde so gewählt, um einen ausreichend glatten Verlauf des Graphen zu gewährleisten. Das ist immer ein Kompromiss zwischen Berechnungszeit und Ansehnlichkeit. Testen Sie einfach ein paar verschiedene Werte, um ein Gefühl dafür zu zu bekommen. Sie könnten nun auf die Idee kommen, obiges Script unter Linux mit der Shebang-Zeile zu erweitern, um es direkt als Programm auszuführen. #!/usr/bin/octave x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; Die Enttäuschung folgt auf dem Fuß. Außer einem kurzen Aufblinken des Grafikfensters ist nicht viel zu sehen. Das Programm läuft einfach durch und wird nach der letzten Anweisung beendet. Abhilfe kann z.B. der <code>input</code>-Befehl schaffen: #!/usr/bin/octave x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; refresh(); input("Zum Beenden RETURN-Taste drücken"); Das Programm wartet somit, bis Sie im Terminal die RETURN-Taste drücken. <code>refresh()</code> dient dazu, das Grafikfenster unmittelbar zu aktualisieren. Sonst würde das Ausgabefenster leer bleiben, bis es durch externe Anreize aktualisiert wird (z.B. durch Fenster minimieren/maximieren). Gleiches gilt für die <code>octave test1.m</code>-Variante. Ein etwas komplexeres Beispiel ist Folgendes x = -3 : .1: 3; y = cosh(x) + 2.^x; plot(x,y); grid on; Man beachte den Punkt bei 2.^x (2 hoch x). Vergisst man den Punkt, dann erhält man eine Fehlermeldung (ähnlich dieser): error: for x^y, only square matrix arguments are permitted and one argument must be scalar. Use .^ for elementwise power. error: called from test1 at line 2 column 3 Ausgabe: [[Datei:octave_cosh2.jpg]] Der Funktionsgraph kann auch als Fläche eingefärbt werden: x = -3 : .1: 3; y = cosh(x) + 2.^x; fill (x, y, "b"); Ausgabe: [[Datei:octave_cosh3.jpg | 500px]] === Graphen mehrerer Funktionen und weiteres === Mehrere Graphen lassen sich folgendermaßen in ein Fenster zeichnen: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, x,y2); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Bild:octave_cosh14.jpg|600px]] Um die Linienstile etwas individueller zu gestalten, ist folgender Programmcode gedacht: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1,"*r", x,y2,"ob"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Datei:octave_cosh4.jpg]] Bei plot kann auch der Linienstil des jeweiligen Graphen angegeben werden, z.B. steht * für Sternchenlinie o für Kreise in der Linie r für rot b für blau Ein ähnliches Resultat liefert der Code: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, "Color", "red", "*", x,y2, "Color", "blue", "o"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; Will man mehrere Graphen in ein Fenster zeichnen, aber nicht alles in einen plot-Befehl quetschen, so kann die "hold on"-Anweisung die Lösung des Problems sein: %Lösche alle benutzerdefinierten Variablen aus der Symboltabelle clear; %Schließe alle Fenster close all; %Lösche Konsolenfenster und setze Cursor zurück clc; x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, "Color", "red"); hold on; plot(x,y2, "Color", "blue"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Datei:octave_coshsin1.jpg]] Bei diesem Program wurden auch einige Möglichkeiten (clear, close, clc) gezeigt, um das System aufzuräumen. Ein "hold off" würde natürlich die hold-Funktion wieder ausschalten. === Funktion in Parameterdarstellung === Es soll die archimedische Spirale <math>x = t \cos(t), y = t \sin(t)</math> im Intervall <math>[0, 6\pi]</math> gezeichnet werden. clear; close all; clc; t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y); grid on; [[Datei:octave_spirale1.jpg]] Diese Darstellung erscheint verzerrt. Will man gleiche Achsenskalierungen, so kann man den axis-Befehl verwenden (axis muss nach plot erscheinen). t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y); grid on; axis equal; [[Datei:octave_spirale222.jpg]] === Strichstärke === Für manche Zwecke ist es sinnvoll die Strichstärke des Graphen zu erhöhen. Dies kann über den Parameter "LineWidth" der plot-Funktion geschehen. t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y, "LineWidth", 2); grid on; axis equal; Ausgabe: [[Datei:octave_spirale3.jpg]] === Beliebigen Text ausgeben === x = -10:0.1:10; plot (x, sin (x), "LineWidth", 2); text (2.7, 0.8, "Das ist die sin-Funktion"); Ausgabe: [[Datei:octave_text1.jpg]] === Logarithmische Achseneinteilung === x = -3 : .1: 3; y = cosh(x) + 2.^x; % Halblogarithmische Darstellung semilogy(x,y); grid on; Ausgabe: [[Datei:octave_semilog1.jpg]] Auch die x-Achse kann mit "semilogx" logarithmisch skaliert werden. Mit "loglog" werden beide Achsen logarithmisch skaliert. === Aufgaben === * Zeichnen Sie die Strophoide <math>x = \frac{a(t^2-1)}{t^2+1}, y = \frac{at(t^2-1)}{t^2+1}, a = 2, -3 \leq t \leq 3</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_strophoide.jpg]] * Zeichnen Sie die verschlungene Hypozykloide <math>x = (R-r)\cos t + c\cos\frac{R-r}{r}t, y = (R-r)\sin t - c\sin\frac{R-r}{r}t, c = 3, r = 2, R = 6, -15 \leq t \leq 15</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_hypozykloide.jpg]] * Testen Sie bei den obigen Übungsaufgaben verschiedene Linienstile und Farben (Hinweis: Siehe dazu auch die Octave-Hilfefunktion für den plot-Befehl). * Testen Sie bei den obigen Übungsaufgaben verschiedene Werte für a, c, r und R. * Erkunden Sie in der Octave-Hilfe den ezplot-Befehl. == 3D == === Räumliche Kurven === Mittels "plot3" lassen sich Raumkurven zeichnen. t = 0 : .1 : 9*pi; x = cos(t); y = sin(t); z = 1.3 .^ t; plot3(x,y,z); grid on; [[Datei:octave_raumkurve1.jpg]] === Flächen === ==== ezsurf ==== Die wahrscheinlich einfachste Möglichkeit 3D-Flächen zu erzeugen, besteht in der Verwendung des ezsurf-Befehls. Beachten Sie beim folgenden Beispiel auch wieder den Punkt beim Multiplikationssymbol (elementweise Multiplikation soll verwendet werden, keine Matrizenmultiplikation) in der anonymen Funktion. Was eine anonyme Funktion ist, wird weiter hinten in diesem Text kurz erklärt. Fürs Erste reicht es zu wissen, dass die Funktion f(x, y) jeweils im Intervall [0, 10] gezeichnet werden soll. clear; close all; clc; clf; f = @(x, y) sin(x) + 3.*cos(y); ezsurf (f, [0, 10]); [[Bild:octave_ezsurf1.jpg|600px]] Dieses Bild wurde mit der Octave-Version 5.2 erstellt. Es ist im Prinzip identisch zu jenen des folgenden Abschnitts, die mit der Version 3.0.3 erstellt wurden, nur die Farbschattierung ist anders. Ändern lässt sich diese Eigenschaft mit dem colormap-Befehl (siehe auch Octave-Hilfe): clear; close all; clc; clf; colormap(hot); f = @(x, y) sin(x) + 3.*cos(y); ezsurf (f, [0, 10]); [[Bild:octave_colormap_hot.jpg|600px]] ==== surf und mesh ==== Für das Zeichnen von Flächen existiert der surf-Befehl. Der meshgrid-Befehl kreiert ein Netz in der xy-Zeichenebene. Beachten Sie beim folgenden Beispiel auch wieder den Punkt beim Multiplikationssymbol der Formel für z. x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); surf(x_grid, y_grid, z); [[Datei:octave_flaeche1.jpg]] Auch ein Farbstreifen kann via "colorbar" zur Grafik hinzugefügt werden. x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); surf(x_grid, y_grid, z); colorbar("East"); [[Datei:octave_flaeche2.jpg]] Das Ganze in Netzdarstellung läßt sich so programmieren: x = 0 : .2 : 10; y = 0 : .2 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); mesh(x_grid, y_grid, z); Ausgabe: [[Datei:octave_mesh1.jpg]] ==== Ellipsoide und Kegel ==== Für das Zeichnen von Kugeln oder Ellipsoiden stellt Octave den "sphere"-Befehl bzw. den "ellipsoid"-Befehl zur Verfügung. clear; close all; clc; % Ellipsoiden zeichnen [x, y, z] = sphere(30); surf(5*x, 4*y, 3*z); hold on; [x, y, z] = ellipsoid(5, 5, 5, 6, 3, 2, 30); surf(x, y, z); axis equal; [[Bild:octave_ellipsoid2.jpg|600px]] Für Zylinder und Kegel ist der "cylinder"-Befehl zuständig. clear; close all; clc; % Kegel und Zylinder zeichnen [x, y, z] = cylinder([1 2], 100); surf(x, y, z*3); hold on; [x, y, z] = cylinder([0.5 0.5], 50); surf(x+3, y, z*2); axis equal; [[Bild:octave_cylinder2.jpg|600px]] === Aufgaben === * Zeichnen Sie die räumliche Kurve <math>x = 2 \cdot \cosh(t)</math>, <math>y = 5 \cdot \sin(t)</math>, <math> z = t^{2} - t</math>, <math>0 \leq t \leq 3\pi</math>. Das Ganze sollte etwa wie folgt aussehen: [[Datei:octave_kurve10.jpg]] * Zeichnen Sie die Fläche <math>z = \log(x) + \cos(y)</math>. Das Ganze sollte etwa wie folgt aussehen: [[Datei:octave_flaeche10.jpg]] == Weiteres == === subplot === Zeichnen mit Untergrafiken: Hier wird z.B. ein Fenster mit drei Untergrafiken gezeichnet. Eingabe: t = 0 : .5 : 10; [x_grid, y_grid] = meshgrid(t, t); subplot(311); surf(x_grid, y_grid, sin(x_grid) + cos(y_grid) ); subplot(312); surf(x_grid, y_grid, sin(x_grid) + log(y_grid) ); subplot(313); surf(x_grid, y_grid, x_grid + cos(y_grid) ); Ausgabe: [[Datei:octave_subplot2.jpg]] Die dreistellige Ziffer beim subplot-Befehl bedeutet folgendes: * Die erste Ziffer ist die Zeilenanzahl * Die zweite Ziffer ist die Reihenanzahl und * Die dritte Ziffer ist der Index. Nun sei ein Beispiel mit 3x2-Untergrafiken angeführt. clear; close all; clc; x = 0 : .1 : 10; subplot(321); plot(x, sin(x)); text(2, -0.5, "Index 1"); subplot(322); plot(x, tan(x)); text(2, 2, "Index 2"); subplot(323); plot(x, cosh(x) ); text(2, 3000, "Index 3"); subplot(324); plot(x, gamma(x) ) text(2, 100000, "Index 4"); subplot(325); plot(x, log(x) ); text(2, 0, "Index 5"); subplot(326); plot(x, exp(x) ); text(2, 10000, "Index 6"); Ausgabe: [[Datei:octave_subplot3.jpg]] Hier ist sehr gut zu sehen, in welcher Reihenfolge der Index läuft. === figure === Zeichnen in verschiedene Fenster, z.B. clear; close all; clc; x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); figure(1) surf(x_grid, y_grid, sin(x_grid) + cos(y_grid)); figure(2) surf(x_grid, y_grid, sin(x_grid) + log(y_grid)); Ausgabe: [[Datei:octave_figure111.jpg|700px]] === Linien zeichnen === Zeichnen Sie eine Linie von der Koordinate [-15, 0] zu [15, 5]: clear; close all; clc; x = line([-15 15], [0, 5], "Color", "black", "LineWidth", 2); Ausgabe: [[Datei:octave_linie1.jpg]] Man beachte, dass Octave nicht Punkte P1(x1, y1), P2(x2, y2) erwartet, sondern einen x-Vektor [x1 x2] und einen y-Vektor [y1 y2]. Ein allgemeines Viereck wird z.B. mit folgendem Befehl gezeichnet. line([-15 15 10 -5, -15], [0, 5, 20, 15, 0], "LineWidth", 2); [[Datei:octave_viereck2.jpg]] Auch dreidimensionale Formen lassen sich mit dem line-Befehl zeichnen: clear; close all; clc; line([-15 15 10 -5, -15], [0, 5, 20, 15, 0], [10, 20, 30, 40, 50], "LineWidth", 2); [[Datei:octave_dreidim2.jpg]] === Aufgaben === * Zeichnen Sie mittels "subplot" die Funktionsgrafen <math>y_1=\tan(x), y_2=\tan(2x), y_3=\tan\sqrt x, y_4=x\cdot \tan(x)</math> in folgender Form in ein Fenster: ** in 2x2-Darstellung ** in 1x4-Darstellung. * Zeichnen Sie die im obigen Beispiel angegebenen Funktionsgrafen mittels "figure" jeweils in ein eigenes Fenster. = Vektoren und Matrizen = == Vektoren == Vektoren sollten jedem aus der Linearen Algebra bekannt sein. === Zeilen- und Spaltenvektoren === % Ein Zeilenvektor v1 = [1, 2, 3] % Ein Spaltenvektor v2 = [6; 7; 8] Ausgabe: v1 = 1 2 3 v2 = 6 7 8 Alternative Schreibweisen: % Ein Zeilenvektor v1 = [1 2 3] % Ein Spaltenvektor v2 = [6 7 8] Die Ausgabe entspricht der obigen Darstellung. === Zugriff auf Vektorelemente === Nachfolgend seien einige Zugriffsmöglichkeiten auf die einzelnen Vektorelemente erläutert. Auf ein einzelnes Element kann via Index zugegriffen werden. Der Index startet bei 1: v1 = [1 2 4 8 16]; v2 = v1(3) Ausgabe: v2 = 4 Mehrere Elemente werden folgendermaßen angesprochen: v1 = [1 2 4 8 16]; v2 = v1(3:4) Ausgabe: v2 = 4 8 Liefere den Teilvektor von einem gegebenen Index bis zum letzten Element: v1 = [1 2 4 8 16]; v2 = v1(3:end) Ausgabe: v2 = 4 8 16 === Addition und Subtraktion von Vektoren === v1 = [1, 2, 3]; v2 = [5, 7, 9]; res = v1 + v2 res = v1 - v2 Ausgabe: res = 6 9 12 res = -4 -5 -6 === Multiplikation mit Skalaren === faktor = 3; v = [1, 2, 3]; res = faktor * v Ausgabe: res = 3 6 9 === Skalarprodukt === Das Skalarprodukt ist bekanntermaßen als <math>v_1 \cdot v_2 = |v_1| |v_2| \cos(\angle(v_1, v_2))</math> definiert. In Octave sieht das so aus: v1 = [1, 2, 3]; v2 = [5, 6, 7]; res = dot(v1, v2) Ausgabe: res = 38 === Vektorprodukt === v1 = [1, 2, 3]; v2 = [5, 6, 7]; res = cross(v1, v2) Ausgabe: res = -4 8 -4 Enger an die mathematische Darstellung lehnt sich folgender Code an. Die zu multiplizierenden Vektoren seien in Form von Spaltenvektoren gegeben. Mathematisch: <math>a\ast b=\left(\begin{array}{c} a_{1}\\ a_{2}\\ a_{3} \end{array}\right)\ast\left(\begin{array}{c} b_{1}\\ b_{2}\\ b_{3} \end{array}\right)=\left(\begin{array}{c} a_{2}b_{3}-a_{3}b_{2}\\ a_{3}b_{1}-a_{1}b_{3}\\ a_{1}b_{2}-a_{2}b_{1} \end{array}\right) </math> Octave-Code: a = [1 2 3]; b = [5 6 7]; res = cross(a, b) Ausgabe: res = -4 8 -4 === Transponierter Vektor === v1 = [1, 2, 3]; v2 = [5; 6; 7]; res1 = v1' res2 = v2' Ausgabe: res1 = 1 2 3 res2 = 5 6 7 === Einige weitere Vektorfunktionen === Beispiel: % 1 + 2 + 3 v = [1 2 3]; sum(v) Ausgabe: ans = 6 Beispiel: % 1 * 2 * 3 * 4 v = [1 2 3 4]; prod(v) Ausgabe: ans = 24 Beispiel: % 1^2 + 2^2 + 3^2 v = [1 2 3]; sumsq (v) Ausgabe: ans = 14 == Matrizen == Gegeben sei folgende 2x3-Matrix <math>m=\left(\begin{array}{ccc} 1 & 2 & 3\\ 4 & 5 & 6 \end{array}\right)</math>. Eingabe: m = [1, 2, 3; 4, 5, 6] Ausgabe: m = 1 2 3 4 5 6 Alternativ und anschaulicher kann diese 2x3-Matrix auch so eingegeben werden: m = [1 2 3 4 5 6] Dies ist schon sehr nahe an der mathematischen Darstellungsweise. === Zugriff auf Matrizenelemente === m = [1 2 3 4 5 6]; % Element aus Zeile 2 und Spalte 3 m(2,3) Ausgabe: ans = 6 Eine andere Zugriffsmöglichkeit ist diese: m = [1 2 3 4 5 6]; % Auf das fünfte Element soll zugegriffen werden m(5) Ausgabe: ans = 3 Die Matrix wird also spaltenweise durchlaufen (nicht zeilenweise). Dies ist vielleicht auf den ersten Blick etwas ungewöhnlich, wird aber z.B. auch in Fortran so gehandhabt. Auch Teilmatrizen können einfach gebildet werden: m = [1 2 3 4 5 6]; m(2:end, 2:end) Ausgabe: ans = 5 6 Siehe zu diesem Thema auch etwas weiter hinten in diesem Text den Abschnitt "Teilmatrizen". === Addition und Subtraktion von Matrizen === m1 = [1, 2, 3; 4, 5, 6]; m2 = [-4, -2, 0; 2, 4, 6]; m1 + m2 m1 - m2 Ausgabe: ans = -3 0 3 6 9 12 ans = 5 4 3 2 1 0 === Transponierte Matrix === m = [1, 2, 3; 4, 5, 6]; m' Ausgabe: ans = 1 4 2 5 3 6 === Rang einer Matrix === Der Rang einer Matrix Rg(M) ist die maximale Anzahl der linear unabhängigen Zeilenvektoren (Spaltenvektoren). m1 = [1, 2, 3; 4, 5, 6]; m2 = [1, 2; 2, 4]; rank(m1) rank(m2) Ausgabe: ans = 2 ans = 1 Regulär ist eine nxn-Matrix, wenn der Rg(M) = n. D.h. die erste Matrix m1 ist regulär, die zweite m2 singulär. === Inverse Matrix === m1 = [1, 3; 0, -5 ]; m2 = [1, 2; 2, 4]; inv(m1) inv(m2) Ausgabe: ans = 1.00000 0.60000 0.00000 -0.20000 warning: matrix singular to machine precision warning: called from test1 at line 4 column 1 ans = Inf Inf Inf Inf Die Matrix m2 in diesem Beispiel ist singulär (d.h. die Determinante ist 0). Determinanten werden etwas weiter unten in diesem Text behandelt. Inf steht für Infinity (= Unendlich). === Multiplikation von Matrizen (falksches Schema) === m1 = [1, 3, 4; 0, -5, 1]; m2 = [1, 2; 2, 3; 0, 2]; m1 * m2 Ausgabe: ans = 7 19 -10 -13 Will man aus irgendwelchen Gründen nicht das falksche Schema ausführen, sondern elementweise Multiplikation, so funktioniert das mit dem Punkt-Operator, z.B. m1 = [1, 3; 0, -5]; m2 = [1, 2; 4, 2]; % falksches Schema m1 * m2 % elementweise Multiplikation m1 .* m2 Ausgabe: ans = 13 8 -20 -10 ans = 1 6 0 -10 Verifikation, falksches Schema (Zeile*Spalte): [ 1 3 ] [ 1 2 ] [ 1*1+3*4 1*2+3*2 ] [ 13 8 ] [ 0 -5 ] [ 4 2 ] = [ 0*1-4*5 0*2-5*2 ] = [ -20 -10 ] Verifikation, elementweise Multiplikation (homologe Elemente): [ 1 3 ] [ 1 2 ] [ 1*1 3*2 ] [ 1 6 ] [ 0 -5 ] [ 4 2 ] = [ 0*4 -5*2 ] = [ 0 -10 ] === Determinante einer Matrix === m1 = [1, 3; 0, -5 ]; m2 = [1, 2; 2, 4]; det(m1) det(m2) Ausgabe: ans = -5 ans = 0 m1 ist regulär, m2 ist singulär. Determinanten können nur von quadratischen Matrizen gebildet werden. === Teilmatrizen === m = [1, 2, 3; 0, 5, 1]; % Die Matrix in einen Spaltenvektor umwandeln m1 = m(:) % Das Element aus der 1. Zeile und der 2. Spalte extrahieren m2 = m(1,2) % Erste Zeile extrahieren m3 = m(1, 1:3) m4 = m(1, :) % Zweite Spalte extrahieren m5 = m(1:2, 2) m6 = m(:, 2) Ausgabe: m1 = 1 0 2 5 3 1 m2 = 2 m3 = 1 2 3 m4 = 1 2 3 m5 = 2 5 m6 = 2 5 === Einheitsmatrizen === eye(3,2) Ausgabe: ans = 1 0 0 1 0 0 === Nullmatrizen === zeros(2,3) Ausgabe: ans = 0 0 0 0 0 0 === Diagonalmatrizen === diag([1, 2, 3]) Ausgabe: ans = 1 0 0 0 2 0 0 0 3 === Spur einer Matrix === trace([1,2,3; 6,9, 0]) Ausgabe: ans = 10 === LR-Zerlegung einer Matrix === Führen Sie die LR-Faktorisierung (LR ... links/rechts bzw. LU ... left/upper) einer Matrix m aus. l sei die linke Dreiecksmatrix, r die rechte Dreiecksmatrix und p die Permutationsmatrix m = [1 0 5 -1 1 -2 0 0 3]; [l, r, p] = lu(m) Ausgabe: l = 1 0 0 -1 1 0 0 0 1 r = 1 0 5 0 1 3 0 0 3 p = 1 0 0 0 1 0 0 0 1 === Eigenwerte === a = [5 8 1 3]; % Eigenvektoren und Eigenwerte [ev, ew] = eig(a) Ausgabe: ev = 0.9701 -0.8944 0.2425 0.4472 ew = Diagonal Matrix 7 0 0 1 Die Eigenwerte sind hier <math>\lambda_1 = 7</math> und <math>\lambda_2 = 1</math>. Die Eigenvektoren sind [0.9701 0.2425] bzw. [-0.8944 0.4472]. Da das Gleichungssystem <math>(A - \lambda_i E) x_i = 0</math> singulär ist, sind alle Lösungsvektoren Vielfache dieser Eigenvektoren. === Schwach besetzte Matrizen === {{Wikipedia | Dünnbesetzte Matrix}} Gegeben sei die schwach besetzte Matrix m = [0 1 0 0 0 0 0 0 3 0 4 0 0 2 0 0 0 1 0 0 0 0 0 1 7] Mittels dem sparse-Befehl kann man einfach die Elemente != 0 nach folgendem Schema eingeben. sparse ([zeilenindizes] [spaltenindizes] [werte]) also in unserem Fall: ms = sparse([1 2 3 3 4 5 5], [2 4 1 4 3 4 5], [1 3 4 2 1 1 7]) Ausgabe: ms = Compressed Column Sparse (rows = 5, cols = 5, nnz = 7) (3, 1) -> 4 (1, 2) -> 1 (4, 3) -> 1 (2, 4) -> 3 (3, 4) -> 2 (5, 4) -> 1 (5, 5) -> 7 Die volle Matrix erhält man mit dem Befehl full: m = full(ms) Ausgabe: m = 0 1 0 0 0 0 0 0 3 0 4 0 0 2 0 0 0 1 0 0 0 0 0 1 7 Grafisch anzeigen lassen kann man sich die Besetzung von Matrizen mit dem spy-Befehl: spy(ms); oder (für allgemeine Matrizen auch mittels) spy(m); Ausgabe: [[Datei:octave_sparse1.jpg]] Wirklich interessant ist der spy-Befehl für größere Matrizen, z.B. um die Bandstruktur zu visualisieren. e = eye(200); es = sparse(e); % Auf sparse-Matrizen kann genauso zugegriffen werden wie auf normalen Matrizen es(100, 15) = 100; spy(es); Ausgabe: [[Datei:octave_sparse2.jpg]] === Matrizen mit Zufallswerten === Insbesondere für Testzwecke kann es manchmal sinnvoll sein größere Matrizen mit Zufallswerten zu bilden. Dazu stellt Octave u.a. den rand-Befehl zur Verfügung. m = rand(5, 6) Ausgabe: m = 0.86605 0.61108 0.71347 0.97119 0.52428 0.21993 0.74059 0.49062 0.56073 0.68592 0.74737 0.62680 0.20790 0.84874 0.36834 0.31102 0.25813 0.28933 0.84732 0.98777 0.91512 0.42240 0.87891 0.63757 0.76823 0.80367 0.24639 0.78208 0.77170 0.95281 Die Zufallszahlen liegen gleichverteilt zwischen 0 und 1 und werden nach dem Mersenne-Twister-Verfahren mit einer Periode von <math>2^{19937}-1</math> gebildet. Andere Verfahren sind: * randn: Normalverteilte Pseudozufallselemente mit Mittelwert=0 und Varianz=1 * rande: Exponentialverteilte Zufallselemente * randg: Gammaverteilte Zufallselemente * randp: Poissonverteilte Zufallselemente Details dazu siehe in der Octave-Hilfefunktion. == Aufgaben == * Berechnen Sie den Winkel zwischen den beiden Vektoren a = [1 2 0] und b = [2 1 1]. Hinweis: Siehe diesbezüglich auch im Oktave-Hilfesystem den Befehl "norm". * Gegeben seien Vektoren a = [1 2 5], b = [0 0 -1] und c = [-1 -2 2]. Berechnen Sie das Spatprodukt aus diesen drei Vektoren. * Multiplizieren Sie die beiden Matrizen A und B (mit Octave und zur Kontrolle händisch) A = [0 0 1 1 2 1] B = [1 1 1 2 0 4] * Ist die Matrix C regulär? Wenn ja, dann bilden Sie die inverse Matrix. C = [-1 0 0 -4 2 0 1 5 7 6 2 0 3 0 2 6] * Ist die Matrix D regulär? Wenn ja, dann bilden Sie die inverse Matrix. D = [2 1 0 0 0 0 2 1 0 0 0 2 1 1 0 0] * Berechnen Sie die Konditionszahl der folgenden Matrix. Hinweis: Siehe diesbezüglich im Oktave-Hilfesystem den Befehl cond [3 4 -5 6 0 3 1 1 2] * Berechnen Sie die Eigenwerte und Eigenvektoren der folgenden Matrix [6 -3 4 0 0 7 -1 1 0 10 -3 -2 0 1 -2 1] = Komplexe Zahlen = Die imaginäre Einheit wird in Octave durch den Buchstaben i, j, I oder J symbolisiert. Darstellen kann man eine komplexe Zahl bekannterweise in mehreren Formen: * Kartesische Darstellung <math>z = \Re(z) + i \cdot \Im(z)</math> * Polardarstellungen <math>z = r \cdot (\cos(\phi) + i \cdot \sin(\phi)) = r \cdot e^{i\cdot \phi}</math> Die konjugiert komplexe Zahl ist <math>z^* = \Re(z) - i \cdot \Im(z)</math> == Mit komplexen Zahlen rechnen == z1 = 2 + 5i; % kartesische Darstellung z2 = 3 * exp(3j); % Polardarstellung % Addition res = z1 + z2; disp("z1 + z2 = "); disp(res); % Multiplikation res = z1 * z2; disp("z1 * z2 = "); disp(res); % Realteil res = real(z2); disp("Realteil von z2 = "); disp(res); % Imaginärteil res = imag(z2); disp("Imaginaerteil von z2 = "); disp(res); % Betrag res = abs(z1); disp("Betrag von z1 = "); disp(res); % Argument res = angle(z1); disp("Argument von z1 = "); disp(res); % Konjugiert komplexe Zahl res = conj(z1); disp("Konjugiert komplexe Zahl von z1 = "); disp(res); Ausgabe: z1 + z2 = -0.96998 + 5.42336i z1 * z2 = -8.0568 - 14.0032i Realteil von z2 = -2.9700 Imaginaerteil von z2 = 0.42336 Betrag von z1 = 5.3852 Argument von z1 = 1.1903 Konjugiert komplexe Zahl von z1 = 2 - 5i == Die gaußsche Zahlenebene == clear; close all; clc; z1 = 3 + 5i; z2 = 5 * exp(0.5i); hold on; plot(z1, "*"); compass(z1); plot(z2, "o"); compass(z2); grid on; [[Datei:octave_komplex1.jpg]] == Aufgaben == * Berechnen Sie die Quadratwurzel der komplexen Zahl <math>z = 3 + 2i</math>. * Verwandeln Sie folgende Zahlen in die Polarkoordinatendarstellung: <math>-11 - 3i</math> und <math>(1+i)^{10}</math> * Verwandeln Sie folgende Zahlen in die Normaldarstellung: <math>12 \cdot e^{i\cdot \pi / 4}</math> und <math>3 \cdot (\cos(\pi / 3) + i \cdot \sin(\pi / 3))</math> * Zeichnen Sie die Zahl <math>3 + 5i</math> in der gaußschen Zahlenebene als Zeiger. = Funktionen = Um Programme zu strukturieren und einfacher zu gestalten können Programmteile in Funktionen ausgelagert werden. Eingebaute Funktionen haben wir schon kennengelernt (z.B. die Sinus-Funktion sin). Nun wollen wir sehen, wie man selbst solche Funktionen schreiben kann. == Eine einfache Funktion schreiben == Datei addiere.m: function res = addiere(a, b) % Addiere zwei Zahlen a + b res = a + b; end Datei test1.m: addiere(10, 15) Ausgabe: ans = 25 * Jede Funktion sollte in einer eigenen m-Datei stehen. * Der Dateiname sollte mit dem Funktionsnamen (natürlich ohne Dateiendung .m) übereinstimmen. * Der Kommentar unter dem Funktionskopf wird als Hilfstext angezeigt, wenn die help-Funktion (hier "help addiere") aufgerufen wird. == Inline-Funktionen == Kurze Funktionen können auch als Inline-Funktionen geschrieben werden. addiere = inline("a + b"); x = 5; y = 10; z = addiere(x, y) Oder in diesem Fall noch kürzer addiere = inline("a + b"); z = addiere(5, 10) Ausgabe: z = 15 Bei neueren Octave-Versionen kann bei der Verwendung von Inline-Funktionen die Warnung warning: inline is obsolete; use anonymous functions instead erscheinen. Ein Blick in die Hilfe-Funktion help inline zeigt das selbe Ergebnis. Es sollen also anonyme Funktionen (siehe etwas weiter unten in diesem Text) anstelle von Inline-Funktionen verwendet werden. == Funktionsstring == addiere = "a + b"; a = 5; b = 10; z = eval(addiere) Ausgabe: z = 15 == Anonyme Funktionen == {{Wikipedia | Anonyme Funktion}} addiere = @(a, b) a + b; x = 10; y = 20; z = addiere(x, y) oder kürzer addiere = @(a, b) a + b; z = addiere(10, 20) Ausgabe: z = 30 == Nullstellen von Funktionen bestimmen == sinh2 = @(x) sinh(x) + 2; z = fzero(sinh2, 1) Ausgabe: z = -1.4436 Zur Kontrolle soll hier der Graph der Funktion dargestellt werden clear; close all; clc; sinh2 = @(x) sinh(x) + 2; x = -2 : 0.1 : 0; y = sinh2(x); z = fzero(sinh2, 1) plot(x, y); hold on; plot(z, 0, "o", "Color", "red", "LineWidth", 2); text (-1.8, 0.8, "Nullstelle"); line([z -1.7], [0, .7], "Color", "black"); grid on; Ausgabe: [[Datei:octave_funktion5.jpg]] Weiter unten im Text wird die ähnliche Funktion "fsolve" beschrieben. "fzero" benutzt zwei verschiedene Funktionen zur Problemlösung, darunter eben auch "fsolve". Für die Nullstellenbestimmung von Polynomen gibt es die Funktion "roots". Näheres dazu folgt im nächsten Kapitel. == Globale Variablen == Datei addiere.m: function res = addiere() global a b; res = a + b; end Datei test1.m: clear; close all; clc; global a b; a = 5; b = 3; addiere() Ausgabe: ans = 8 == Aufgaben == * Schreiben Sie eine Funktion "ellipse", welche eine Ellipse am Bildschirm darstellt. Zur Erinnerung: Die Parameterdarstellung der Ellipse lautet <math>x = a\cdot\cos(t), y = b\cdot\sin(t), 0 \leq t \leq 2\pi</math>, Funktionsargumente seien a und b. * Schreiben Sie <math>y = 2\cdot\sin(x) + 3\cdot\cos(x/2)</math> ** als normale Funktion ** als Funktionsstring ** als Inlinefunktion ** als anonyme Funktion ** stellen Sie diese Funktion grafisch am Bildschirm dar. = Polynome = == Einzelne Polynomwerte berechnen == % y = 2*x^3 + 5*x^2 + 4 für x = 2 berechnen p = [2, 5, 0, 4]; polyval(p, 2) Ausgabe: ans = 40 == Polynome zeichnen == % y = 2*x^3 - 5*x^2 + 4 für das Intervall -5 <= x <= 5 grafisch darstellen x = -5 : .1 : 5; p = [2, 5, 0, 4]; y = polyval(p, x); plot(x,y); grid on; Ausgabe: [[Datei:octave_polynom1.jpg]] == Nullstellen bestimmen == Für Polynome existiert die Funktion "roots" zur Nullstellenbestimmung. % Nullstellen für y = 2*x^3 - 5*x^2 + 4 bestimmen p = [2, 5, 0, 4]; r = roots(p) Ausgabe: r = -2.76214 + 0.00000i 0.13107 + 0.84077i 0.13107 - 0.84077i Dieses Polynom hat nur eine reelle Nullstelle. Diese liegt, wie am obigen Grafen zu ersehen ist, in der Nähe von -2.762. Die beiden anderen Nullstellen sind konjugiert komplex zueinander (wie es auch sein sollte). == Aufgaben == * Berechnen Sie den Wert für x = 3 des Polynoms <math>y = 2x^4 - 3x^3 - x + 7</math>. * Berechnen Sie die Nullstellen von <math>y = 7x^5 - 3x^2 + 12</math>. * Zeichnen Sie das Polynom <math>y = 12x^4 - 70x</math> im Intervall <math>-5 \leq x \leq 5</math>. = Lineare Gleichungssysteme = Sei <math>Ax = b</math> ein lineares Gleichungssystem. <math>A</math> sei die Koeffizientenmatrix, <math>x</math> der Lösungsvektor und <math>b</math> ein bekannter Vektor. == Einfache Berechnung mittels Gauß-Verfahren == {{Wikipedia | Gaußsches Eliminationsverfahren}} Beispiel: A = [5 1 0 2]; b = [1 2]; x = A \ b Ausgabe: x = 0 1 == Das gmres-Verfahren == gmres steht für Generalized Minimal Residual. {{Wikipedia | GMRES-Verfahren}} A = [5 1 0 2]; b = [1 2]; x = gmres(A, b) Ausgabe: gmres converged at iteration 2 to a solution with relative residual 2.22045e-16 x = -1.6653e-16 1.0000e+00 Das Ergebnis weicht etwas vom gaußschen Verfahren ab, ist aber trotzdem im Rahmen der Näherung korrekt. Weiters kennt Octave noch andere iterative Verfahren, z.B. cgs (Conjugate Gradient Squared) oder bicgstab (Bi-Conjugate Gradient Stabilized). Näheres zu diesen Verfahren siehe in der weiterführenden Literatur (z.B. bei Meister: Numerik linearer Gleichungssysteme, Vieweg+Teubner, 2011) {{Wikipedia | CGS-Verfahren}} == Aufgabe == * Lösen Sie folgendes Gleichungssystem mittels Octave (und zur Kontrolle auch händisch): 5x + 6y - 2z = 12 3x - y - 3z = 6 2x + 2y + 4z = 5 = Nichtlineare Gleichungssysteme = == fsolve und fzero == Löse eine beliebige Gleichung f(x) = 0, z.B. <math> f(x) = x^2 - 5\cos(x) - 10 = 0 </math>: f = @(x) x^2 - 5*cos(x) - 10; xstart = 1; [x, fval, info] = fsolve(f, xstart) Ausgabe: x = 2.4681 fval = -1.7764e-015 info = 1 * x ist eine Nullstelle in der Nähe vom Startwert xstart. * fval ist die Abweichung, den f bei x aufweist. * info ist ein "Fehlercode": 1 bedeutet, dass der relative Fehler in der spezifizierten Toleranz liegt (wie es sein soll). 3 würde bedeuten, dass der Algorithmus nicht konvergiert (z.B. weil keine Nullstelle existiert). Zur Kontrolle plotten wir den Funktionsgraphen: x = - 1 : .1 : 3; y = x.^2 - 5.*cos(x) - 10; plot(x,y, "LineWidth", 2); grid on; Ausgabe: [[Datei:octave_nichtlin1.jpg]] Und siehe da, die gesuchte Nullstelle liegt wie berechnet bei einem Wert nahe 2,5. Die Funktion <math>x^2 - 5\cos(x) - 10</math> hat noch eine zweite Nullstelle, wie in der folgenden Abbildung zu erkennen ist. [[Datei:octave_nichtlin2.jpg]] Diese zweite Nullstelle erhalten wir, wenn der Startwert in der Nähe dieser zweiten Nullstelle liegt, also z.B. bei -1. Ändern Sie einfach den entsprechenden Startwert im obigen Programmcode, und das Programm sollte die Nullstelle in der Nähe von -2.5 liefern. Auch die Funktion ''fzero'' kann zur Lösung einer nichtlinearen Gleichung verwendet werden. Die Hilfe-Funktion von Octave empfiehlt dies sogar eindringlich für den Fall einer nichtlinearen Gleichung in einer Variablen. Für das gleiche Beispiel wie oben kann der Programmcode folgendermaßen aussehen: Eingabe: f = @(x) x^2 - 5*cos(x) - 10; [x0, y0] = fzero (f, [0, 3]) Ausgabe: x0 = 2.4681 y0 = -1.2434e-14 == Gleichungssysteme == Folgende Aufgabe ist dem Buch "Knorrenschild: Numerische Mathematik, Hanser, 2017, Seite 72" entnommen. Zu lösen ist das nichtlineare Gleichungssystem <math>f_1 = 2x_1 + 4x_2 = 0 </math> <math>f_2 = 4x_1 + 8x_2^3 = 0</math> Lösung: f.m: function y = f(x) y(1) = 2*x(1) + 4*x(2); y(2) = 4*x(1) + 8*x(2)^3; end test1.m: clear; close all; clc; [x, fval, info] = fsolve (@f, [0, 1]) [x, fval, info] = fsolve (@f, [0, -1]) [x, fval, info] = fsolve (@f, [0, 0]) Ausgabe: x = -2 1 fval = 0 7.4930e-09 info = 1 x = 2 -1 fval = 0 -7.4930e-09 info = 1 x = 0 0 fval = 0 0 info = 1 == Aufgaben == * Bestimmen Sie die Nullstellen von <math>f(x) = x^2 - 3</math>. Plotten Sie den Grafen. * Bestimmen Sie die Nullstelle von <math>f(x) = sin(x) - x - 1</math>. Plotten Sie den Grafen. * Lösen Sie das folgende Gleichungssystem (und stellen Sie das Ganze grafisch am Bildschirm dar): <math> f_1 = x_1 + x_2 = 0; f_2 = x_1 + \sin{x_2} = 0</math> = Interpolation = == Eindimensionale Interpolation == {{Wikipedia | Interpolation (Mathematik)}} Bezüglich eindimensionaler Interpolation sei auf die [https://docs.octave.org/v11.1.0/One_002ddimensional-Interpolation.html Octave-Dokumentation und Hilfefunktion zum Befehl " interp1"] verwiesen. Dort findet sich auch ein Programmbeispiel, das als Grundlage des folgenden Plots dient: [[Datei:octave_interpol1.jpg]] == Mehrdimensionale Interpolation == Bezüglich mehrdimensionaler Interpolation siehe die [https://docs.octave.org/v11.1.0/Multi_002ddimensional-Interpolation.html Hilfefunktion zu "interp2", "interp3" und "interpn"]. == Aufgabe == * Gegeben seinen die fünf Stützpunkte p1 = [1, 0], p2 = [2, -5], p3 = [3, 2], p4 = [4, 7], p5 = [5, 6]. Legen Sie eine Funktion (die Interpolierende) durch diese Stützpunkte. Eine Lösungsmöglichkeit: xp = [1 2 3 4 5]; yp = [0, -5, 2, 7, 6]; xf = 1 : .1 : 5; spl = interp1(xp, yp, xf, "spline"); pch = interp1(xp, yp, xf, "pchip"); plot(xp, yp, "or", "LineWidth", 2, xf, spl, "LineWidth", 2, ... xf, pch, "LineWidth", 2); legend("stuetzpunkte", "spline", "pchip", "location", "southeast"); [[Datei:octave_interpol3.jpg]] = Differenzialrechnung = == Polynome differenzieren == Es soll das Polynom <math>y = 2x^3 - 5x^2 + 7</math> differenziert werden. % Differenzieren des Polynoms y = 2*x^3 - 5*x^2 + 7 p = [2, -5, 0, 7]; polyder(p) Ausgabe: ans = 6 -10 0 D.h. also, die Ableitung von <math>y = 2x^3 - 5x^2 + 7</math> ist <math>y' = 6x^2 - 10x</math>. == Sonstige Funktionen differenzieren == Als Beispiel differenzieren wir <math>y = 5x\sin{x}</math> und stellen das Ganze grafisch dar. clear; close all; clc; x = 0 : 0.01 : 10; y = 5 .* x .* sin(x); y_strich = diff(y) / 0.01; plot(x, y, "Color", "red", "LineWidth", 2); hold on; plot(x(1:length(x)-1), y_strich, "Color", "blue", "LineWidth", 2); legend("y", "y'"); grid on; Ausgabe: [[Datei:octave_diff1.jpg]] diff(y) ist der Vektor aus den Differenzen y(2)-y(1), ..., y(n)-y(n-1). Für die genaue Arbeitsweise der diff-Funktion siehe "help diff". == Aufgaben == * Differenzieren Sie das Polynom <math>y = 5y^5 - y^4 + 6y - 4</math>. * Differenzieren Sie die Funktion <math>y = \log(x) + 10x</math> und stellen Sie y, sowie y' grafisch am Bildschirm dar. * Differenzieren Sie die Funktion <math>y = \frac{\sinh(x)}{(1+x)}</math> und stellen Sie y, sowie y' grafisch am Bildschirm dar. = Integralrechnung = == Polynome integrieren == Berechnen Sie das unbestimmte Integral von <math>y = 2x^3 - 7x^2 + 7</math> p = [2, -7, 0, 7]; p_int = polyint(p) Ausgabe: p_int = 0.50000 -2.33333 0.00000 7.00000 0.00000 Das Ergebnis lautet also <math>\int{y dx} = 0.5x^4 - 2.33333x^3 + 7x + C</math> (auf die Integrationskonstante C darf nicht vergessen werden!). == Gauß-Quadratur == {{Wikipedia | Gauß-Quadratur}} Berechnen Sie das Integral <math>\int_{0}^{3}x^2 dx</math> mittels Gauß-Quadratur. Datei f.m: function y = f(x) y = x^2; end Datei test1.m: [v, ier, nfun, err] = quad ("f", 0, 3) Ausgabe: v = 9.0000 ier = 0 nfun = 21 err = 9.9920e-014 Erläuterung zur Ausgabe: * v ... Resultat der Integration * ier ... integer error code * nfun ... Anzahl der Funktionsaufrufe * err ... Fehler in der Lösung == Quadratur mittels adaptiver Lobatto-Regel == Berechnen Sie diesmal das Integral <math>\int_{0}^{3}x^2 dx</math> mittels Lobatto-Quadratur. f = inline("x.^2"); v = quadl (f, 0, 3) Ausgabe: v = 9 Wie weiter oben bereits angesprochen kann bei der Ausgabe eine Warnung erfolgen. Inline-Funktionen sind inzwischen als obsolet erklärt und es sollen stattdessen anonyme Funktionen verwendet werden. Zwecks Übung sei nachfolgend nochmals dieses Beispiel berechnet. Diesmal wird aber eine anonyme Funktion verwendet. v = quadl (@(x) x.^2, 0, 3) == Aufgaben == * Integrieren Sie das Polynom <math>y = 5y^5 - y4 + 6y - 4</math>. * Integrieren Sie die Funktion <math>y = \log(x) + 10x</math> von -5 bis 5. * Integrieren Sie die Funktion <math>y = x^3</math> von 0 bis 4. Verwenden Sie hierzu die Simpsonregel (siehe dazu in der Hilfefunktion den Befehl "quadv"). = Gewöhnliche Differenzialgleichungen = == ode23, ode45 und lsode == Für die Lösung von Differenzialgleichungen stehen die Funktionen * ode23 bzw. * ode45 zur Verfügung. Diese Funktionen implementieren das Runge-Kutta-Verfahren. "ode" steht für "Ordinary Differential Equation" (also auf Deutsch für "Gewöhnliche Differentialgleichung"). Die Zahlen bei ode23 oder ode45 stehen für die Ordnung. {{Wikipedia | Runge-Kutta-Verfahren}} Beispiel <math>y' = x^2 + y^3</math>: clear; close all; clc; [x, y] = ode45(@(x,y) (x^2+y^3), [0 1], 0); plot(x, y, "LineWidth", 2); Ausgabe: [[Datei:octave_ode1.jpg]] Bezüglich der genauen Funktionsweise von "ode45" (oder "ode23") siehe die Octave-Hilfe. Auch die Funktion "lsode" steht zur Lösung von ODEs zur Verfügung. Beispiel <math>y' = x + y</math>: clear; close all; clc; t = 0 : .1 : 5; [y2, istate, msg] = lsode(@(x,y) (x + y), 1, t); istate msg plot(t, y2); Ausgabe: istate = 2 msg = successful exit [[Datei:octave_lsode1.jpg]] Bezüglich der genauen Funktionsweise von "lsode" siehe die Octave-Hilfe. == Aufgaben == * Lösen Sie die Differenzialgleichung <math>y' = \frac{1}{x\cdot y}</math> mit Octave. Kontrollieren Sie das Ergebnis, indem Sie die DGl händisch lösen. * Lösen Sie die Differenzialgleichung <math>m' = -k\cdot m</math>. Kontrollieren Sie das Ergebnis, indem Sie die DGl händisch lösen. * Lösen Sie die Differenzialgleichung <math>y' = \sqrt{|y|}</math>. = Die Fast-Fourier-Transformation = {{Wikipedia | Schnelle Fourier-Transformation}} Für die Funktion "fft" siehe das Octave-Hilfesystem. = Mengenrechnung = == Vereinigungsmenge == v1 = [1 2 3 4]; v2 = [2 4 6]; union(v1, v2) Ausgabe: ans = 1 2 3 4 6 == Schnittmenge == v1 = [1 2 3 4]; v2 = [2 4 6]; intersect(v1, v2) Ausgabe: ans = 2 4 = Logik = Logische Operatoren werden oft benötigt, z.B. bei Schleifen und Verzweigungen. Octave kennt die logischen Operatoren <code>or, and, not</code> und <code>xor</code>. Als Beispiel sei die Wahrheitstabelle für den Operator <code>or</code> dargestellt. A B A or B -------------------- true true true true false true false true true false false false In Octave kann das so ausgedrückt werden: or( true, true ) or( true, false ) or( false, true ) or( false, false ) Ausgabe: ans = 1 ans = 1 ans = 1 ans = 0 Zahlen ungleich 0 stehen für true, 0 für false. Z.B.: or( 22, 0) Ausgabe: ans = 1 Äquivalent zu <code>or</code> ist der Operator <code>|</code>: 22 | 0 Ausgabe: ans = 1 Zwecks näheren Informationen zu den Operatoren <code>and (&, &&), not (~, !)</code> und <code>xor</code> bemühe man Octaves Help-Funktion. Bitweise logische Funktionen kennt Octave auch, so kann man z.B. zwei Zahlen mit dem bitweisen OR-Operator verknüpfen: 0b1100101 0b0110001 --------- 0b1110101 Oder in Dezimalzahlen: 101 49 --- 117 In Octave: bitor( 0b1100101, 0b0110001 ) dec2bin( ans ) Ausgabe: ans = 117 ans = 1110101 Zu <code>bitand, bitxor</code> usw. siehe die Octave-Hilfe-Funktion. = Stochastik = ==Deskriptive Statistik == === Lageparameter === Arithmetischer Mittelwert: vec = [1 2 3 4 5 12 13]; mw = mean(vec) Ausgabe: mw = 5.7143 Der Median oder Zentralwert läßt sich folgendermaßen berechnen: vec = [1 2 3 4 5 12 13]; median(vec) Ausgabe: ans = 4 Der Modus oder häufigste Wert läßt sich mittels "mode"-Funktion eruieren: vec = [1 2 1 3 5 1 2 7]; [m, f, c] = mode (vec); disp(m); disp(f); disp(c); Ausgabe: 1 3 { [1,1] = 1 } m (erste Zeile der Ausgabe) ist der Modus. f (zweite Zeile) ist die Häufigkeit. Näheres dazu siehe im Octave-Hilfesystem. === Streuungsparameter === Varianz: vec = [1 2 3 1 1 6 7]; v = var(vec) Ausgabe: v = 6.3333 Standardabweichung: vec = [1 2 3 1 1 6 7]; s = std(vec) Ausgabe: s = 2.5166 === Grafiken erzeugen === Histogramme: v = [1 1 2 3 1 6 7 6 1 1 1 2]; hist(v, max(v)); Ausgabe: [[Datei:octave_histo2.jpg]] Balkendiagramme: v = [1 1 2 3 1 6 7 6]; bar(v); Ausgabe: [[Datei:octave_bar111.jpg]] Treppendiagramm: v = [1 1 2 3 1 6 7 6]; stairs(v); Ausgabe: [[Datei:octave_stairs1.jpg]] Stabdiagramm: v = [1 1 2 3 1 6 7 6]; stem(v); Ausgabe: [[Datei:octave_stem1.jpg]] === Aufgaben === Gegeben sei folgende Datentabelle mit den Werten: v1 = [3 4 1 1 7 2 1 9 2 5 9 7 2 2 9 2 2 1 2 8] v2 = [1 1 0 2 3 4 1 2 7 0 2 1 5 5 5 4 5 2 5 0] * Berechnen Sie die Lageparameter und Streuungsparameter des Vektors v1. * Berechnen Sie Kovarianz und Korrelationskoeffizient der beiden zugeordneten Vektoren v1 und v2. * Zeichnen Sie das Histogramm des Vektors v1. == Wahrscheinlichkeitsrechnung == === Kombinatorik === Der Binomialkoeffizient: <math>\binom{n}{k}=\frac{n!}{k!(n-k)!}</math> In Octave z.B.: n = 30; k = 4; n_ueber_k = nchoosek (n, k) Ausgabe: n_ueber_k = 27405 Permutationen sind die verschiedenen Anordnungsmöglichkeiten mit der Anzahl n! = n * (n-1) * ... * 2 * 1. Beispiel: v = [1, 2, 3]; p = perms(v) Ausgabe: p = 1 2 3 2 1 3 1 3 2 2 3 1 3 1 2 3 2 1 n! (n-Fakultät) selbst kann so berechnet werden: % 10! n = 10; factorial (n) Ausgabe: ans = 3628800 === Verteilungen === Octave kennt eine ganze Reihe von Dichte- und Verteilungsfunktionen und zwar * Probability Density Functions (PDF, Dichtefunktionen) * Cumulative Distribution Functions (CDF, Verteilungsfunktionen) Z.B.: * Binomialverteilung: ** binopdf ** binocdf * Hypergeometrische Verteilung: ** hygepdf ** hygecdf * Normalverteilung: ** normpdf ** normcdf * Studentverteilung: ** tpdf ** tcdf * Weibullverteilung: ** wblpdf ** wblcdf Ein Codebeispiel zur Binomialverteilung: clear; close all; clc; x = 0 : 1 : 10; n = 10; p = 0.1; b1 = binopdf (x, n, p); b2 = binocdf (x, n, p); subplot(221); bar(x, b1); title("binopdf"); text(1, 0.1, "n=10; p=0.1"); subplot(222); bar(x, b2); title("binocdf"); text(1, 0.5, "n=10; p=0.1"); n = 10; p = 0.5; b1 = binopdf (x, n, p); b2 = binocdf (x, n, p); subplot(223); bar(x, b1); text(1, 0.1, "n=10; p=0.5"); subplot(224); bar(x, b2); text(1, 0.1, "n=10; p=0.5"); Ausgabe: [[Datei:octave_bino3.jpg]] Möglicherweise erhalten Sie bei diesem Beispiel eine Fehlermeldung in der Form error: 'binopdf' undefined near line 8, column 6 The 'binopdf' function belongs to the statistics package from Octave Forge which you have installed but not loaded. To load the package, run 'pkg load statistics' from the Octave prompt. Laden Sie einfach das Paket für die Statistikfunktionen, wie in der Fehlermeldung beschrieben. Ein Codebeispiel zur Normalverteilung: clear; close all; clc; x = -4 : .1 : 4; b1 = normpdf(x); b2 = normcdf(x); subplot(121); plot(x, b1); title("normpdf"); grid on; subplot(122); plot(x, b2); title("normcdf"); grid on; Ausgabe: [[Datei:octave_norm111.jpg]] == Zufallszahlengeneratoren == Octave kann Zufallszahlen aus einer großen Anzahl von Verteilungen generieren, z.B. * Chi-Quadrat-Verteilung: chi2rnd * Log-Normal-Verteilung: lognrnd * Normalverteilung: normrnd Codebeispiel: mean = 0; standardabweichung = 1; zufallszahl = normrnd (mean, standardabweichung) Ausgabe (gibt eine Zufallszahl rund um den Mittelwert 0 aus), z.B. zufallszahl = 1.0451 Auch Zufallsvektoren (oder Zufallsmatrizen) können erstellt werden: mean = [0 0 0 0 0]; standardabweichung = 1; zufallsvektor = normrnd (mean, standardabweichung) Ausgabe, z.B.: zufallsvektor = 1.47108 -0.51280 0.52726 0.31730 -1.04422 = Einfache Benutzeroberflächen erstellen= == Input == fflush (stdout); x = input("Gib eine Zahl ein: "); disp(2 * x); Ein-/Ausgabe: Gib eine Zahl ein: 12 24 Der "fflush"-Befehl sollte immer vor dem Aufruf des input-Befehls aufgerufen werden. Näheres zu "fflush" siehe im Octave-Hilfesystem. == Diverse einfache vorgefertigte Dialoge == Fehlermeldung: errordlg("Fehlermeldung"); [[Bild:octave_fehlermeldung1.jpg]] Warnung: warndlg("Warnung"); [[Bild:octave_warnung1.jpg]] Hilfedialog: helpdlg [[Bild:octave_hilfe1.jpg]] Abfragedialog: button = questdlg ("Frage") [[Bild:octave_abfrage1.jpg]] Eingabedialog: in = inputdlg("Eingabe") [[Bild:octave_eingabe1.jpg]] Messagebox: h = msgbox ("Eine Mitteilung!"); [[Bild:octave_messagebox1.jpg]] == Komplexere vorgefertigte Dialogboxen == === Menübox === auswahl = menu("Auswahl", "Affe", "Elefant", "Loewe", "Sonstiges"); switch(auswahl) case 1 disp "Affe quietscht" case 2 disp "Elefant trompetet" case 3 disp "Loewe bruellt" otherwise disp "Sonstiges" end Ausgabe: [[Bild:octave_menu1.jpg]] Es werde beispielsweise die Nummer 2 gewählt. Ausgabe: Elefant trompetet === Dialogliste === clear; close all; clc; opt = {"Eins", "Zwei", "Drei"}; [sel, ok] = listdlg ("ListString", opt, "SelectionMode", "Multiple"); if (ok == 1) for i = 1 : numel(sel) disp(opt{sel(i)}); end else disp("Cancel"); end [[Bild:octave_dialog1.jpg]] Es werden beispielsweise alle Optionen ausgewählt. Ausgabe: Eins Zwei Drei === Fortschrittsbalken === h = waitbar ([0.5]) [[Bild:octave_fortschritt1.jpg]] === Datei- und Verzeichnisdialoge === Dateidialog: [fname, fpath, fltidx] = uigetfile () [[Bild:octave_dateidialog2.jpg]] Ähnlich sind die Befehle "uiputfile" und "uigetdir". Dazu sei auf die Octave-Hilfe verwiesen. == Eigene Dialoge kreieren == Dieses Thema sei hier nur kurz angerissen. Programmcode: d = dialog("Position", [300, 300, 250, 150], "Name", "Dialog"); txt = uicontrol("Parent", d, ... "Style", "text", ... "Position", [20, 80, 210, 40], ... "String", "Hallo Welt"); btn_servus = uicontrol("Parent", d, ... "Position", [30, 20, 80, 30], ... "String", "Servus", ... "Callback", "disp('Servus angeklickt!');"); btn_hallo = uicontrol("Parent", d, ... "Position", [140, 20, 80, 30], ... "String", "Hallo", ... "Callback", "disp('Hallo angeklickt!');"); uiwait(d); Ausgegebenes Dialogfenster: [[Bild:octave_dialog100.jpg]] Ausgabe auf der Konsole (je nach gedrücktem Button), z.B.: Servus angeklickt! Die Position wird als [links, unten, breite, höhe] angegeben. Der Koordinatennullpunkt liegt, bezogen auf das Elternfenster, links unten. Es sind auch negative Koordinatenwerte möglich. Sinnvoll ist das z.B. bei einem dynamischen Ausblenden ohne zu löschen, oder für Animationen. [[Bild:Cartesian-coordinate-system.svg | 150px]] Wer mehr dazu wissen will, sei auf die Octave-Dokumentation verwiesen. Insbesondere siehe * dialog * uicontrol * uipanel * uibuttongroup * uitable * uimenu * uitoolbar == Aufgaben == === Aufgabe 1 === Erzeugen Sie ein Dialogfenster mit einem Texteingabefeld und einem Button. Beim Klicken auf den Button soll der Eingabetext auf der Konsole ausgegeben werden. Das Dialogfenster soll also in etwa so aussehen: [[Bild:octave_dialog105.jpg]] Da dies etwas komplizierter als das oben gezeigte Beispiel ist, werden nachfolgend ein paar Codefragmente zwecks Lösung angegeben: Datei button_callback.m: function button_callback(editHandle) eingegText = get(editHandle, "String"); disp(eingegText); end Codefragement in test1.m: % ... edit = uicontrol(% ... "Style", "edit", ... %, ... "HorizontalAlignment", "left"); btn = uicontrol(% ... "Callback", @(src, event) button_callback(edit)); % ... Aufruf mit: octave test1.m Eingabe von z.B. "Hallo Welt!": [[Bild:octave_dialog106.jpg]] Ausgabe auf der Konsole nach dem Drücken des Buttons: Hallo Welt! === Aufgabe 2 === Erzeugen Sie ein Dialogfenster mit zwei Eingabefeldern und einem Button. Eingegeben in diese zwei Eingabefelder werden vom Benutzer Zahlen. Auf der Konsole ausgegeben werden soll, nach Drücken des Buttons, das Produkt dieser zwei Zahlen. Auch hier werden wieder Codefragemente angegeben. Datei button_callback.m: function button_callback(edit1, edit2) zahl1 = str2double(get(edit1, 'String')); zahl2 = str2double(get(edit2, 'String')); disp(zahl1 * zahl2); end Codefragment Datei test1.m: % ... btn = uicontrol("Parent", d, ... % ... "Callback", @(src, event) button_callback(edit1, edit2)); % ... Was passiert, wenn der Benutzer keine Zahlen, sondern beliebige Strings eingibt? = Fehlerhandling mit try/catch = Die try/catch-Anweisung entspricht weitgehend jener, die aus höheren Programmiersprachen wie C++ oder Java bekannt sind. Aufgebaut ist diese Anweisungsfolge so: try BODY catch CLEANUP end Beispiel: clear; close all; clc; try a = 10 / "zahl"; disp(a); disp("Weiter im try-Block"); catch disp("Catch: Kann nicht durch einen String dividieren"); end Ausgabe: Catch: Kann nicht durch einen String dividieren Sinnvoll ist die try/catch-Folge, wenn z.B. auch in einem Fehlerfall Dateien wieder geschlossen werden sollen. = Ein- und Ausgabe = == Formatierte Ausgabe am Bildschirm, formatiertes Lesen von der Tastatur == Folgendes Beispiel ist der Octave-Hilfe (von Octave 3.0.3) entnommen: pct = 37; filename = "foo.txt"; printf ("Processed %d%% of `%s'.\nPlease be patient.\n", pct, filename); Ausgabe: Processed 37% of `foo.txt'. Please be patient. "printf" gibt einen formatierten String am Bildschirm (genauer in den Stream stdout) aus. Wie man sieht, orientiert sich das Format an der Programmiersprache C. Für das formatierte Lesen vom Stream stdin (normalerweise also von der Tastatur) steht das Pendant "scanf" bereit. == Von einem String lesen bzw. in einen String schreiben == Bezüglich der Funktionen * sprintf und * sscanf sei auf die Octave-Hilfefunktion verwiesen. == Lesen und Schreiben von einer Datei == === Datei schreiben === % Datei c:\tmp\datei.test zum Schreiben öffnen datei = fopen ("c:/tmp/datei.test", "w"); % Etwas in die Datei schreiben fprintf(datei, "Hallo, Welt!"); % Datei schließen fclose(datei); === Datei lesen === % Datei c:\tmp\datei.test zum Lesen öffnen datei = fopen ("c:/tmp/datei.test", "r"); % Etwas aus der Datei lesen [string] = fscanf(datei, "%s"); disp(string); % Datei schließen fclose(datei); Ausgabe: Hallo,Welt! === Dateiende prüfen === Mittels des Befehls feof(FID); kann das Dateiende geprüft werden. Wenn die EOF-Bedingung zutrifft, dann wird 1 zurückgegeben, wenn nicht dann 0. Ein Beispiel folgt später als Lösung einer Aufgabe. === warning und error === Eine Warnung kann man am stderr-Stream ausgeben. Die warning-Funktion entspricht ansonsten der printf-Funktion. Nach Ausgabe der Warnung wird das Programm normal fortgesetzt. m = [1 2 3 6]; if(det(m) == 0) warning("Matrix ist singulaer"); end disp("Weiter geht's"); Ausgabe: warning: Matrix ist singulaer warning: called from test1 at line 5 column 3 Weiter geht's Schärfer ist der error-Befehl. Die Fehlermeldung wird am stderr-Stream ausgegeben. Vom Format her entspricht diese Funktion dem printf-Befehl. Nach Ausgabe der Fehlermeldung wird das Programm beendet. m = [1 2 3 6]; if(det(m) == 0) error("Matrix ist singulaer"); end disp("Weiter geht's"); Ausgabe: error: Matrix ist singulaer error: called from test1 at line 5 column 3 == Aufgaben == * Schreiben Sie ein Programm, das die Zahlen 1 bis 10 zeilenweise in eine Datei ausgibt. * Lesen Sie diese Zeilen wieder von der Datei ein und geben Sie sie am Bildschirm aus. * Gegeben sei eine Datei. Lesen Sie die Daten aus dieser Datei ein und rechnen Sie per Octave-Programm den Gesamtpreis für alle Tiere aus. Die Anzahl der Zeilen und der genaue Dateinhalt sei Ihnen vorab nicht bekannt. Bekannt ist nur das Datenformat wie folgt: Nr. Name Einzelpreis Stueck 1 Affe 15000.50 2 2 Loewe 11000.90 1 3 Nashorn 45000.10 1 4 Elefant 51245.90 3 5 Tiger 9000.70 2 6 Maus 34.90 12 Eine einfache Lösung ohne Schnickschnack (Fehlerüberprüfungen etc.) für dieses Beispiel könnte wie folgt aussehen: clear; close all; clc; datei = fopen ("c:/tmp/daten1.txt", "r"); gesamtpreis = 0; % Kopfzeile einlesen [nr, name, preis, stk] = fscanf(datei, "%s %s %s %s", "C"); while(feof(datei) == 0) % Datensätze einlesen [nr, name, preis, stk] = fscanf(datei, "%d %s %f %d", "C"); gesamtpreis += preis*stk; end fclose(datei); disp("Gesamtpreis = "); format long; disp(gesamtpreis); Ausgabe: Gesamtpreis = 258159.900000000 = Datencontainer = == Datenstrukturen == Pseudocode: STRUKTUR s ZAHL a VEKTOR b STRING c END Octave-Code: s.a = 45.9; s.b = [1 2 3 4 5]; s.c = "Hallo!"; s Ausgabe: s = scalar structure containing the fields: a = 45.90000000000000 b = 1 2 3 4 5 c = Hallo! Um ein paar weitere Möglichkeiten zum Handling mit Datenstrukturen aufzuzeigen, sei folgender Code aufgeführt. Datei addsub.m function res = addsub(a, b) res.x = a + b; res.y = a - b; end Datei test1.m clear; clc; addsub(10, 50) r = addsub(30, 70) r.x r.y ++r.x Ausgabe: ans = scalar structure containing the fields: x = 60 y = -40 r = scalar structure containing the fields: x = 100 y = -40 ans = 100 ans = -40 ans = 101 Die Funktion "addsub" liefert die Struktur res mit zwei Zahlenwerten. Die Elemente der Datenstruktur können auch außerhalb der Funktion angesprochen werden. Auch gerechnet werden kann mit diesen Elementen. == Cell Arrays == Manchmal kann es sinnvoll sein mehrere Variablen verschiedenen Typs und Größe in einer Variablen zu speichern. Dies funktioniert ähnlich wie bei Vektoren. Es werden aber geschweifte Klammern verwendet. Eingabe: c = {"Hallo Welt!", [2 2], 44} c{1} c{1:2} Ausgabe: c = { [1,1] = Hallo Welt! [1,2] = 2 2 [1,3] = 44 } ans = Hallo Welt! ans = Hallo Welt! ans = 2 2 Elemente des Cell Arrays können auch wieder mit Variablen anderen Typs überschrieben werden. c = {"Hallo Welt!", [2 2], 44}; c{1} = 5; c Ausgabe: c = { [1,1] = 5 [1,2] = 2 2 [1,3] = 44 } = Objektorientierte Programmierung = Octave unterstützt auch objektorientierte Programmierung mit dem Schlüsselwort <code>classdef</code> (ab Version 4.0). Dieses Thema ist aber etwas für fortgeschrittene Anwender und wird hier nicht behandelt. Wen es trotzdem interessiert, der sei auf die [https://docs.octave.org/latest/Object-Oriented-Programming.html Octave-Dokumentation] verwiesen. = Octave im Zusammenspiel mit anderen Programmiersprachen = == .oct-Dateien == Eine .oct-Datei in GNU Octave ist eine kompilierte C/C++-Datei, die als dynamisch ladbares Objekt direkt in Octave ausgeführt werden kann. oct-Dateien sind meist schneller als nativer Octave-Code. 1. Schritt: Erstelle z.B. eine C++-Datei ''quadrat.cc'' (es soll das Quadrat einer Zahl berechnet werden) #include <octave/oct.h> DEFUN_DLD(quadrat, args, nargout, "Quadrat einer Zahl berechnen") { double x = args(0).double_value(); double res = x*x; return octave_value(res); } * <code>DEFUN_DLD</code> ist ein Makro. Damit wird angezeigt, dass es sich um eine dynamisch ladbare Funktion handelt ('''De'''fine '''F'''unction – '''D'''ynamically '''L'''inked '''D'''istribution). * Der erste Parameter muss mit dem Namen der Funktion und der erstellten oct-Datei übereinstimmen, also hier <code>quadrat</code>. * <code>args</code>: Argumente die beim Aufruf in Octave übergeben werden. * <code>nargout</code>: Anzahl der Rückgabewerte. * "Quadrat einer Zahl berechnen": Dokumentationsstring 2. Schritt: ''quadrat.cc'' kompilieren # Terminal öffnen # In das quadrat.cc-Verzeichnis wechseln # Octave aufrufen # cc-Datei zu einer oct-Datei kompilieren: <code>mkoctfile quadrat.cc</code> # Wenn das ohne Fehlermeldung durchläuft, so sollte im Anschluss eine (relativ große) ''quadrat.oct''-Datei im entsprechenden Verzeichnis zu finden sein. 3. Schritt: Funktion <code>quadrat()</code> in Octave aufrufen, z.B.: y = quadrat(5) Es ergibt sich folgende Ausgabe: y = 25 Damit das funktioniert, müssen natürlich die entsprechenden Werkzeuge (Compiler etc.) installiert sein. Darauf wird hier aber nicht näher eingegangen. Die Dokumentation zu den .oct-Dateien findet sich auf [https://docs.octave.org/v11.1.0/Oct_002dFiles.html]. == Andere Möglichkeiten == * .mex-Dateien ('''M'''ATLAB '''Ex'''ecutables): Wenn man kompatibel zu MATLAB bleiben muss * Java- oder Python-Schnittstelle (Nachteil: langsamer als .oct-Dateien) Bevor man aber diese Möglichkeiten in Anspruch nimmt, sollte man vektorisieren. Damit lassen sich oft schon höhere Geschwindigkeiten erzielen. Dieses Thema wurde früher schon kurz behandelt. = Octave GUI = Das GUI-Programm ('''G'''raphical '''U'''ser '''I'''nterface) von Octave entspricht im Wesentlichen anderen Programmier-Benutzeroberflächen (IDEs ... '''I'''ntegrated '''D'''evelopment '''E'''nvironments), wie z.B. Eclipse (Java), Code::Blocks (C/C++) oder Spyder (Python). Nachfolgend ist ein Screenshot des Octave-GUI mit einigen Anmerkungen dargestellt. [[Bild:octave_gui2.jpg|600px]] Probieren Sie einfach die Möglichkeiten der zur Verfügung gestellten GUI/IDE aus. = Komplexere Aufgaben = * Berechnen Sie die Fläche, den Umfang, die Seitenlängen, den Inkreis und den Umkreis eines Dreiecks. Stellen Sie das Dreieck inklusive In- und Umkreis grafisch dar. Speichern Sie die Daten in einer Datei. Die drei Eckpunkte dieses Dreiecks sollen vom Benutzer beliebig vorgegeben werden. * Die Werte einer beliebig großen quadratischen Matrix seien in einer Datei gespeichert. Lesen Sie diese Datei ein und berechnen Sie daraus die Determinante der Matrix, die inverse Matrix, die Eigenvektoren und -werte, die Spur. Führen Sie die LR-Zerlegung durch. Geben Sie diese Werte am Bildschirm aus. = Ausblick = Dies war eine kurze Einführung in die Berechnungs- und Darstellungsmöglichkeiten mit Octave. Es sollten etliche relevante Themen behandelt, oder zumindest kurz angesprochen worden sein. Wem dieser Text nicht ausreichend ist, der sei auf die entsprechende weiterführende Literatur, die Octave-Hilfefunktion und die Octave-Dokumentation verwiesen. Octave kennt noch viel mehr Befehle, als hier dargestellt wurden. Aber auch Octave selbst ist erweiterbar. Man siehe z.B. Octave Packages (https://gnu-octave.github.io/packages/) oder man schreibt selbst Erweiterungen. {{Navigation_zurückhochvor_buch| zurücktext=Maxima| zurücklink=Ing Mathematik: Computeralgebrasysteme am Beispiel von Maxima| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Julia für Ingenieure| vorlink=Ing Mathematik: Julia}} g4fggedjs0mh0uasx44rum6m3xt62ha 1091113 1091094 2026-09-19T15:52:05Z Intruder 1513 /* .oct-Dateien */ 1091113 wikitext text/x-wiki {{Navigation_zurückhochvor_buch| zurücktext=Maxima| zurücklink=Ing Mathematik: Computeralgebrasysteme am Beispiel von Maxima| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Julia für Ingenieure| vorlink=Ing Mathematik: Julia}} = Hallo Welt und allgemeine Hinweise = == Was ist Octave == * Octave ist eine Software zur numerischen Lösung mathematischer Probleme. * Octave ist Open-Source (GPL-Lizenz). * Octave ist für viele Betriebssysteme erhältlich (z.B. für Linux, MS Windows, macOS). * Octave ist weitgehend kompatibel zum Numerik-Standardprogramm {{W|Matlab|MATLAB}}. * Octave ist ein Interpreter. * Octave als Programmiersprache ist case-sensitive - d.h. Groß- und Kleinschreibung ist relevant bei der Eingabe von Befehlen. {{Wikipedia | GNU Octave}} == Octave installieren == === MS Windows === Laden Sie das aktuelle Octave-Paket von der Webseite [https://octave.org/download] herunter. Weiter geht es wie bei jedem anderen größeren zu installierenden Programm. Einfach das Installationsprogramm im Explorer doppelklicken und den Anweisungen des Setup-Programmes folgen. === Linux === Entweder ist Octave bereits standardmäßig installiert, ansonsten ist die Installation mittels Paketmanagementsystem einfach möglich. Dazu gehen Sie auf die Seite [https://wiki.octave.org/Category:Installation], wählen die vorhandene Linux-Variante und folgen der angegebenen Beschreibung (z.B. <code>zypper ... </code> für openSUSE. Oder Sie benutzen unter openSUSE Tumbleweed direkt das Setup-Programm {{W|YaST}}). == Octave starten == === MS Windows === Das Icon für das Octave-Programm doppelklicken (für das Konsolenprogramm ... CLI, für die grafische Benutzeroberfläche ... GUI). Und schon startet das Programm. [[Datei:octavestart1.jpg]] === Linux === In einer Linux-Konsole den Befehl "octave" eintippen, mit der RETURN-Taste bestätigen, und das Programm (CLI) startet: GNU Octave (x86_64-suse-linux-gnu) version 11.1.0 Copyright (C) 1993-2026 The Octave Project Developers. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software; see the source code for copying conditions. There is NO WARRANTY, to the extent permitted by law. For details, type 'warranty'. Home page: <https://octave.org> Support resources: <https://octave.org/support> Improve Octave: <https://octave.org/get-involved> For changes from previous versions, type 'news'. octave:1> Um Octave mit der eingebauten GUI zu starten, kann der Befehl <code>octave --force-gui</code> verwendet werden: [[File:Gnu_Octave_IDE.png|600px]] Alternativ kann, z.B. unter openSUSE Tumbleweed (mit {{W|KDE Plasma 6|KDE-Plasma}}), die Octave-IDE auch über den Application Launcher im Menü ''Education -> GNU Octave'' gestartet werden. == Ein paar Worte zur Erklärung == Im Folgenden wird immer das Konsolenprogramm (CLI ... Command Line Interface) für die Eingabe von Befehlen benutzt. Erst gegen Ende dieses Textes wird auch kurz auf das GUI von Octave eingegangen. Teilweise werden Ergebnisse der älteren Octave-Version 3.0.3 dargestellt. Die dargestellten Grafiken und Ausgabetexte können je nach Version leicht voneinander abweichen. Der Text wurde ursprünglich mit der Octave-Version 3.0.3 erstellt und anschließend auf die Versionen 5.2 bis 11.1.0 aktualisiert. Dieser Mischmasch sollte aber kein Problem darstellen. Getestet wurden die Beispiele ursprünglich unter dem Betriebssystem MS Windows 10, später auch mit MS Windows 11, bzw. mit openSUSE Leap 15.6 (Octave 6.4.0, nur vereinzelt) und ab März 2026 auch mit openSUSE Tumbleweed (ab Octave 10.3.0, nur vereinzelt). == Ein erstes Programm == Kommentare werden in Octave mit dem Prozentzeichen (%) oder alternativ mit der Raute (#) eingeleitet. Sie werden vom Octave-Interpreter ignoriert. Will man kompatibel mit MATLAB bleiben, so ist die Version mit dem %-Zeichen vorzuziehen. Text kann mit der disp-Funktion ausgegeben werden. Starten Sie Octave und geben sie folgende Anweisungen zeilenweise ein octave-3.0.3.exe:1> % Das ist ein Kommentar octave-3.0.3.exe:2> # und das auch octave-3.0.3.exe:3> disp "Hallo Welt!" Als Ergebnis erhalten Sie Hallo Welt! Der Prompt (z.B. octave-3.0.3.exe:1>) ist natürlich abhängig von der Octave-Version und den schon eingegebenen Zeilen. Er ist selbstverständlich nicht einzutippen, sondern wird vom Octave-System geliefert. Strings können in Octave entweder in Anführungszeichen (") gesetzt werden oder in Hochkommatas('). In diesem Text wird die erste Variante bevorzugt eingesetzt. = Octave als Taschenrechner = == Allgemeines == Wir wollen 3 * 5 berechnen. Dazu starten wir Octave. Geben Sie dann die Formel octave-3.0.3.exe:1> 3 * 5 ein, drücken die Taste ENTER/RETURN und erhalten als Ergebnis ans = 15 Auch kompliziertere Ausdrücke sind möglich. Beispielsweise mit Winkelfunktionen, Quadratwurzeln etc. Wir wollen nun den Ausdruck <math>\sin\sqrt{15}</math> berechnen : octave-3.0.3.exe:2> sin(sqrt(15)) ans = -0.6679 Octave kennt eine Handvoll von Konstanten, z.B.: Zeilenweise Eingabe: % Die Kreiszahl PI pi % Die Eulersche Zahl e % Zur Maschinengenauigkeit eps Ausgabe: ans = 3.1416 ans = 2.7183 ans = 2.2204e-016 "ans" steht übrigens für den Begriff "answer" (auf Deutsch "Antwort"). Mit "ans" kann wie mit jeder anderen Variable oder Konstanten weitergerechnet werden, z.B.: Eingabe: % Der Kreisradius sei 10 10 % Der Kreis-Umfang mit diesem Radius sei folgendes 2 * pi * ans Ausgabe: ans = 10 ans = 62.832 Die Ausgabe eines Befehls am Bildschirm (das "Echo") kann übrigens durch Anwendung des Semikolons (;) unterdrückt werden. Gezeigt werden soll dies nun mit Hilfe des obigen Beispiels. Es soll nur der Umfang ausgegeben werden, nicht der Radius. Eingabe: % Der Kreisradius sei 10 10; % Der Kreis-Umfang mit diesem Radius sei folgendes 2 * pi * ans Ausgabe: ans = 62.832 Vielleicht ist manchem die Genauigkeit, mit der Echo bzw. der Befehl disp Werte ausgibt, nicht ausreichend. Dem kann Abhilfe verschafft werden und zwar so: Eingabe: format short pi format long pi format longe pi % usw. Ausgabe: ans = 3.1416 ans = 3.14159265358979 ans = 3.14159265358979e+00 Beenden lässt sich das Octave-Programm durch Eingabe von quit oder exit (und natürlich zur Bestätigung die RETURN-Taste drücken). == Die Hilfefunktion von Octave == Die Eingabe von help mit Angabe eines Funktionsnamens liefert detaillierte Infos zu der gesuchten Funktion. Eingabe: help sin Ausgabe: 'sin' is a built-in function from the file libinterp/corefcn/mappers.cc -- Y = sin (X) Compute the sine for each element of X in radians. See also: asin, sind, sinh. Additional help for built-in functions and operators is available in the online version of the manual. Use the command 'doc <topic>' to search the manual index. Help and information about Octave is also available on the WWW at https://www.octave.org and via the help@octave.org mailing list. Auch gibt es die doc-Funktion für eine vollständige Dokumentation des Octave-Systems, z.B.: Eingabe: doc Ausgabe: [[Datei:Octave_730_doc_screenshot.jpg]] == Sonstige einfache Berechnungen == In octave gibt es eine "umgekehrte" Division: 11 / 2 % normale Division (Rechtsdivision) 11 \ 2 % umgekehrte Division (Linksdivision) Ausgabe: ans = 5.5000 ans = 0.1818 Potenzieren kann man so: 12^5 Ausgabe: ans = 248832 Den Modulo-Operator % wie in C/C++, Java oder Python gibt es in Octave '''nicht'''. Das Prozentzeichen ist dem Kommentar vorbehalten. Man kann aber eine Funktion hierfür benutzen y = mod(20, 3) Ausgabe: y = 2 Runden mit und auf Ganzzahlen kann man in Octave so: a = int32(10); b = int32(3); x = a / b y = int32(15) / int32(4) Ausgabe: x = 3 y = 4 Siehe dazu aber auch die Funktionen <code>floor</code>, <code>ceil</code> und <code>idivide</code>. Mittels <code>int32()</code> werden Zahlen als 32-Bit-Ganzzahlen dargestellt. Standardmäßig ist der Datentyp nämlich <code>double</code>. Das ist zu beachten, es ergeben sich unterschiedliche Ergebnisse. Beispiel: clear(); a = int32(10); b = int32(3); x = a / b c = 10; d = 3; y = c / d whos() Ausgabe: x = 3 y = 3.3333 Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 4 int32 b 1x1 4 int32 c 1x1 8 double d 1x1 8 double x 1x1 4 int32 y 1x1 8 double Total is 6 elements using 36 bytes Ist der Wertebereich von <code>int32</code> zu klein (4 Bytes, <math>-2^{31}</math> bis <math>2^{31} - 1</math>), so gibt es auch <code>int64</code> (8 Bytes, <math>-2^{63}</math> bis <math>2^{63} - 1</math>). <code>clear</code> löscht Namen und gibt den Speicherplatz wieder frei. <code>whos()</code> liefert detaillierte Informationen der aktuell definierten Variablen. == Aufgaben == * Berechnen Sie mit Octave den Ausdruck <math>\frac{1}{2}\cdot e^2 \cdot \tan(\pi/3)</math>. * Berechnen Sie mit Octave den Ausdruck <math>2\; \text{cosd}(60) - 3\sin(\pi/5)</math>. Anmerkung: cosd erwartet den Parameter im Gradmaß (d für "degree"), sin erwartet den Parameter im Bogenmaß. * Erkunden Sie die Fehlerfunktion "erf" mittels Octave-Hilfe. * Welche Zahl ergibt sich durch <code>3 / 4 \ 2</code>? * Welche Zahlen werden durch die folgenden Anweisungen ausgegeben? idivide(int32(10), int32(3), "fix") idivide(int32(10), int32(3), "round") idivide(int32(10), int32(3), "floor") idivide(int32(10), int32(3), "ceil") floor(10.3) ceil(10.3) = Octave als Scriptsprache = Häufig wird man aber kompliziertere Anweisungsfolgen verarbeiten müssen. Diese will man normalerweise nicht jedesmal neu eingeben, sondern in einer Datei speichern und diese Datei dann zur Ausführung bringen. Speichern Sie dazu folgenden Code in einer Textdatei, z.B. unter MS Windows als c:\tmp\test1.m % Das ist ein Kommentar # und das auch disp "Hallo Welt!" Skriptdateien müssen mit der Dateiendung .m versehen werden. In der Octave-Konsole fügen Sie den Dateipfad mittels octave-3.0.3.exe:1> addpath("c:/tmp") hinzu (es ist der UNIX-spezifische Slash (/) zu benutzen). Alternativ können Sie zumindest unter MS Windows auch einen Doppel-Backslash (\\) einsetzen. Oder Sie wechseln mittels <code>cd c:/tmp</code> direkt ins Verzeichnis <code>c:/tmp</code>. Danach bringen Sie die Skriptdatei test1.m (sozusagen das Hauptprogramm) zur Ausführung octave-3.0.3.exe:2> test1 Achtung: Die Datei (die Funktion oder das Hauptprogramm) ist in der Octave-Kommandozeile ohne .m-Dateiendung anzugeben. Wie erwartet ergibt sich folgende Ausgabe am Bildschirm Hallo Welt! Zumindest unter Linux können Sie z.B. auch komfortabel den {{W|Shebang|Shebang}} (<code>#!</code>) nutzen. Gegeben sei das Octave-Script #!/usr/bin/octave disp("Hallo Welt!"); Gepeichert sei es ebenfalls als <code>test1.m</code>. Starten Sie ein Terminal, wechseln Sie in das entsprechende Arbeitsverzeichnis und geben Sie ./test1.m ein, so erhalten Sie wieder Hallo Welt! als Ausgabe auf dem Terminal. Die Zugriffsberechtigung muss natürlich mittels <code>chmod</code> richtig gesetzt werden. Oder Sie führen direkt Octave mit der Datei <code>test1.m</code> aus: octave test1.m Sie sehen, mehrere Wege führen zum Ziel. == Blockkommentare == In neueren Octave-Versionen ab dem Jahr 2009 sind auch Blockkommentare möglich. Blockkommentare werden wie normale Kommentare vom Octave-Interpreter ignoriert. %{ Das ist ein Blockkommentar %} #{ und das auch #} == Variablen == Variablenbezeichner können aus Buchstaben (A-Za-z), Ziffern (0-9) und Underscores (_) bestehen, dürfen aber nicht mit einer Zahl beginnen. Gültige Variablenbezeichner wären also: xyz x1 _wert name_anzahl Da Octave case-sensitiv ist, repräsentieren folgende Bezeichner verschiedene Variablen: xyz XYZ xYz Werte werden an Variablen mittels Gleich-Zeichen (=) zugewiesen. Im Folgenden wird der Code immer in der Datei c:\tmp\test1.m gespeichert. x = 5 y = 10 z = x*y Bringen Sie die Datei test1.m zur Ausführung, so erhalten Sie folgende Bildschirmausgabe x = 5 y = 10 z = 50 Normalerweise will man aber nur z anzeigen, die Werte von x und y sind ja bereits bekannt. Dazu fügen Sie an den Anweisungsenden, wie bereits weiter oben erwähnt, bei x und y jeweils ein Semikolon (;) an, um das Anweisungsende explizit zu markieren. x = 5; y = 10; z = x*y Nun erhalten Sie als Ergebnis nur noch z = 50 Sie können auch mehrere Anweisungen in einer Zeile durch Semikolon getrennt schreiben. x = 5; y = 10; z = x*y Ausgabe: z = 50 Auch aus der Programmiersprache C/C++ oder Java bekannte Konstrukte können Sie verwenden, z.B. x = 5; % inkrementiere x ++x % x = x - 2 x -= 2 Bildschirmausgabe: ans = 6 x = 4 Beachten Sie, dass mit dem =-Zeichen eine Wertezuweisung durchgeführt wird. Dies ist nicht äquivalent zum mathematischen =-Zeichen, wie am vorigen Beispiel zu ersehen ist. Soll eine Anweisung auf mehrere Zeilen verteilt werden, z.B. weil sie zu lang ist, so kann dies durch Verwendung von drei Punkten (...) geschehen, wie nachfolgend dargestellt. x = 5; y = 1000 * x + ... sin(x/2) Ausgabe: y = 5000.6 Diese Drei-Punkte-Methode soll nicht für in Anführungszeichen (") eingeschlossene Strings verwendet werden. Diese Methode ist seit geraumer Zeit "deprecated" und funktioniert mit der Version 9.1.0 gar nicht mehr. Benutzen Sie statt dessen den Backslash (\): txt = "xxxxxxxxxxxxxxxxxxxx\ yyyyyyyyyyyyyyyyy" Ausgabe: txt = xxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyy Variablen sind nicht an einen bestimmten Datentyp gebunden, folgendes ist in Octave problemlos möglich: wert = 10 wert = 35.5 wert = "Hallo" wert = pi Ausgabe: wert = 10 wert = 35.500 wert = Hallo wert = 3.1416 Der Befehl <code>who</code>, bzw. <code>whos</code> listet die gegenwärtig definierten Variablen, z.B.: clear; a = 10.5; v = [1 2 3 4 5 12 13]; m = ["s1", "s2"; "s3", "s4"]; disp "***** Der Befehl who *****" who disp "***** Der Befehl whos *****" whos Ausgabe: ***** Der Befehl who ***** Variables visible from the current scope: a m v ***** Der Befehl whos ***** Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 8 double m 2x4 8 char v 1x7 56 double Total is 16 elements using 72 bytes ==Hexadezimale und binäre Zahlen== % Hexadezimale Zahl disp( 0xABC ) % Binäre Zahl disp( 0b1000011 ) Ausgabe (als Dezimalzahlen): 2748 67 Octave kann auch dezimale in binäre Zahlen etc. umwandeln: dec2bin( 214 ) Ausgabe: ans = 11010110 Siehe dazu in der Octave-Hilfe auch folgende Funktionen: bin2dec, dec2base, dec2hex, hex2dec, base2dec == Zahlenkolonnen == Eine Zahlenkolonne (oder ein Vektor) mit gleichen Abständen der Werte kann folgendermaßen erzeugt werden: % a ... Startwert % b ... Schrittweite % c ... Endwert a = 0; b = 10; c = 100; x = a : b : c; disp(x); Ausgabe: 0 10 20 30 40 50 60 70 80 90 100 Ähnliche Resultate lassen sich auch durch Anwendung der linspace-Funktion erhalten, z.B.: % a ... Startwert % b ... Endwert % c ... Anzahl der Werte a = 0; b = 100; c = 11; v = linspace(a, b, c) Ausgabe: v = 0 10 20 30 40 50 60 70 80 90 100 == Verzweigungen == === Die IF-Verzweigung === Die IF-Verzweigung ist aus anderen Programmiersprachen bereits bekannt. In Pseudocode lässt sie sich folgendermaßen darstellen: WENN bedingung TRUE führe block1 aus SONST führe block2 aus ENDE Die test1.m-Datei laute also wie folgt: x = 5; if x < 4 disp "x ist kleiner als 4"; else disp "Der else-Zweig wird ausgefuehrt"; disp "x ist groesser oder gleich 4"; end Ausgabe: Der else-Zweig wird ausgefuehrt x ist groesser oder gleich 4 Octave kennt eine Reihe von Vergleichs- und Verknüpfungsoperatoren: * <, <= ... kleiner (gleich) * >, >= ... größer (gleich) * == ... gleich * ~=, != ... ungleich * &, && ... AND * |, || ... OR * ~, ! ... NOT Beispielsweise: a = 5; b = 9; if a<=10 & b!=7 disp("OK"); else disp("Nicht OK"); end Ausgabe: OK === Die SWITCH-Verzweigung === In Pseudocode: WECHSLE ZU var FALLS wert1 == var führe block1 aus FALLS wert2 == var führe block2 aus ... SONST führe blockn aus ENDE Eine Beispielsimplementierung in Octave könnte so aussehen: x = "g"; switch(x) case "k" disp("klein"); case "g" disp("gross"); otherwise disp("sonstiges") end Ausgabe: gross Anmerkungen für C-Programmierer: * in Octave darf zum Abschluß von ''case'' kein Doppelpunkt folgen (würde einen Syntaxfehler auslösen). * ein ''break'' als Abschluß eines ''case''-Blocks ist nicht erlaubt (würde in Octave einen parse error auslösen). ''break'' ist Schleifen vorbehalten. ''switch'' hat in Octave keinen "Durchfall" und ähnelt somit eher der Fortran-Anweisung ''select case''. Mehrere Fälle in einem ''case'' können wie nachfolgend behandelt werden: x = "K"; switch(x) case {"k" "K"} disp("klein"); case {"g" "G"} disp("gross"); otherwise disp("sonstiges") end Ausgabe: klein == Schleifen == === Die WHILE-Schleife === Die WHILE-Schleife ist kopfgesteuert. Sie funktioniert wie aus anderen Programmiersprachen bekannt. In Pseudocode: SOLANGE bedingung TRUE führe block aus ENDE In Octave: x = 0; while x <= 10 disp(x); x++; end Ausgabe: 0 1 2 3 4 5 6 7 8 9 10 === Die DO-UNTIL-Schleife === Die DO-UNTIL-Schleife ist fußgesteuert. Beachte: Diese Schleife ist nicht äquivalent zu der aus anderen Programmiersprachen bekannten DO-WHILE-Schleife. DO-WHILE bedeutet "TUE SOLANGE", DO-UNTIL bedeutet "TUE BIS". Sie wird mindestens einmal ausgeführt. Pseudocode: TUE führe block aus BIS bedingung TRUE Mittels Octave: x = 0; do disp(x); x++; until(x >= 5) Ausgabe: 0 1 2 3 4 === Die FOR-Schleife === for x = 0 : 2 : 10 disp(x); end Ausgabe: 0 2 4 6 8 10 Der FOR-Schleifenkopf ist in Form einer Zahlenkolonne folgendermaßen aufgebaut: for variable = startwert : schrittweite : endwert Man beachte, dass Vektorisierung gegenüber einem Schleifendurchlauf eine erhebliche Zeiteinsparung bewirken kann (man siehe in der [https://docs.octave.org/latest/Vectorization-and-Faster-Code-Execution.html Octave-Dokumentation das Kapitel 19 "Vectorization and Faster Code Execution"]). Folgendes Beispiel ist an genanntes Octave-Kapitel angelehnt. Zuerst wird eine Berechnung mittels Schleifendurchlauf durchgeführt und der Zeitbedarf ausgegeben. Dieser Zeitbedarf hängt natürlich auch von der verwendeten Hardware etc. ab. Eingabe: n = m = 500; a = b = eye(500); t1 = time(); for i = 1:n for j = 1:m c(i,j) = a(i,j) + b(i,j); endfor endfor t2 = time(); t_diff = t2-t1 Ausgabe: t_diff = 3.7566 Der Zeitverbrauch beträgt hier also ca. 4 Sekunden. Im Gegensatz dazu Eingabe: a = b = eye(500); t1 = time(); c = a + b; t2 = time(); t_diff = t2-t1 Ausgabe: t_diff = 1.5974e-05 ist der Zeitverbrauch hier sehr gering. Vektoren und Matrizen werden etwas später in diesem Text detailliert behandelt. Hier nur soviel: Mittels ''eye'' wird eine Einheitsmatrix kreiert. === Schleifen abbrechen === Zum Abbrechen einer Schleife gibt es den Befehl "break". for var = 0 : 1 : 100 disp (var); if var == 5 break; end end Ausgabe: 0 1 2 3 4 5 "continue" setzt mit dem nächsten Schleifendurchlauf fort, z.B. for var = 0 : 1 : 10 if var == 5 continue; end disp (var); end Ausgabe: 0 1 2 3 4 6 7 8 9 10 == Aufgaben == * Berechnen Sie die Summe der ersten 10000 natürlichen Zahlen (bei 1 beginnend) ** in Form einer WHILE-Schleife ** in Form einer DO-UNTIL-Schleife ** in Form einer FOR-Schleife ** mittels sum-Befehl (siehe dazu auch die von Octave zur Verfügung gestellte Hilfefunktion). ** mittels gaußscher Summenformel (<math>\sum_{i=1}^n{i} = 1+2+...+n = n(n+1) / 2</math>) * Schreiben Sie für obige Alternativen Programme mit denen der Zeitbedarf der Schleifen, Befehle bzw. Formeln gemessen werden kann. Welche Alternativen sind aus Zeitgründen (minimale Laufzeit) empfehlenswert? = Grafiken zeichnen = == 2D == === Graph einer Funktion === Es soll die cosh-Funktion im Intervall <math>x\in[-3,3]</math> gezeichnet werden. Der Programmcode lautet in der einfachsten Form: x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; Ausgabe: [[Datei:octave_cosh.jpg]] Der Code ist quasi selbsterklärend. x läuft von -3 bis +3. y wird für jeden x-Wert per Formel ausgerechnet. "plot" ist der Zeichenbefehl. "grid on" schaltet ein Zeichengitter ein. Die Schrittweite 0.1 wurde so gewählt, um einen ausreichend glatten Verlauf des Graphen zu gewährleisten. Das ist immer ein Kompromiss zwischen Berechnungszeit und Ansehnlichkeit. Testen Sie einfach ein paar verschiedene Werte, um ein Gefühl dafür zu zu bekommen. Sie könnten nun auf die Idee kommen, obiges Script unter Linux mit der Shebang-Zeile zu erweitern, um es direkt als Programm auszuführen. #!/usr/bin/octave x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; Die Enttäuschung folgt auf dem Fuß. Außer einem kurzen Aufblinken des Grafikfensters ist nicht viel zu sehen. Das Programm läuft einfach durch und wird nach der letzten Anweisung beendet. Abhilfe kann z.B. der <code>input</code>-Befehl schaffen: #!/usr/bin/octave x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; refresh(); input("Zum Beenden RETURN-Taste drücken"); Das Programm wartet somit, bis Sie im Terminal die RETURN-Taste drücken. <code>refresh()</code> dient dazu, das Grafikfenster unmittelbar zu aktualisieren. Sonst würde das Ausgabefenster leer bleiben, bis es durch externe Anreize aktualisiert wird (z.B. durch Fenster minimieren/maximieren). Gleiches gilt für die <code>octave test1.m</code>-Variante. Ein etwas komplexeres Beispiel ist Folgendes x = -3 : .1: 3; y = cosh(x) + 2.^x; plot(x,y); grid on; Man beachte den Punkt bei 2.^x (2 hoch x). Vergisst man den Punkt, dann erhält man eine Fehlermeldung (ähnlich dieser): error: for x^y, only square matrix arguments are permitted and one argument must be scalar. Use .^ for elementwise power. error: called from test1 at line 2 column 3 Ausgabe: [[Datei:octave_cosh2.jpg]] Der Funktionsgraph kann auch als Fläche eingefärbt werden: x = -3 : .1: 3; y = cosh(x) + 2.^x; fill (x, y, "b"); Ausgabe: [[Datei:octave_cosh3.jpg | 500px]] === Graphen mehrerer Funktionen und weiteres === Mehrere Graphen lassen sich folgendermaßen in ein Fenster zeichnen: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, x,y2); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Bild:octave_cosh14.jpg|600px]] Um die Linienstile etwas individueller zu gestalten, ist folgender Programmcode gedacht: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1,"*r", x,y2,"ob"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Datei:octave_cosh4.jpg]] Bei plot kann auch der Linienstil des jeweiligen Graphen angegeben werden, z.B. steht * für Sternchenlinie o für Kreise in der Linie r für rot b für blau Ein ähnliches Resultat liefert der Code: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, "Color", "red", "*", x,y2, "Color", "blue", "o"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; Will man mehrere Graphen in ein Fenster zeichnen, aber nicht alles in einen plot-Befehl quetschen, so kann die "hold on"-Anweisung die Lösung des Problems sein: %Lösche alle benutzerdefinierten Variablen aus der Symboltabelle clear; %Schließe alle Fenster close all; %Lösche Konsolenfenster und setze Cursor zurück clc; x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, "Color", "red"); hold on; plot(x,y2, "Color", "blue"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Datei:octave_coshsin1.jpg]] Bei diesem Program wurden auch einige Möglichkeiten (clear, close, clc) gezeigt, um das System aufzuräumen. Ein "hold off" würde natürlich die hold-Funktion wieder ausschalten. === Funktion in Parameterdarstellung === Es soll die archimedische Spirale <math>x = t \cos(t), y = t \sin(t)</math> im Intervall <math>[0, 6\pi]</math> gezeichnet werden. clear; close all; clc; t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y); grid on; [[Datei:octave_spirale1.jpg]] Diese Darstellung erscheint verzerrt. Will man gleiche Achsenskalierungen, so kann man den axis-Befehl verwenden (axis muss nach plot erscheinen). t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y); grid on; axis equal; [[Datei:octave_spirale222.jpg]] === Strichstärke === Für manche Zwecke ist es sinnvoll die Strichstärke des Graphen zu erhöhen. Dies kann über den Parameter "LineWidth" der plot-Funktion geschehen. t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y, "LineWidth", 2); grid on; axis equal; Ausgabe: [[Datei:octave_spirale3.jpg]] === Beliebigen Text ausgeben === x = -10:0.1:10; plot (x, sin (x), "LineWidth", 2); text (2.7, 0.8, "Das ist die sin-Funktion"); Ausgabe: [[Datei:octave_text1.jpg]] === Logarithmische Achseneinteilung === x = -3 : .1: 3; y = cosh(x) + 2.^x; % Halblogarithmische Darstellung semilogy(x,y); grid on; Ausgabe: [[Datei:octave_semilog1.jpg]] Auch die x-Achse kann mit "semilogx" logarithmisch skaliert werden. Mit "loglog" werden beide Achsen logarithmisch skaliert. === Aufgaben === * Zeichnen Sie die Strophoide <math>x = \frac{a(t^2-1)}{t^2+1}, y = \frac{at(t^2-1)}{t^2+1}, a = 2, -3 \leq t \leq 3</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_strophoide.jpg]] * Zeichnen Sie die verschlungene Hypozykloide <math>x = (R-r)\cos t + c\cos\frac{R-r}{r}t, y = (R-r)\sin t - c\sin\frac{R-r}{r}t, c = 3, r = 2, R = 6, -15 \leq t \leq 15</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_hypozykloide.jpg]] * Testen Sie bei den obigen Übungsaufgaben verschiedene Linienstile und Farben (Hinweis: Siehe dazu auch die Octave-Hilfefunktion für den plot-Befehl). * Testen Sie bei den obigen Übungsaufgaben verschiedene Werte für a, c, r und R. * Erkunden Sie in der Octave-Hilfe den ezplot-Befehl. == 3D == === Räumliche Kurven === Mittels "plot3" lassen sich Raumkurven zeichnen. t = 0 : .1 : 9*pi; x = cos(t); y = sin(t); z = 1.3 .^ t; plot3(x,y,z); grid on; [[Datei:octave_raumkurve1.jpg]] === Flächen === ==== ezsurf ==== Die wahrscheinlich einfachste Möglichkeit 3D-Flächen zu erzeugen, besteht in der Verwendung des ezsurf-Befehls. Beachten Sie beim folgenden Beispiel auch wieder den Punkt beim Multiplikationssymbol (elementweise Multiplikation soll verwendet werden, keine Matrizenmultiplikation) in der anonymen Funktion. Was eine anonyme Funktion ist, wird weiter hinten in diesem Text kurz erklärt. Fürs Erste reicht es zu wissen, dass die Funktion f(x, y) jeweils im Intervall [0, 10] gezeichnet werden soll. clear; close all; clc; clf; f = @(x, y) sin(x) + 3.*cos(y); ezsurf (f, [0, 10]); [[Bild:octave_ezsurf1.jpg|600px]] Dieses Bild wurde mit der Octave-Version 5.2 erstellt. Es ist im Prinzip identisch zu jenen des folgenden Abschnitts, die mit der Version 3.0.3 erstellt wurden, nur die Farbschattierung ist anders. Ändern lässt sich diese Eigenschaft mit dem colormap-Befehl (siehe auch Octave-Hilfe): clear; close all; clc; clf; colormap(hot); f = @(x, y) sin(x) + 3.*cos(y); ezsurf (f, [0, 10]); [[Bild:octave_colormap_hot.jpg|600px]] ==== surf und mesh ==== Für das Zeichnen von Flächen existiert der surf-Befehl. Der meshgrid-Befehl kreiert ein Netz in der xy-Zeichenebene. Beachten Sie beim folgenden Beispiel auch wieder den Punkt beim Multiplikationssymbol der Formel für z. x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); surf(x_grid, y_grid, z); [[Datei:octave_flaeche1.jpg]] Auch ein Farbstreifen kann via "colorbar" zur Grafik hinzugefügt werden. x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); surf(x_grid, y_grid, z); colorbar("East"); [[Datei:octave_flaeche2.jpg]] Das Ganze in Netzdarstellung läßt sich so programmieren: x = 0 : .2 : 10; y = 0 : .2 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); mesh(x_grid, y_grid, z); Ausgabe: [[Datei:octave_mesh1.jpg]] ==== Ellipsoide und Kegel ==== Für das Zeichnen von Kugeln oder Ellipsoiden stellt Octave den "sphere"-Befehl bzw. den "ellipsoid"-Befehl zur Verfügung. clear; close all; clc; % Ellipsoiden zeichnen [x, y, z] = sphere(30); surf(5*x, 4*y, 3*z); hold on; [x, y, z] = ellipsoid(5, 5, 5, 6, 3, 2, 30); surf(x, y, z); axis equal; [[Bild:octave_ellipsoid2.jpg|600px]] Für Zylinder und Kegel ist der "cylinder"-Befehl zuständig. clear; close all; clc; % Kegel und Zylinder zeichnen [x, y, z] = cylinder([1 2], 100); surf(x, y, z*3); hold on; [x, y, z] = cylinder([0.5 0.5], 50); surf(x+3, y, z*2); axis equal; [[Bild:octave_cylinder2.jpg|600px]] === Aufgaben === * Zeichnen Sie die räumliche Kurve <math>x = 2 \cdot \cosh(t)</math>, <math>y = 5 \cdot \sin(t)</math>, <math> z = t^{2} - t</math>, <math>0 \leq t \leq 3\pi</math>. Das Ganze sollte etwa wie folgt aussehen: [[Datei:octave_kurve10.jpg]] * Zeichnen Sie die Fläche <math>z = \log(x) + \cos(y)</math>. Das Ganze sollte etwa wie folgt aussehen: [[Datei:octave_flaeche10.jpg]] == Weiteres == === subplot === Zeichnen mit Untergrafiken: Hier wird z.B. ein Fenster mit drei Untergrafiken gezeichnet. Eingabe: t = 0 : .5 : 10; [x_grid, y_grid] = meshgrid(t, t); subplot(311); surf(x_grid, y_grid, sin(x_grid) + cos(y_grid) ); subplot(312); surf(x_grid, y_grid, sin(x_grid) + log(y_grid) ); subplot(313); surf(x_grid, y_grid, x_grid + cos(y_grid) ); Ausgabe: [[Datei:octave_subplot2.jpg]] Die dreistellige Ziffer beim subplot-Befehl bedeutet folgendes: * Die erste Ziffer ist die Zeilenanzahl * Die zweite Ziffer ist die Reihenanzahl und * Die dritte Ziffer ist der Index. Nun sei ein Beispiel mit 3x2-Untergrafiken angeführt. clear; close all; clc; x = 0 : .1 : 10; subplot(321); plot(x, sin(x)); text(2, -0.5, "Index 1"); subplot(322); plot(x, tan(x)); text(2, 2, "Index 2"); subplot(323); plot(x, cosh(x) ); text(2, 3000, "Index 3"); subplot(324); plot(x, gamma(x) ) text(2, 100000, "Index 4"); subplot(325); plot(x, log(x) ); text(2, 0, "Index 5"); subplot(326); plot(x, exp(x) ); text(2, 10000, "Index 6"); Ausgabe: [[Datei:octave_subplot3.jpg]] Hier ist sehr gut zu sehen, in welcher Reihenfolge der Index läuft. === figure === Zeichnen in verschiedene Fenster, z.B. clear; close all; clc; x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); figure(1) surf(x_grid, y_grid, sin(x_grid) + cos(y_grid)); figure(2) surf(x_grid, y_grid, sin(x_grid) + log(y_grid)); Ausgabe: [[Datei:octave_figure111.jpg|700px]] === Linien zeichnen === Zeichnen Sie eine Linie von der Koordinate [-15, 0] zu [15, 5]: clear; close all; clc; x = line([-15 15], [0, 5], "Color", "black", "LineWidth", 2); Ausgabe: [[Datei:octave_linie1.jpg]] Man beachte, dass Octave nicht Punkte P1(x1, y1), P2(x2, y2) erwartet, sondern einen x-Vektor [x1 x2] und einen y-Vektor [y1 y2]. Ein allgemeines Viereck wird z.B. mit folgendem Befehl gezeichnet. line([-15 15 10 -5, -15], [0, 5, 20, 15, 0], "LineWidth", 2); [[Datei:octave_viereck2.jpg]] Auch dreidimensionale Formen lassen sich mit dem line-Befehl zeichnen: clear; close all; clc; line([-15 15 10 -5, -15], [0, 5, 20, 15, 0], [10, 20, 30, 40, 50], "LineWidth", 2); [[Datei:octave_dreidim2.jpg]] === Aufgaben === * Zeichnen Sie mittels "subplot" die Funktionsgrafen <math>y_1=\tan(x), y_2=\tan(2x), y_3=\tan\sqrt x, y_4=x\cdot \tan(x)</math> in folgender Form in ein Fenster: ** in 2x2-Darstellung ** in 1x4-Darstellung. * Zeichnen Sie die im obigen Beispiel angegebenen Funktionsgrafen mittels "figure" jeweils in ein eigenes Fenster. = Vektoren und Matrizen = == Vektoren == Vektoren sollten jedem aus der Linearen Algebra bekannt sein. === Zeilen- und Spaltenvektoren === % Ein Zeilenvektor v1 = [1, 2, 3] % Ein Spaltenvektor v2 = [6; 7; 8] Ausgabe: v1 = 1 2 3 v2 = 6 7 8 Alternative Schreibweisen: % Ein Zeilenvektor v1 = [1 2 3] % Ein Spaltenvektor v2 = [6 7 8] Die Ausgabe entspricht der obigen Darstellung. === Zugriff auf Vektorelemente === Nachfolgend seien einige Zugriffsmöglichkeiten auf die einzelnen Vektorelemente erläutert. Auf ein einzelnes Element kann via Index zugegriffen werden. Der Index startet bei 1: v1 = [1 2 4 8 16]; v2 = v1(3) Ausgabe: v2 = 4 Mehrere Elemente werden folgendermaßen angesprochen: v1 = [1 2 4 8 16]; v2 = v1(3:4) Ausgabe: v2 = 4 8 Liefere den Teilvektor von einem gegebenen Index bis zum letzten Element: v1 = [1 2 4 8 16]; v2 = v1(3:end) Ausgabe: v2 = 4 8 16 === Addition und Subtraktion von Vektoren === v1 = [1, 2, 3]; v2 = [5, 7, 9]; res = v1 + v2 res = v1 - v2 Ausgabe: res = 6 9 12 res = -4 -5 -6 === Multiplikation mit Skalaren === faktor = 3; v = [1, 2, 3]; res = faktor * v Ausgabe: res = 3 6 9 === Skalarprodukt === Das Skalarprodukt ist bekanntermaßen als <math>v_1 \cdot v_2 = |v_1| |v_2| \cos(\angle(v_1, v_2))</math> definiert. In Octave sieht das so aus: v1 = [1, 2, 3]; v2 = [5, 6, 7]; res = dot(v1, v2) Ausgabe: res = 38 === Vektorprodukt === v1 = [1, 2, 3]; v2 = [5, 6, 7]; res = cross(v1, v2) Ausgabe: res = -4 8 -4 Enger an die mathematische Darstellung lehnt sich folgender Code an. Die zu multiplizierenden Vektoren seien in Form von Spaltenvektoren gegeben. Mathematisch: <math>a\ast b=\left(\begin{array}{c} a_{1}\\ a_{2}\\ a_{3} \end{array}\right)\ast\left(\begin{array}{c} b_{1}\\ b_{2}\\ b_{3} \end{array}\right)=\left(\begin{array}{c} a_{2}b_{3}-a_{3}b_{2}\\ a_{3}b_{1}-a_{1}b_{3}\\ a_{1}b_{2}-a_{2}b_{1} \end{array}\right) </math> Octave-Code: a = [1 2 3]; b = [5 6 7]; res = cross(a, b) Ausgabe: res = -4 8 -4 === Transponierter Vektor === v1 = [1, 2, 3]; v2 = [5; 6; 7]; res1 = v1' res2 = v2' Ausgabe: res1 = 1 2 3 res2 = 5 6 7 === Einige weitere Vektorfunktionen === Beispiel: % 1 + 2 + 3 v = [1 2 3]; sum(v) Ausgabe: ans = 6 Beispiel: % 1 * 2 * 3 * 4 v = [1 2 3 4]; prod(v) Ausgabe: ans = 24 Beispiel: % 1^2 + 2^2 + 3^2 v = [1 2 3]; sumsq (v) Ausgabe: ans = 14 == Matrizen == Gegeben sei folgende 2x3-Matrix <math>m=\left(\begin{array}{ccc} 1 & 2 & 3\\ 4 & 5 & 6 \end{array}\right)</math>. Eingabe: m = [1, 2, 3; 4, 5, 6] Ausgabe: m = 1 2 3 4 5 6 Alternativ und anschaulicher kann diese 2x3-Matrix auch so eingegeben werden: m = [1 2 3 4 5 6] Dies ist schon sehr nahe an der mathematischen Darstellungsweise. === Zugriff auf Matrizenelemente === m = [1 2 3 4 5 6]; % Element aus Zeile 2 und Spalte 3 m(2,3) Ausgabe: ans = 6 Eine andere Zugriffsmöglichkeit ist diese: m = [1 2 3 4 5 6]; % Auf das fünfte Element soll zugegriffen werden m(5) Ausgabe: ans = 3 Die Matrix wird also spaltenweise durchlaufen (nicht zeilenweise). Dies ist vielleicht auf den ersten Blick etwas ungewöhnlich, wird aber z.B. auch in Fortran so gehandhabt. Auch Teilmatrizen können einfach gebildet werden: m = [1 2 3 4 5 6]; m(2:end, 2:end) Ausgabe: ans = 5 6 Siehe zu diesem Thema auch etwas weiter hinten in diesem Text den Abschnitt "Teilmatrizen". === Addition und Subtraktion von Matrizen === m1 = [1, 2, 3; 4, 5, 6]; m2 = [-4, -2, 0; 2, 4, 6]; m1 + m2 m1 - m2 Ausgabe: ans = -3 0 3 6 9 12 ans = 5 4 3 2 1 0 === Transponierte Matrix === m = [1, 2, 3; 4, 5, 6]; m' Ausgabe: ans = 1 4 2 5 3 6 === Rang einer Matrix === Der Rang einer Matrix Rg(M) ist die maximale Anzahl der linear unabhängigen Zeilenvektoren (Spaltenvektoren). m1 = [1, 2, 3; 4, 5, 6]; m2 = [1, 2; 2, 4]; rank(m1) rank(m2) Ausgabe: ans = 2 ans = 1 Regulär ist eine nxn-Matrix, wenn der Rg(M) = n. D.h. die erste Matrix m1 ist regulär, die zweite m2 singulär. === Inverse Matrix === m1 = [1, 3; 0, -5 ]; m2 = [1, 2; 2, 4]; inv(m1) inv(m2) Ausgabe: ans = 1.00000 0.60000 0.00000 -0.20000 warning: matrix singular to machine precision warning: called from test1 at line 4 column 1 ans = Inf Inf Inf Inf Die Matrix m2 in diesem Beispiel ist singulär (d.h. die Determinante ist 0). Determinanten werden etwas weiter unten in diesem Text behandelt. Inf steht für Infinity (= Unendlich). === Multiplikation von Matrizen (falksches Schema) === m1 = [1, 3, 4; 0, -5, 1]; m2 = [1, 2; 2, 3; 0, 2]; m1 * m2 Ausgabe: ans = 7 19 -10 -13 Will man aus irgendwelchen Gründen nicht das falksche Schema ausführen, sondern elementweise Multiplikation, so funktioniert das mit dem Punkt-Operator, z.B. m1 = [1, 3; 0, -5]; m2 = [1, 2; 4, 2]; % falksches Schema m1 * m2 % elementweise Multiplikation m1 .* m2 Ausgabe: ans = 13 8 -20 -10 ans = 1 6 0 -10 Verifikation, falksches Schema (Zeile*Spalte): [ 1 3 ] [ 1 2 ] [ 1*1+3*4 1*2+3*2 ] [ 13 8 ] [ 0 -5 ] [ 4 2 ] = [ 0*1-4*5 0*2-5*2 ] = [ -20 -10 ] Verifikation, elementweise Multiplikation (homologe Elemente): [ 1 3 ] [ 1 2 ] [ 1*1 3*2 ] [ 1 6 ] [ 0 -5 ] [ 4 2 ] = [ 0*4 -5*2 ] = [ 0 -10 ] === Determinante einer Matrix === m1 = [1, 3; 0, -5 ]; m2 = [1, 2; 2, 4]; det(m1) det(m2) Ausgabe: ans = -5 ans = 0 m1 ist regulär, m2 ist singulär. Determinanten können nur von quadratischen Matrizen gebildet werden. === Teilmatrizen === m = [1, 2, 3; 0, 5, 1]; % Die Matrix in einen Spaltenvektor umwandeln m1 = m(:) % Das Element aus der 1. Zeile und der 2. Spalte extrahieren m2 = m(1,2) % Erste Zeile extrahieren m3 = m(1, 1:3) m4 = m(1, :) % Zweite Spalte extrahieren m5 = m(1:2, 2) m6 = m(:, 2) Ausgabe: m1 = 1 0 2 5 3 1 m2 = 2 m3 = 1 2 3 m4 = 1 2 3 m5 = 2 5 m6 = 2 5 === Einheitsmatrizen === eye(3,2) Ausgabe: ans = 1 0 0 1 0 0 === Nullmatrizen === zeros(2,3) Ausgabe: ans = 0 0 0 0 0 0 === Diagonalmatrizen === diag([1, 2, 3]) Ausgabe: ans = 1 0 0 0 2 0 0 0 3 === Spur einer Matrix === trace([1,2,3; 6,9, 0]) Ausgabe: ans = 10 === LR-Zerlegung einer Matrix === Führen Sie die LR-Faktorisierung (LR ... links/rechts bzw. LU ... left/upper) einer Matrix m aus. l sei die linke Dreiecksmatrix, r die rechte Dreiecksmatrix und p die Permutationsmatrix m = [1 0 5 -1 1 -2 0 0 3]; [l, r, p] = lu(m) Ausgabe: l = 1 0 0 -1 1 0 0 0 1 r = 1 0 5 0 1 3 0 0 3 p = 1 0 0 0 1 0 0 0 1 === Eigenwerte === a = [5 8 1 3]; % Eigenvektoren und Eigenwerte [ev, ew] = eig(a) Ausgabe: ev = 0.9701 -0.8944 0.2425 0.4472 ew = Diagonal Matrix 7 0 0 1 Die Eigenwerte sind hier <math>\lambda_1 = 7</math> und <math>\lambda_2 = 1</math>. Die Eigenvektoren sind [0.9701 0.2425] bzw. [-0.8944 0.4472]. Da das Gleichungssystem <math>(A - \lambda_i E) x_i = 0</math> singulär ist, sind alle Lösungsvektoren Vielfache dieser Eigenvektoren. === Schwach besetzte Matrizen === {{Wikipedia | Dünnbesetzte Matrix}} Gegeben sei die schwach besetzte Matrix m = [0 1 0 0 0 0 0 0 3 0 4 0 0 2 0 0 0 1 0 0 0 0 0 1 7] Mittels dem sparse-Befehl kann man einfach die Elemente != 0 nach folgendem Schema eingeben. sparse ([zeilenindizes] [spaltenindizes] [werte]) also in unserem Fall: ms = sparse([1 2 3 3 4 5 5], [2 4 1 4 3 4 5], [1 3 4 2 1 1 7]) Ausgabe: ms = Compressed Column Sparse (rows = 5, cols = 5, nnz = 7) (3, 1) -> 4 (1, 2) -> 1 (4, 3) -> 1 (2, 4) -> 3 (3, 4) -> 2 (5, 4) -> 1 (5, 5) -> 7 Die volle Matrix erhält man mit dem Befehl full: m = full(ms) Ausgabe: m = 0 1 0 0 0 0 0 0 3 0 4 0 0 2 0 0 0 1 0 0 0 0 0 1 7 Grafisch anzeigen lassen kann man sich die Besetzung von Matrizen mit dem spy-Befehl: spy(ms); oder (für allgemeine Matrizen auch mittels) spy(m); Ausgabe: [[Datei:octave_sparse1.jpg]] Wirklich interessant ist der spy-Befehl für größere Matrizen, z.B. um die Bandstruktur zu visualisieren. e = eye(200); es = sparse(e); % Auf sparse-Matrizen kann genauso zugegriffen werden wie auf normalen Matrizen es(100, 15) = 100; spy(es); Ausgabe: [[Datei:octave_sparse2.jpg]] === Matrizen mit Zufallswerten === Insbesondere für Testzwecke kann es manchmal sinnvoll sein größere Matrizen mit Zufallswerten zu bilden. Dazu stellt Octave u.a. den rand-Befehl zur Verfügung. m = rand(5, 6) Ausgabe: m = 0.86605 0.61108 0.71347 0.97119 0.52428 0.21993 0.74059 0.49062 0.56073 0.68592 0.74737 0.62680 0.20790 0.84874 0.36834 0.31102 0.25813 0.28933 0.84732 0.98777 0.91512 0.42240 0.87891 0.63757 0.76823 0.80367 0.24639 0.78208 0.77170 0.95281 Die Zufallszahlen liegen gleichverteilt zwischen 0 und 1 und werden nach dem Mersenne-Twister-Verfahren mit einer Periode von <math>2^{19937}-1</math> gebildet. Andere Verfahren sind: * randn: Normalverteilte Pseudozufallselemente mit Mittelwert=0 und Varianz=1 * rande: Exponentialverteilte Zufallselemente * randg: Gammaverteilte Zufallselemente * randp: Poissonverteilte Zufallselemente Details dazu siehe in der Octave-Hilfefunktion. == Aufgaben == * Berechnen Sie den Winkel zwischen den beiden Vektoren a = [1 2 0] und b = [2 1 1]. Hinweis: Siehe diesbezüglich auch im Oktave-Hilfesystem den Befehl "norm". * Gegeben seien Vektoren a = [1 2 5], b = [0 0 -1] und c = [-1 -2 2]. Berechnen Sie das Spatprodukt aus diesen drei Vektoren. * Multiplizieren Sie die beiden Matrizen A und B (mit Octave und zur Kontrolle händisch) A = [0 0 1 1 2 1] B = [1 1 1 2 0 4] * Ist die Matrix C regulär? Wenn ja, dann bilden Sie die inverse Matrix. C = [-1 0 0 -4 2 0 1 5 7 6 2 0 3 0 2 6] * Ist die Matrix D regulär? Wenn ja, dann bilden Sie die inverse Matrix. D = [2 1 0 0 0 0 2 1 0 0 0 2 1 1 0 0] * Berechnen Sie die Konditionszahl der folgenden Matrix. Hinweis: Siehe diesbezüglich im Oktave-Hilfesystem den Befehl cond [3 4 -5 6 0 3 1 1 2] * Berechnen Sie die Eigenwerte und Eigenvektoren der folgenden Matrix [6 -3 4 0 0 7 -1 1 0 10 -3 -2 0 1 -2 1] = Komplexe Zahlen = Die imaginäre Einheit wird in Octave durch den Buchstaben i, j, I oder J symbolisiert. Darstellen kann man eine komplexe Zahl bekannterweise in mehreren Formen: * Kartesische Darstellung <math>z = \Re(z) + i \cdot \Im(z)</math> * Polardarstellungen <math>z = r \cdot (\cos(\phi) + i \cdot \sin(\phi)) = r \cdot e^{i\cdot \phi}</math> Die konjugiert komplexe Zahl ist <math>z^* = \Re(z) - i \cdot \Im(z)</math> == Mit komplexen Zahlen rechnen == z1 = 2 + 5i; % kartesische Darstellung z2 = 3 * exp(3j); % Polardarstellung % Addition res = z1 + z2; disp("z1 + z2 = "); disp(res); % Multiplikation res = z1 * z2; disp("z1 * z2 = "); disp(res); % Realteil res = real(z2); disp("Realteil von z2 = "); disp(res); % Imaginärteil res = imag(z2); disp("Imaginaerteil von z2 = "); disp(res); % Betrag res = abs(z1); disp("Betrag von z1 = "); disp(res); % Argument res = angle(z1); disp("Argument von z1 = "); disp(res); % Konjugiert komplexe Zahl res = conj(z1); disp("Konjugiert komplexe Zahl von z1 = "); disp(res); Ausgabe: z1 + z2 = -0.96998 + 5.42336i z1 * z2 = -8.0568 - 14.0032i Realteil von z2 = -2.9700 Imaginaerteil von z2 = 0.42336 Betrag von z1 = 5.3852 Argument von z1 = 1.1903 Konjugiert komplexe Zahl von z1 = 2 - 5i == Die gaußsche Zahlenebene == clear; close all; clc; z1 = 3 + 5i; z2 = 5 * exp(0.5i); hold on; plot(z1, "*"); compass(z1); plot(z2, "o"); compass(z2); grid on; [[Datei:octave_komplex1.jpg]] == Aufgaben == * Berechnen Sie die Quadratwurzel der komplexen Zahl <math>z = 3 + 2i</math>. * Verwandeln Sie folgende Zahlen in die Polarkoordinatendarstellung: <math>-11 - 3i</math> und <math>(1+i)^{10}</math> * Verwandeln Sie folgende Zahlen in die Normaldarstellung: <math>12 \cdot e^{i\cdot \pi / 4}</math> und <math>3 \cdot (\cos(\pi / 3) + i \cdot \sin(\pi / 3))</math> * Zeichnen Sie die Zahl <math>3 + 5i</math> in der gaußschen Zahlenebene als Zeiger. = Funktionen = Um Programme zu strukturieren und einfacher zu gestalten können Programmteile in Funktionen ausgelagert werden. Eingebaute Funktionen haben wir schon kennengelernt (z.B. die Sinus-Funktion sin). Nun wollen wir sehen, wie man selbst solche Funktionen schreiben kann. == Eine einfache Funktion schreiben == Datei addiere.m: function res = addiere(a, b) % Addiere zwei Zahlen a + b res = a + b; end Datei test1.m: addiere(10, 15) Ausgabe: ans = 25 * Jede Funktion sollte in einer eigenen m-Datei stehen. * Der Dateiname sollte mit dem Funktionsnamen (natürlich ohne Dateiendung .m) übereinstimmen. * Der Kommentar unter dem Funktionskopf wird als Hilfstext angezeigt, wenn die help-Funktion (hier "help addiere") aufgerufen wird. == Inline-Funktionen == Kurze Funktionen können auch als Inline-Funktionen geschrieben werden. addiere = inline("a + b"); x = 5; y = 10; z = addiere(x, y) Oder in diesem Fall noch kürzer addiere = inline("a + b"); z = addiere(5, 10) Ausgabe: z = 15 Bei neueren Octave-Versionen kann bei der Verwendung von Inline-Funktionen die Warnung warning: inline is obsolete; use anonymous functions instead erscheinen. Ein Blick in die Hilfe-Funktion help inline zeigt das selbe Ergebnis. Es sollen also anonyme Funktionen (siehe etwas weiter unten in diesem Text) anstelle von Inline-Funktionen verwendet werden. == Funktionsstring == addiere = "a + b"; a = 5; b = 10; z = eval(addiere) Ausgabe: z = 15 == Anonyme Funktionen == {{Wikipedia | Anonyme Funktion}} addiere = @(a, b) a + b; x = 10; y = 20; z = addiere(x, y) oder kürzer addiere = @(a, b) a + b; z = addiere(10, 20) Ausgabe: z = 30 == Nullstellen von Funktionen bestimmen == sinh2 = @(x) sinh(x) + 2; z = fzero(sinh2, 1) Ausgabe: z = -1.4436 Zur Kontrolle soll hier der Graph der Funktion dargestellt werden clear; close all; clc; sinh2 = @(x) sinh(x) + 2; x = -2 : 0.1 : 0; y = sinh2(x); z = fzero(sinh2, 1) plot(x, y); hold on; plot(z, 0, "o", "Color", "red", "LineWidth", 2); text (-1.8, 0.8, "Nullstelle"); line([z -1.7], [0, .7], "Color", "black"); grid on; Ausgabe: [[Datei:octave_funktion5.jpg]] Weiter unten im Text wird die ähnliche Funktion "fsolve" beschrieben. "fzero" benutzt zwei verschiedene Funktionen zur Problemlösung, darunter eben auch "fsolve". Für die Nullstellenbestimmung von Polynomen gibt es die Funktion "roots". Näheres dazu folgt im nächsten Kapitel. == Globale Variablen == Datei addiere.m: function res = addiere() global a b; res = a + b; end Datei test1.m: clear; close all; clc; global a b; a = 5; b = 3; addiere() Ausgabe: ans = 8 == Aufgaben == * Schreiben Sie eine Funktion "ellipse", welche eine Ellipse am Bildschirm darstellt. Zur Erinnerung: Die Parameterdarstellung der Ellipse lautet <math>x = a\cdot\cos(t), y = b\cdot\sin(t), 0 \leq t \leq 2\pi</math>, Funktionsargumente seien a und b. * Schreiben Sie <math>y = 2\cdot\sin(x) + 3\cdot\cos(x/2)</math> ** als normale Funktion ** als Funktionsstring ** als Inlinefunktion ** als anonyme Funktion ** stellen Sie diese Funktion grafisch am Bildschirm dar. = Polynome = == Einzelne Polynomwerte berechnen == % y = 2*x^3 + 5*x^2 + 4 für x = 2 berechnen p = [2, 5, 0, 4]; polyval(p, 2) Ausgabe: ans = 40 == Polynome zeichnen == % y = 2*x^3 - 5*x^2 + 4 für das Intervall -5 <= x <= 5 grafisch darstellen x = -5 : .1 : 5; p = [2, 5, 0, 4]; y = polyval(p, x); plot(x,y); grid on; Ausgabe: [[Datei:octave_polynom1.jpg]] == Nullstellen bestimmen == Für Polynome existiert die Funktion "roots" zur Nullstellenbestimmung. % Nullstellen für y = 2*x^3 - 5*x^2 + 4 bestimmen p = [2, 5, 0, 4]; r = roots(p) Ausgabe: r = -2.76214 + 0.00000i 0.13107 + 0.84077i 0.13107 - 0.84077i Dieses Polynom hat nur eine reelle Nullstelle. Diese liegt, wie am obigen Grafen zu ersehen ist, in der Nähe von -2.762. Die beiden anderen Nullstellen sind konjugiert komplex zueinander (wie es auch sein sollte). == Aufgaben == * Berechnen Sie den Wert für x = 3 des Polynoms <math>y = 2x^4 - 3x^3 - x + 7</math>. * Berechnen Sie die Nullstellen von <math>y = 7x^5 - 3x^2 + 12</math>. * Zeichnen Sie das Polynom <math>y = 12x^4 - 70x</math> im Intervall <math>-5 \leq x \leq 5</math>. = Lineare Gleichungssysteme = Sei <math>Ax = b</math> ein lineares Gleichungssystem. <math>A</math> sei die Koeffizientenmatrix, <math>x</math> der Lösungsvektor und <math>b</math> ein bekannter Vektor. == Einfache Berechnung mittels Gauß-Verfahren == {{Wikipedia | Gaußsches Eliminationsverfahren}} Beispiel: A = [5 1 0 2]; b = [1 2]; x = A \ b Ausgabe: x = 0 1 == Das gmres-Verfahren == gmres steht für Generalized Minimal Residual. {{Wikipedia | GMRES-Verfahren}} A = [5 1 0 2]; b = [1 2]; x = gmres(A, b) Ausgabe: gmres converged at iteration 2 to a solution with relative residual 2.22045e-16 x = -1.6653e-16 1.0000e+00 Das Ergebnis weicht etwas vom gaußschen Verfahren ab, ist aber trotzdem im Rahmen der Näherung korrekt. Weiters kennt Octave noch andere iterative Verfahren, z.B. cgs (Conjugate Gradient Squared) oder bicgstab (Bi-Conjugate Gradient Stabilized). Näheres zu diesen Verfahren siehe in der weiterführenden Literatur (z.B. bei Meister: Numerik linearer Gleichungssysteme, Vieweg+Teubner, 2011) {{Wikipedia | CGS-Verfahren}} == Aufgabe == * Lösen Sie folgendes Gleichungssystem mittels Octave (und zur Kontrolle auch händisch): 5x + 6y - 2z = 12 3x - y - 3z = 6 2x + 2y + 4z = 5 = Nichtlineare Gleichungssysteme = == fsolve und fzero == Löse eine beliebige Gleichung f(x) = 0, z.B. <math> f(x) = x^2 - 5\cos(x) - 10 = 0 </math>: f = @(x) x^2 - 5*cos(x) - 10; xstart = 1; [x, fval, info] = fsolve(f, xstart) Ausgabe: x = 2.4681 fval = -1.7764e-015 info = 1 * x ist eine Nullstelle in der Nähe vom Startwert xstart. * fval ist die Abweichung, den f bei x aufweist. * info ist ein "Fehlercode": 1 bedeutet, dass der relative Fehler in der spezifizierten Toleranz liegt (wie es sein soll). 3 würde bedeuten, dass der Algorithmus nicht konvergiert (z.B. weil keine Nullstelle existiert). Zur Kontrolle plotten wir den Funktionsgraphen: x = - 1 : .1 : 3; y = x.^2 - 5.*cos(x) - 10; plot(x,y, "LineWidth", 2); grid on; Ausgabe: [[Datei:octave_nichtlin1.jpg]] Und siehe da, die gesuchte Nullstelle liegt wie berechnet bei einem Wert nahe 2,5. Die Funktion <math>x^2 - 5\cos(x) - 10</math> hat noch eine zweite Nullstelle, wie in der folgenden Abbildung zu erkennen ist. [[Datei:octave_nichtlin2.jpg]] Diese zweite Nullstelle erhalten wir, wenn der Startwert in der Nähe dieser zweiten Nullstelle liegt, also z.B. bei -1. Ändern Sie einfach den entsprechenden Startwert im obigen Programmcode, und das Programm sollte die Nullstelle in der Nähe von -2.5 liefern. Auch die Funktion ''fzero'' kann zur Lösung einer nichtlinearen Gleichung verwendet werden. Die Hilfe-Funktion von Octave empfiehlt dies sogar eindringlich für den Fall einer nichtlinearen Gleichung in einer Variablen. Für das gleiche Beispiel wie oben kann der Programmcode folgendermaßen aussehen: Eingabe: f = @(x) x^2 - 5*cos(x) - 10; [x0, y0] = fzero (f, [0, 3]) Ausgabe: x0 = 2.4681 y0 = -1.2434e-14 == Gleichungssysteme == Folgende Aufgabe ist dem Buch "Knorrenschild: Numerische Mathematik, Hanser, 2017, Seite 72" entnommen. Zu lösen ist das nichtlineare Gleichungssystem <math>f_1 = 2x_1 + 4x_2 = 0 </math> <math>f_2 = 4x_1 + 8x_2^3 = 0</math> Lösung: f.m: function y = f(x) y(1) = 2*x(1) + 4*x(2); y(2) = 4*x(1) + 8*x(2)^3; end test1.m: clear; close all; clc; [x, fval, info] = fsolve (@f, [0, 1]) [x, fval, info] = fsolve (@f, [0, -1]) [x, fval, info] = fsolve (@f, [0, 0]) Ausgabe: x = -2 1 fval = 0 7.4930e-09 info = 1 x = 2 -1 fval = 0 -7.4930e-09 info = 1 x = 0 0 fval = 0 0 info = 1 == Aufgaben == * Bestimmen Sie die Nullstellen von <math>f(x) = x^2 - 3</math>. Plotten Sie den Grafen. * Bestimmen Sie die Nullstelle von <math>f(x) = sin(x) - x - 1</math>. Plotten Sie den Grafen. * Lösen Sie das folgende Gleichungssystem (und stellen Sie das Ganze grafisch am Bildschirm dar): <math> f_1 = x_1 + x_2 = 0; f_2 = x_1 + \sin{x_2} = 0</math> = Interpolation = == Eindimensionale Interpolation == {{Wikipedia | Interpolation (Mathematik)}} Bezüglich eindimensionaler Interpolation sei auf die [https://docs.octave.org/v11.1.0/One_002ddimensional-Interpolation.html Octave-Dokumentation und Hilfefunktion zum Befehl " interp1"] verwiesen. Dort findet sich auch ein Programmbeispiel, das als Grundlage des folgenden Plots dient: [[Datei:octave_interpol1.jpg]] == Mehrdimensionale Interpolation == Bezüglich mehrdimensionaler Interpolation siehe die [https://docs.octave.org/v11.1.0/Multi_002ddimensional-Interpolation.html Hilfefunktion zu "interp2", "interp3" und "interpn"]. == Aufgabe == * Gegeben seinen die fünf Stützpunkte p1 = [1, 0], p2 = [2, -5], p3 = [3, 2], p4 = [4, 7], p5 = [5, 6]. Legen Sie eine Funktion (die Interpolierende) durch diese Stützpunkte. Eine Lösungsmöglichkeit: xp = [1 2 3 4 5]; yp = [0, -5, 2, 7, 6]; xf = 1 : .1 : 5; spl = interp1(xp, yp, xf, "spline"); pch = interp1(xp, yp, xf, "pchip"); plot(xp, yp, "or", "LineWidth", 2, xf, spl, "LineWidth", 2, ... xf, pch, "LineWidth", 2); legend("stuetzpunkte", "spline", "pchip", "location", "southeast"); [[Datei:octave_interpol3.jpg]] = Differenzialrechnung = == Polynome differenzieren == Es soll das Polynom <math>y = 2x^3 - 5x^2 + 7</math> differenziert werden. % Differenzieren des Polynoms y = 2*x^3 - 5*x^2 + 7 p = [2, -5, 0, 7]; polyder(p) Ausgabe: ans = 6 -10 0 D.h. also, die Ableitung von <math>y = 2x^3 - 5x^2 + 7</math> ist <math>y' = 6x^2 - 10x</math>. == Sonstige Funktionen differenzieren == Als Beispiel differenzieren wir <math>y = 5x\sin{x}</math> und stellen das Ganze grafisch dar. clear; close all; clc; x = 0 : 0.01 : 10; y = 5 .* x .* sin(x); y_strich = diff(y) / 0.01; plot(x, y, "Color", "red", "LineWidth", 2); hold on; plot(x(1:length(x)-1), y_strich, "Color", "blue", "LineWidth", 2); legend("y", "y'"); grid on; Ausgabe: [[Datei:octave_diff1.jpg]] diff(y) ist der Vektor aus den Differenzen y(2)-y(1), ..., y(n)-y(n-1). Für die genaue Arbeitsweise der diff-Funktion siehe "help diff". == Aufgaben == * Differenzieren Sie das Polynom <math>y = 5y^5 - y^4 + 6y - 4</math>. * Differenzieren Sie die Funktion <math>y = \log(x) + 10x</math> und stellen Sie y, sowie y' grafisch am Bildschirm dar. * Differenzieren Sie die Funktion <math>y = \frac{\sinh(x)}{(1+x)}</math> und stellen Sie y, sowie y' grafisch am Bildschirm dar. = Integralrechnung = == Polynome integrieren == Berechnen Sie das unbestimmte Integral von <math>y = 2x^3 - 7x^2 + 7</math> p = [2, -7, 0, 7]; p_int = polyint(p) Ausgabe: p_int = 0.50000 -2.33333 0.00000 7.00000 0.00000 Das Ergebnis lautet also <math>\int{y dx} = 0.5x^4 - 2.33333x^3 + 7x + C</math> (auf die Integrationskonstante C darf nicht vergessen werden!). == Gauß-Quadratur == {{Wikipedia | Gauß-Quadratur}} Berechnen Sie das Integral <math>\int_{0}^{3}x^2 dx</math> mittels Gauß-Quadratur. Datei f.m: function y = f(x) y = x^2; end Datei test1.m: [v, ier, nfun, err] = quad ("f", 0, 3) Ausgabe: v = 9.0000 ier = 0 nfun = 21 err = 9.9920e-014 Erläuterung zur Ausgabe: * v ... Resultat der Integration * ier ... integer error code * nfun ... Anzahl der Funktionsaufrufe * err ... Fehler in der Lösung == Quadratur mittels adaptiver Lobatto-Regel == Berechnen Sie diesmal das Integral <math>\int_{0}^{3}x^2 dx</math> mittels Lobatto-Quadratur. f = inline("x.^2"); v = quadl (f, 0, 3) Ausgabe: v = 9 Wie weiter oben bereits angesprochen kann bei der Ausgabe eine Warnung erfolgen. Inline-Funktionen sind inzwischen als obsolet erklärt und es sollen stattdessen anonyme Funktionen verwendet werden. Zwecks Übung sei nachfolgend nochmals dieses Beispiel berechnet. Diesmal wird aber eine anonyme Funktion verwendet. v = quadl (@(x) x.^2, 0, 3) == Aufgaben == * Integrieren Sie das Polynom <math>y = 5y^5 - y4 + 6y - 4</math>. * Integrieren Sie die Funktion <math>y = \log(x) + 10x</math> von -5 bis 5. * Integrieren Sie die Funktion <math>y = x^3</math> von 0 bis 4. Verwenden Sie hierzu die Simpsonregel (siehe dazu in der Hilfefunktion den Befehl "quadv"). = Gewöhnliche Differenzialgleichungen = == ode23, ode45 und lsode == Für die Lösung von Differenzialgleichungen stehen die Funktionen * ode23 bzw. * ode45 zur Verfügung. Diese Funktionen implementieren das Runge-Kutta-Verfahren. "ode" steht für "Ordinary Differential Equation" (also auf Deutsch für "Gewöhnliche Differentialgleichung"). Die Zahlen bei ode23 oder ode45 stehen für die Ordnung. {{Wikipedia | Runge-Kutta-Verfahren}} Beispiel <math>y' = x^2 + y^3</math>: clear; close all; clc; [x, y] = ode45(@(x,y) (x^2+y^3), [0 1], 0); plot(x, y, "LineWidth", 2); Ausgabe: [[Datei:octave_ode1.jpg]] Bezüglich der genauen Funktionsweise von "ode45" (oder "ode23") siehe die Octave-Hilfe. Auch die Funktion "lsode" steht zur Lösung von ODEs zur Verfügung. Beispiel <math>y' = x + y</math>: clear; close all; clc; t = 0 : .1 : 5; [y2, istate, msg] = lsode(@(x,y) (x + y), 1, t); istate msg plot(t, y2); Ausgabe: istate = 2 msg = successful exit [[Datei:octave_lsode1.jpg]] Bezüglich der genauen Funktionsweise von "lsode" siehe die Octave-Hilfe. == Aufgaben == * Lösen Sie die Differenzialgleichung <math>y' = \frac{1}{x\cdot y}</math> mit Octave. Kontrollieren Sie das Ergebnis, indem Sie die DGl händisch lösen. * Lösen Sie die Differenzialgleichung <math>m' = -k\cdot m</math>. Kontrollieren Sie das Ergebnis, indem Sie die DGl händisch lösen. * Lösen Sie die Differenzialgleichung <math>y' = \sqrt{|y|}</math>. = Die Fast-Fourier-Transformation = {{Wikipedia | Schnelle Fourier-Transformation}} Für die Funktion "fft" siehe das Octave-Hilfesystem. = Mengenrechnung = == Vereinigungsmenge == v1 = [1 2 3 4]; v2 = [2 4 6]; union(v1, v2) Ausgabe: ans = 1 2 3 4 6 == Schnittmenge == v1 = [1 2 3 4]; v2 = [2 4 6]; intersect(v1, v2) Ausgabe: ans = 2 4 = Logik = Logische Operatoren werden oft benötigt, z.B. bei Schleifen und Verzweigungen. Octave kennt die logischen Operatoren <code>or, and, not</code> und <code>xor</code>. Als Beispiel sei die Wahrheitstabelle für den Operator <code>or</code> dargestellt. A B A or B -------------------- true true true true false true false true true false false false In Octave kann das so ausgedrückt werden: or( true, true ) or( true, false ) or( false, true ) or( false, false ) Ausgabe: ans = 1 ans = 1 ans = 1 ans = 0 Zahlen ungleich 0 stehen für true, 0 für false. Z.B.: or( 22, 0) Ausgabe: ans = 1 Äquivalent zu <code>or</code> ist der Operator <code>|</code>: 22 | 0 Ausgabe: ans = 1 Zwecks näheren Informationen zu den Operatoren <code>and (&, &&), not (~, !)</code> und <code>xor</code> bemühe man Octaves Help-Funktion. Bitweise logische Funktionen kennt Octave auch, so kann man z.B. zwei Zahlen mit dem bitweisen OR-Operator verknüpfen: 0b1100101 0b0110001 --------- 0b1110101 Oder in Dezimalzahlen: 101 49 --- 117 In Octave: bitor( 0b1100101, 0b0110001 ) dec2bin( ans ) Ausgabe: ans = 117 ans = 1110101 Zu <code>bitand, bitxor</code> usw. siehe die Octave-Hilfe-Funktion. = Stochastik = ==Deskriptive Statistik == === Lageparameter === Arithmetischer Mittelwert: vec = [1 2 3 4 5 12 13]; mw = mean(vec) Ausgabe: mw = 5.7143 Der Median oder Zentralwert läßt sich folgendermaßen berechnen: vec = [1 2 3 4 5 12 13]; median(vec) Ausgabe: ans = 4 Der Modus oder häufigste Wert läßt sich mittels "mode"-Funktion eruieren: vec = [1 2 1 3 5 1 2 7]; [m, f, c] = mode (vec); disp(m); disp(f); disp(c); Ausgabe: 1 3 { [1,1] = 1 } m (erste Zeile der Ausgabe) ist der Modus. f (zweite Zeile) ist die Häufigkeit. Näheres dazu siehe im Octave-Hilfesystem. === Streuungsparameter === Varianz: vec = [1 2 3 1 1 6 7]; v = var(vec) Ausgabe: v = 6.3333 Standardabweichung: vec = [1 2 3 1 1 6 7]; s = std(vec) Ausgabe: s = 2.5166 === Grafiken erzeugen === Histogramme: v = [1 1 2 3 1 6 7 6 1 1 1 2]; hist(v, max(v)); Ausgabe: [[Datei:octave_histo2.jpg]] Balkendiagramme: v = [1 1 2 3 1 6 7 6]; bar(v); Ausgabe: [[Datei:octave_bar111.jpg]] Treppendiagramm: v = [1 1 2 3 1 6 7 6]; stairs(v); Ausgabe: [[Datei:octave_stairs1.jpg]] Stabdiagramm: v = [1 1 2 3 1 6 7 6]; stem(v); Ausgabe: [[Datei:octave_stem1.jpg]] === Aufgaben === Gegeben sei folgende Datentabelle mit den Werten: v1 = [3 4 1 1 7 2 1 9 2 5 9 7 2 2 9 2 2 1 2 8] v2 = [1 1 0 2 3 4 1 2 7 0 2 1 5 5 5 4 5 2 5 0] * Berechnen Sie die Lageparameter und Streuungsparameter des Vektors v1. * Berechnen Sie Kovarianz und Korrelationskoeffizient der beiden zugeordneten Vektoren v1 und v2. * Zeichnen Sie das Histogramm des Vektors v1. == Wahrscheinlichkeitsrechnung == === Kombinatorik === Der Binomialkoeffizient: <math>\binom{n}{k}=\frac{n!}{k!(n-k)!}</math> In Octave z.B.: n = 30; k = 4; n_ueber_k = nchoosek (n, k) Ausgabe: n_ueber_k = 27405 Permutationen sind die verschiedenen Anordnungsmöglichkeiten mit der Anzahl n! = n * (n-1) * ... * 2 * 1. Beispiel: v = [1, 2, 3]; p = perms(v) Ausgabe: p = 1 2 3 2 1 3 1 3 2 2 3 1 3 1 2 3 2 1 n! (n-Fakultät) selbst kann so berechnet werden: % 10! n = 10; factorial (n) Ausgabe: ans = 3628800 === Verteilungen === Octave kennt eine ganze Reihe von Dichte- und Verteilungsfunktionen und zwar * Probability Density Functions (PDF, Dichtefunktionen) * Cumulative Distribution Functions (CDF, Verteilungsfunktionen) Z.B.: * Binomialverteilung: ** binopdf ** binocdf * Hypergeometrische Verteilung: ** hygepdf ** hygecdf * Normalverteilung: ** normpdf ** normcdf * Studentverteilung: ** tpdf ** tcdf * Weibullverteilung: ** wblpdf ** wblcdf Ein Codebeispiel zur Binomialverteilung: clear; close all; clc; x = 0 : 1 : 10; n = 10; p = 0.1; b1 = binopdf (x, n, p); b2 = binocdf (x, n, p); subplot(221); bar(x, b1); title("binopdf"); text(1, 0.1, "n=10; p=0.1"); subplot(222); bar(x, b2); title("binocdf"); text(1, 0.5, "n=10; p=0.1"); n = 10; p = 0.5; b1 = binopdf (x, n, p); b2 = binocdf (x, n, p); subplot(223); bar(x, b1); text(1, 0.1, "n=10; p=0.5"); subplot(224); bar(x, b2); text(1, 0.1, "n=10; p=0.5"); Ausgabe: [[Datei:octave_bino3.jpg]] Möglicherweise erhalten Sie bei diesem Beispiel eine Fehlermeldung in der Form error: 'binopdf' undefined near line 8, column 6 The 'binopdf' function belongs to the statistics package from Octave Forge which you have installed but not loaded. To load the package, run 'pkg load statistics' from the Octave prompt. Laden Sie einfach das Paket für die Statistikfunktionen, wie in der Fehlermeldung beschrieben. Ein Codebeispiel zur Normalverteilung: clear; close all; clc; x = -4 : .1 : 4; b1 = normpdf(x); b2 = normcdf(x); subplot(121); plot(x, b1); title("normpdf"); grid on; subplot(122); plot(x, b2); title("normcdf"); grid on; Ausgabe: [[Datei:octave_norm111.jpg]] == Zufallszahlengeneratoren == Octave kann Zufallszahlen aus einer großen Anzahl von Verteilungen generieren, z.B. * Chi-Quadrat-Verteilung: chi2rnd * Log-Normal-Verteilung: lognrnd * Normalverteilung: normrnd Codebeispiel: mean = 0; standardabweichung = 1; zufallszahl = normrnd (mean, standardabweichung) Ausgabe (gibt eine Zufallszahl rund um den Mittelwert 0 aus), z.B. zufallszahl = 1.0451 Auch Zufallsvektoren (oder Zufallsmatrizen) können erstellt werden: mean = [0 0 0 0 0]; standardabweichung = 1; zufallsvektor = normrnd (mean, standardabweichung) Ausgabe, z.B.: zufallsvektor = 1.47108 -0.51280 0.52726 0.31730 -1.04422 = Einfache Benutzeroberflächen erstellen= == Input == fflush (stdout); x = input("Gib eine Zahl ein: "); disp(2 * x); Ein-/Ausgabe: Gib eine Zahl ein: 12 24 Der "fflush"-Befehl sollte immer vor dem Aufruf des input-Befehls aufgerufen werden. Näheres zu "fflush" siehe im Octave-Hilfesystem. == Diverse einfache vorgefertigte Dialoge == Fehlermeldung: errordlg("Fehlermeldung"); [[Bild:octave_fehlermeldung1.jpg]] Warnung: warndlg("Warnung"); [[Bild:octave_warnung1.jpg]] Hilfedialog: helpdlg [[Bild:octave_hilfe1.jpg]] Abfragedialog: button = questdlg ("Frage") [[Bild:octave_abfrage1.jpg]] Eingabedialog: in = inputdlg("Eingabe") [[Bild:octave_eingabe1.jpg]] Messagebox: h = msgbox ("Eine Mitteilung!"); [[Bild:octave_messagebox1.jpg]] == Komplexere vorgefertigte Dialogboxen == === Menübox === auswahl = menu("Auswahl", "Affe", "Elefant", "Loewe", "Sonstiges"); switch(auswahl) case 1 disp "Affe quietscht" case 2 disp "Elefant trompetet" case 3 disp "Loewe bruellt" otherwise disp "Sonstiges" end Ausgabe: [[Bild:octave_menu1.jpg]] Es werde beispielsweise die Nummer 2 gewählt. Ausgabe: Elefant trompetet === Dialogliste === clear; close all; clc; opt = {"Eins", "Zwei", "Drei"}; [sel, ok] = listdlg ("ListString", opt, "SelectionMode", "Multiple"); if (ok == 1) for i = 1 : numel(sel) disp(opt{sel(i)}); end else disp("Cancel"); end [[Bild:octave_dialog1.jpg]] Es werden beispielsweise alle Optionen ausgewählt. Ausgabe: Eins Zwei Drei === Fortschrittsbalken === h = waitbar ([0.5]) [[Bild:octave_fortschritt1.jpg]] === Datei- und Verzeichnisdialoge === Dateidialog: [fname, fpath, fltidx] = uigetfile () [[Bild:octave_dateidialog2.jpg]] Ähnlich sind die Befehle "uiputfile" und "uigetdir". Dazu sei auf die Octave-Hilfe verwiesen. == Eigene Dialoge kreieren == Dieses Thema sei hier nur kurz angerissen. Programmcode: d = dialog("Position", [300, 300, 250, 150], "Name", "Dialog"); txt = uicontrol("Parent", d, ... "Style", "text", ... "Position", [20, 80, 210, 40], ... "String", "Hallo Welt"); btn_servus = uicontrol("Parent", d, ... "Position", [30, 20, 80, 30], ... "String", "Servus", ... "Callback", "disp('Servus angeklickt!');"); btn_hallo = uicontrol("Parent", d, ... "Position", [140, 20, 80, 30], ... "String", "Hallo", ... "Callback", "disp('Hallo angeklickt!');"); uiwait(d); Ausgegebenes Dialogfenster: [[Bild:octave_dialog100.jpg]] Ausgabe auf der Konsole (je nach gedrücktem Button), z.B.: Servus angeklickt! Die Position wird als [links, unten, breite, höhe] angegeben. Der Koordinatennullpunkt liegt, bezogen auf das Elternfenster, links unten. Es sind auch negative Koordinatenwerte möglich. Sinnvoll ist das z.B. bei einem dynamischen Ausblenden ohne zu löschen, oder für Animationen. [[Bild:Cartesian-coordinate-system.svg | 150px]] Wer mehr dazu wissen will, sei auf die Octave-Dokumentation verwiesen. Insbesondere siehe * dialog * uicontrol * uipanel * uibuttongroup * uitable * uimenu * uitoolbar == Aufgaben == === Aufgabe 1 === Erzeugen Sie ein Dialogfenster mit einem Texteingabefeld und einem Button. Beim Klicken auf den Button soll der Eingabetext auf der Konsole ausgegeben werden. Das Dialogfenster soll also in etwa so aussehen: [[Bild:octave_dialog105.jpg]] Da dies etwas komplizierter als das oben gezeigte Beispiel ist, werden nachfolgend ein paar Codefragmente zwecks Lösung angegeben: Datei button_callback.m: function button_callback(editHandle) eingegText = get(editHandle, "String"); disp(eingegText); end Codefragement in test1.m: % ... edit = uicontrol(% ... "Style", "edit", ... %, ... "HorizontalAlignment", "left"); btn = uicontrol(% ... "Callback", @(src, event) button_callback(edit)); % ... Aufruf mit: octave test1.m Eingabe von z.B. "Hallo Welt!": [[Bild:octave_dialog106.jpg]] Ausgabe auf der Konsole nach dem Drücken des Buttons: Hallo Welt! === Aufgabe 2 === Erzeugen Sie ein Dialogfenster mit zwei Eingabefeldern und einem Button. Eingegeben in diese zwei Eingabefelder werden vom Benutzer Zahlen. Auf der Konsole ausgegeben werden soll, nach Drücken des Buttons, das Produkt dieser zwei Zahlen. Auch hier werden wieder Codefragemente angegeben. Datei button_callback.m: function button_callback(edit1, edit2) zahl1 = str2double(get(edit1, 'String')); zahl2 = str2double(get(edit2, 'String')); disp(zahl1 * zahl2); end Codefragment Datei test1.m: % ... btn = uicontrol("Parent", d, ... % ... "Callback", @(src, event) button_callback(edit1, edit2)); % ... Was passiert, wenn der Benutzer keine Zahlen, sondern beliebige Strings eingibt? = Fehlerhandling mit try/catch = Die try/catch-Anweisung entspricht weitgehend jener, die aus höheren Programmiersprachen wie C++ oder Java bekannt sind. Aufgebaut ist diese Anweisungsfolge so: try BODY catch CLEANUP end Beispiel: clear; close all; clc; try a = 10 / "zahl"; disp(a); disp("Weiter im try-Block"); catch disp("Catch: Kann nicht durch einen String dividieren"); end Ausgabe: Catch: Kann nicht durch einen String dividieren Sinnvoll ist die try/catch-Folge, wenn z.B. auch in einem Fehlerfall Dateien wieder geschlossen werden sollen. = Ein- und Ausgabe = == Formatierte Ausgabe am Bildschirm, formatiertes Lesen von der Tastatur == Folgendes Beispiel ist der Octave-Hilfe (von Octave 3.0.3) entnommen: pct = 37; filename = "foo.txt"; printf ("Processed %d%% of `%s'.\nPlease be patient.\n", pct, filename); Ausgabe: Processed 37% of `foo.txt'. Please be patient. "printf" gibt einen formatierten String am Bildschirm (genauer in den Stream stdout) aus. Wie man sieht, orientiert sich das Format an der Programmiersprache C. Für das formatierte Lesen vom Stream stdin (normalerweise also von der Tastatur) steht das Pendant "scanf" bereit. == Von einem String lesen bzw. in einen String schreiben == Bezüglich der Funktionen * sprintf und * sscanf sei auf die Octave-Hilfefunktion verwiesen. == Lesen und Schreiben von einer Datei == === Datei schreiben === % Datei c:\tmp\datei.test zum Schreiben öffnen datei = fopen ("c:/tmp/datei.test", "w"); % Etwas in die Datei schreiben fprintf(datei, "Hallo, Welt!"); % Datei schließen fclose(datei); === Datei lesen === % Datei c:\tmp\datei.test zum Lesen öffnen datei = fopen ("c:/tmp/datei.test", "r"); % Etwas aus der Datei lesen [string] = fscanf(datei, "%s"); disp(string); % Datei schließen fclose(datei); Ausgabe: Hallo,Welt! === Dateiende prüfen === Mittels des Befehls feof(FID); kann das Dateiende geprüft werden. Wenn die EOF-Bedingung zutrifft, dann wird 1 zurückgegeben, wenn nicht dann 0. Ein Beispiel folgt später als Lösung einer Aufgabe. === warning und error === Eine Warnung kann man am stderr-Stream ausgeben. Die warning-Funktion entspricht ansonsten der printf-Funktion. Nach Ausgabe der Warnung wird das Programm normal fortgesetzt. m = [1 2 3 6]; if(det(m) == 0) warning("Matrix ist singulaer"); end disp("Weiter geht's"); Ausgabe: warning: Matrix ist singulaer warning: called from test1 at line 5 column 3 Weiter geht's Schärfer ist der error-Befehl. Die Fehlermeldung wird am stderr-Stream ausgegeben. Vom Format her entspricht diese Funktion dem printf-Befehl. Nach Ausgabe der Fehlermeldung wird das Programm beendet. m = [1 2 3 6]; if(det(m) == 0) error("Matrix ist singulaer"); end disp("Weiter geht's"); Ausgabe: error: Matrix ist singulaer error: called from test1 at line 5 column 3 == Aufgaben == * Schreiben Sie ein Programm, das die Zahlen 1 bis 10 zeilenweise in eine Datei ausgibt. * Lesen Sie diese Zeilen wieder von der Datei ein und geben Sie sie am Bildschirm aus. * Gegeben sei eine Datei. Lesen Sie die Daten aus dieser Datei ein und rechnen Sie per Octave-Programm den Gesamtpreis für alle Tiere aus. Die Anzahl der Zeilen und der genaue Dateinhalt sei Ihnen vorab nicht bekannt. Bekannt ist nur das Datenformat wie folgt: Nr. Name Einzelpreis Stueck 1 Affe 15000.50 2 2 Loewe 11000.90 1 3 Nashorn 45000.10 1 4 Elefant 51245.90 3 5 Tiger 9000.70 2 6 Maus 34.90 12 Eine einfache Lösung ohne Schnickschnack (Fehlerüberprüfungen etc.) für dieses Beispiel könnte wie folgt aussehen: clear; close all; clc; datei = fopen ("c:/tmp/daten1.txt", "r"); gesamtpreis = 0; % Kopfzeile einlesen [nr, name, preis, stk] = fscanf(datei, "%s %s %s %s", "C"); while(feof(datei) == 0) % Datensätze einlesen [nr, name, preis, stk] = fscanf(datei, "%d %s %f %d", "C"); gesamtpreis += preis*stk; end fclose(datei); disp("Gesamtpreis = "); format long; disp(gesamtpreis); Ausgabe: Gesamtpreis = 258159.900000000 = Datencontainer = == Datenstrukturen == Pseudocode: STRUKTUR s ZAHL a VEKTOR b STRING c END Octave-Code: s.a = 45.9; s.b = [1 2 3 4 5]; s.c = "Hallo!"; s Ausgabe: s = scalar structure containing the fields: a = 45.90000000000000 b = 1 2 3 4 5 c = Hallo! Um ein paar weitere Möglichkeiten zum Handling mit Datenstrukturen aufzuzeigen, sei folgender Code aufgeführt. Datei addsub.m function res = addsub(a, b) res.x = a + b; res.y = a - b; end Datei test1.m clear; clc; addsub(10, 50) r = addsub(30, 70) r.x r.y ++r.x Ausgabe: ans = scalar structure containing the fields: x = 60 y = -40 r = scalar structure containing the fields: x = 100 y = -40 ans = 100 ans = -40 ans = 101 Die Funktion "addsub" liefert die Struktur res mit zwei Zahlenwerten. Die Elemente der Datenstruktur können auch außerhalb der Funktion angesprochen werden. Auch gerechnet werden kann mit diesen Elementen. == Cell Arrays == Manchmal kann es sinnvoll sein mehrere Variablen verschiedenen Typs und Größe in einer Variablen zu speichern. Dies funktioniert ähnlich wie bei Vektoren. Es werden aber geschweifte Klammern verwendet. Eingabe: c = {"Hallo Welt!", [2 2], 44} c{1} c{1:2} Ausgabe: c = { [1,1] = Hallo Welt! [1,2] = 2 2 [1,3] = 44 } ans = Hallo Welt! ans = Hallo Welt! ans = 2 2 Elemente des Cell Arrays können auch wieder mit Variablen anderen Typs überschrieben werden. c = {"Hallo Welt!", [2 2], 44}; c{1} = 5; c Ausgabe: c = { [1,1] = 5 [1,2] = 2 2 [1,3] = 44 } = Objektorientierte Programmierung = Octave unterstützt auch objektorientierte Programmierung mit dem Schlüsselwort <code>classdef</code> (ab Version 4.0). Dieses Thema ist aber etwas für fortgeschrittene Anwender und wird hier nicht behandelt. Wen es trotzdem interessiert, der sei auf die [https://docs.octave.org/latest/Object-Oriented-Programming.html Octave-Dokumentation] verwiesen. = Octave im Zusammenspiel mit anderen Programmiersprachen = == .oct-Dateien == Eine .oct-Datei in GNU Octave ist eine kompilierte C/C++-Datei, die als dynamisch ladbares Objekt direkt in Octave ausgeführt werden kann. oct-Dateien sind meist schneller als nativer Octave-Code. 1. Schritt: Erstelle z.B. eine C++-Datei ''quadrat.cc'' (es soll das Quadrat einer Zahl berechnet werden) #include <octave/oct.h> DEFUN_DLD(quadrat, args, nargout, "Quadrat einer Zahl berechnen") { double x = args(0).double_value(); double res = x*x; return octave_value(res); } * <code>DEFUN_DLD</code> ist ein Makro. Damit wird angezeigt, dass es sich um eine dynamisch ladbare Funktion handelt ('''De'''fine '''Fun'''ction – '''D'''ynamically '''L'''inked '''D'''istribution). * Der erste Parameter muss mit dem Namen der Funktion und der erstellten oct-Datei übereinstimmen, also hier <code>quadrat</code>. * <code>args</code>: Argumente die beim Aufruf in Octave übergeben werden. * <code>nargout</code>: Anzahl der Rückgabewerte. * "Quadrat einer Zahl berechnen": Dokumentationsstring 2. Schritt: ''quadrat.cc'' kompilieren # Terminal öffnen # In das quadrat.cc-Verzeichnis wechseln # Octave aufrufen # cc-Datei zu einer oct-Datei kompilieren: <code>mkoctfile quadrat.cc</code> # Wenn das ohne Fehlermeldung durchläuft, so sollte im Anschluss eine (relativ große) ''quadrat.oct''-Datei im entsprechenden Verzeichnis zu finden sein. 3. Schritt: Funktion <code>quadrat()</code> in Octave aufrufen, z.B.: y = quadrat(5) Es ergibt sich folgende Ausgabe: y = 25 Damit das funktioniert, müssen natürlich die entsprechenden Werkzeuge (Compiler etc.) installiert sein. Darauf wird hier aber nicht näher eingegangen. Die Dokumentation zu den .oct-Dateien findet sich auf [https://docs.octave.org/v11.1.0/Oct_002dFiles.html]. == Andere Möglichkeiten == * .mex-Dateien ('''M'''ATLAB '''Ex'''ecutables): Wenn man kompatibel zu MATLAB bleiben muss * Java- oder Python-Schnittstelle (Nachteil: langsamer als .oct-Dateien) Bevor man aber diese Möglichkeiten in Anspruch nimmt, sollte man vektorisieren. Damit lassen sich oft schon höhere Geschwindigkeiten erzielen. Dieses Thema wurde früher schon kurz behandelt. = Octave GUI = Das GUI-Programm ('''G'''raphical '''U'''ser '''I'''nterface) von Octave entspricht im Wesentlichen anderen Programmier-Benutzeroberflächen (IDEs ... '''I'''ntegrated '''D'''evelopment '''E'''nvironments), wie z.B. Eclipse (Java), Code::Blocks (C/C++) oder Spyder (Python). Nachfolgend ist ein Screenshot des Octave-GUI mit einigen Anmerkungen dargestellt. [[Bild:octave_gui2.jpg|600px]] Probieren Sie einfach die Möglichkeiten der zur Verfügung gestellten GUI/IDE aus. = Komplexere Aufgaben = * Berechnen Sie die Fläche, den Umfang, die Seitenlängen, den Inkreis und den Umkreis eines Dreiecks. Stellen Sie das Dreieck inklusive In- und Umkreis grafisch dar. Speichern Sie die Daten in einer Datei. Die drei Eckpunkte dieses Dreiecks sollen vom Benutzer beliebig vorgegeben werden. * Die Werte einer beliebig großen quadratischen Matrix seien in einer Datei gespeichert. Lesen Sie diese Datei ein und berechnen Sie daraus die Determinante der Matrix, die inverse Matrix, die Eigenvektoren und -werte, die Spur. Führen Sie die LR-Zerlegung durch. Geben Sie diese Werte am Bildschirm aus. = Ausblick = Dies war eine kurze Einführung in die Berechnungs- und Darstellungsmöglichkeiten mit Octave. Es sollten etliche relevante Themen behandelt, oder zumindest kurz angesprochen worden sein. Wem dieser Text nicht ausreichend ist, der sei auf die entsprechende weiterführende Literatur, die Octave-Hilfefunktion und die Octave-Dokumentation verwiesen. Octave kennt noch viel mehr Befehle, als hier dargestellt wurden. Aber auch Octave selbst ist erweiterbar. Man siehe z.B. Octave Packages (https://gnu-octave.github.io/packages/) oder man schreibt selbst Erweiterungen. {{Navigation_zurückhochvor_buch| zurücktext=Maxima| zurücklink=Ing Mathematik: Computeralgebrasysteme am Beispiel von Maxima| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Julia für Ingenieure| vorlink=Ing Mathematik: Julia}} f4zigun7mdvnyir1revuj8yycz5rnwn 1091123 1091113 2026-09-20T06:50:43Z Intruder 1513 /* Andere Möglichkeiten */ Link hinzu 1091123 wikitext text/x-wiki {{Navigation_zurückhochvor_buch| zurücktext=Maxima| zurücklink=Ing Mathematik: Computeralgebrasysteme am Beispiel von Maxima| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Julia für Ingenieure| vorlink=Ing Mathematik: Julia}} = Hallo Welt und allgemeine Hinweise = == Was ist Octave == * Octave ist eine Software zur numerischen Lösung mathematischer Probleme. * Octave ist Open-Source (GPL-Lizenz). * Octave ist für viele Betriebssysteme erhältlich (z.B. für Linux, MS Windows, macOS). * Octave ist weitgehend kompatibel zum Numerik-Standardprogramm {{W|Matlab|MATLAB}}. * Octave ist ein Interpreter. * Octave als Programmiersprache ist case-sensitive - d.h. Groß- und Kleinschreibung ist relevant bei der Eingabe von Befehlen. {{Wikipedia | GNU Octave}} == Octave installieren == === MS Windows === Laden Sie das aktuelle Octave-Paket von der Webseite [https://octave.org/download] herunter. Weiter geht es wie bei jedem anderen größeren zu installierenden Programm. Einfach das Installationsprogramm im Explorer doppelklicken und den Anweisungen des Setup-Programmes folgen. === Linux === Entweder ist Octave bereits standardmäßig installiert, ansonsten ist die Installation mittels Paketmanagementsystem einfach möglich. Dazu gehen Sie auf die Seite [https://wiki.octave.org/Category:Installation], wählen die vorhandene Linux-Variante und folgen der angegebenen Beschreibung (z.B. <code>zypper ... </code> für openSUSE. Oder Sie benutzen unter openSUSE Tumbleweed direkt das Setup-Programm {{W|YaST}}). == Octave starten == === MS Windows === Das Icon für das Octave-Programm doppelklicken (für das Konsolenprogramm ... CLI, für die grafische Benutzeroberfläche ... GUI). Und schon startet das Programm. [[Datei:octavestart1.jpg]] === Linux === In einer Linux-Konsole den Befehl "octave" eintippen, mit der RETURN-Taste bestätigen, und das Programm (CLI) startet: GNU Octave (x86_64-suse-linux-gnu) version 11.1.0 Copyright (C) 1993-2026 The Octave Project Developers. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software; see the source code for copying conditions. There is NO WARRANTY, to the extent permitted by law. For details, type 'warranty'. Home page: <https://octave.org> Support resources: <https://octave.org/support> Improve Octave: <https://octave.org/get-involved> For changes from previous versions, type 'news'. octave:1> Um Octave mit der eingebauten GUI zu starten, kann der Befehl <code>octave --force-gui</code> verwendet werden: [[File:Gnu_Octave_IDE.png|600px]] Alternativ kann, z.B. unter openSUSE Tumbleweed (mit {{W|KDE Plasma 6|KDE-Plasma}}), die Octave-IDE auch über den Application Launcher im Menü ''Education -> GNU Octave'' gestartet werden. == Ein paar Worte zur Erklärung == Im Folgenden wird immer das Konsolenprogramm (CLI ... Command Line Interface) für die Eingabe von Befehlen benutzt. Erst gegen Ende dieses Textes wird auch kurz auf das GUI von Octave eingegangen. Teilweise werden Ergebnisse der älteren Octave-Version 3.0.3 dargestellt. Die dargestellten Grafiken und Ausgabetexte können je nach Version leicht voneinander abweichen. Der Text wurde ursprünglich mit der Octave-Version 3.0.3 erstellt und anschließend auf die Versionen 5.2 bis 11.1.0 aktualisiert. Dieser Mischmasch sollte aber kein Problem darstellen. Getestet wurden die Beispiele ursprünglich unter dem Betriebssystem MS Windows 10, später auch mit MS Windows 11, bzw. mit openSUSE Leap 15.6 (Octave 6.4.0, nur vereinzelt) und ab März 2026 auch mit openSUSE Tumbleweed (ab Octave 10.3.0, nur vereinzelt). == Ein erstes Programm == Kommentare werden in Octave mit dem Prozentzeichen (%) oder alternativ mit der Raute (#) eingeleitet. Sie werden vom Octave-Interpreter ignoriert. Will man kompatibel mit MATLAB bleiben, so ist die Version mit dem %-Zeichen vorzuziehen. Text kann mit der disp-Funktion ausgegeben werden. Starten Sie Octave und geben sie folgende Anweisungen zeilenweise ein octave-3.0.3.exe:1> % Das ist ein Kommentar octave-3.0.3.exe:2> # und das auch octave-3.0.3.exe:3> disp "Hallo Welt!" Als Ergebnis erhalten Sie Hallo Welt! Der Prompt (z.B. octave-3.0.3.exe:1>) ist natürlich abhängig von der Octave-Version und den schon eingegebenen Zeilen. Er ist selbstverständlich nicht einzutippen, sondern wird vom Octave-System geliefert. Strings können in Octave entweder in Anführungszeichen (") gesetzt werden oder in Hochkommatas('). In diesem Text wird die erste Variante bevorzugt eingesetzt. = Octave als Taschenrechner = == Allgemeines == Wir wollen 3 * 5 berechnen. Dazu starten wir Octave. Geben Sie dann die Formel octave-3.0.3.exe:1> 3 * 5 ein, drücken die Taste ENTER/RETURN und erhalten als Ergebnis ans = 15 Auch kompliziertere Ausdrücke sind möglich. Beispielsweise mit Winkelfunktionen, Quadratwurzeln etc. Wir wollen nun den Ausdruck <math>\sin\sqrt{15}</math> berechnen : octave-3.0.3.exe:2> sin(sqrt(15)) ans = -0.6679 Octave kennt eine Handvoll von Konstanten, z.B.: Zeilenweise Eingabe: % Die Kreiszahl PI pi % Die Eulersche Zahl e % Zur Maschinengenauigkeit eps Ausgabe: ans = 3.1416 ans = 2.7183 ans = 2.2204e-016 "ans" steht übrigens für den Begriff "answer" (auf Deutsch "Antwort"). Mit "ans" kann wie mit jeder anderen Variable oder Konstanten weitergerechnet werden, z.B.: Eingabe: % Der Kreisradius sei 10 10 % Der Kreis-Umfang mit diesem Radius sei folgendes 2 * pi * ans Ausgabe: ans = 10 ans = 62.832 Die Ausgabe eines Befehls am Bildschirm (das "Echo") kann übrigens durch Anwendung des Semikolons (;) unterdrückt werden. Gezeigt werden soll dies nun mit Hilfe des obigen Beispiels. Es soll nur der Umfang ausgegeben werden, nicht der Radius. Eingabe: % Der Kreisradius sei 10 10; % Der Kreis-Umfang mit diesem Radius sei folgendes 2 * pi * ans Ausgabe: ans = 62.832 Vielleicht ist manchem die Genauigkeit, mit der Echo bzw. der Befehl disp Werte ausgibt, nicht ausreichend. Dem kann Abhilfe verschafft werden und zwar so: Eingabe: format short pi format long pi format longe pi % usw. Ausgabe: ans = 3.1416 ans = 3.14159265358979 ans = 3.14159265358979e+00 Beenden lässt sich das Octave-Programm durch Eingabe von quit oder exit (und natürlich zur Bestätigung die RETURN-Taste drücken). == Die Hilfefunktion von Octave == Die Eingabe von help mit Angabe eines Funktionsnamens liefert detaillierte Infos zu der gesuchten Funktion. Eingabe: help sin Ausgabe: 'sin' is a built-in function from the file libinterp/corefcn/mappers.cc -- Y = sin (X) Compute the sine for each element of X in radians. See also: asin, sind, sinh. Additional help for built-in functions and operators is available in the online version of the manual. Use the command 'doc <topic>' to search the manual index. Help and information about Octave is also available on the WWW at https://www.octave.org and via the help@octave.org mailing list. Auch gibt es die doc-Funktion für eine vollständige Dokumentation des Octave-Systems, z.B.: Eingabe: doc Ausgabe: [[Datei:Octave_730_doc_screenshot.jpg]] == Sonstige einfache Berechnungen == In octave gibt es eine "umgekehrte" Division: 11 / 2 % normale Division (Rechtsdivision) 11 \ 2 % umgekehrte Division (Linksdivision) Ausgabe: ans = 5.5000 ans = 0.1818 Potenzieren kann man so: 12^5 Ausgabe: ans = 248832 Den Modulo-Operator % wie in C/C++, Java oder Python gibt es in Octave '''nicht'''. Das Prozentzeichen ist dem Kommentar vorbehalten. Man kann aber eine Funktion hierfür benutzen y = mod(20, 3) Ausgabe: y = 2 Runden mit und auf Ganzzahlen kann man in Octave so: a = int32(10); b = int32(3); x = a / b y = int32(15) / int32(4) Ausgabe: x = 3 y = 4 Siehe dazu aber auch die Funktionen <code>floor</code>, <code>ceil</code> und <code>idivide</code>. Mittels <code>int32()</code> werden Zahlen als 32-Bit-Ganzzahlen dargestellt. Standardmäßig ist der Datentyp nämlich <code>double</code>. Das ist zu beachten, es ergeben sich unterschiedliche Ergebnisse. Beispiel: clear(); a = int32(10); b = int32(3); x = a / b c = 10; d = 3; y = c / d whos() Ausgabe: x = 3 y = 3.3333 Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 4 int32 b 1x1 4 int32 c 1x1 8 double d 1x1 8 double x 1x1 4 int32 y 1x1 8 double Total is 6 elements using 36 bytes Ist der Wertebereich von <code>int32</code> zu klein (4 Bytes, <math>-2^{31}</math> bis <math>2^{31} - 1</math>), so gibt es auch <code>int64</code> (8 Bytes, <math>-2^{63}</math> bis <math>2^{63} - 1</math>). <code>clear</code> löscht Namen und gibt den Speicherplatz wieder frei. <code>whos()</code> liefert detaillierte Informationen der aktuell definierten Variablen. == Aufgaben == * Berechnen Sie mit Octave den Ausdruck <math>\frac{1}{2}\cdot e^2 \cdot \tan(\pi/3)</math>. * Berechnen Sie mit Octave den Ausdruck <math>2\; \text{cosd}(60) - 3\sin(\pi/5)</math>. Anmerkung: cosd erwartet den Parameter im Gradmaß (d für "degree"), sin erwartet den Parameter im Bogenmaß. * Erkunden Sie die Fehlerfunktion "erf" mittels Octave-Hilfe. * Welche Zahl ergibt sich durch <code>3 / 4 \ 2</code>? * Welche Zahlen werden durch die folgenden Anweisungen ausgegeben? idivide(int32(10), int32(3), "fix") idivide(int32(10), int32(3), "round") idivide(int32(10), int32(3), "floor") idivide(int32(10), int32(3), "ceil") floor(10.3) ceil(10.3) = Octave als Scriptsprache = Häufig wird man aber kompliziertere Anweisungsfolgen verarbeiten müssen. Diese will man normalerweise nicht jedesmal neu eingeben, sondern in einer Datei speichern und diese Datei dann zur Ausführung bringen. Speichern Sie dazu folgenden Code in einer Textdatei, z.B. unter MS Windows als c:\tmp\test1.m % Das ist ein Kommentar # und das auch disp "Hallo Welt!" Skriptdateien müssen mit der Dateiendung .m versehen werden. In der Octave-Konsole fügen Sie den Dateipfad mittels octave-3.0.3.exe:1> addpath("c:/tmp") hinzu (es ist der UNIX-spezifische Slash (/) zu benutzen). Alternativ können Sie zumindest unter MS Windows auch einen Doppel-Backslash (\\) einsetzen. Oder Sie wechseln mittels <code>cd c:/tmp</code> direkt ins Verzeichnis <code>c:/tmp</code>. Danach bringen Sie die Skriptdatei test1.m (sozusagen das Hauptprogramm) zur Ausführung octave-3.0.3.exe:2> test1 Achtung: Die Datei (die Funktion oder das Hauptprogramm) ist in der Octave-Kommandozeile ohne .m-Dateiendung anzugeben. Wie erwartet ergibt sich folgende Ausgabe am Bildschirm Hallo Welt! Zumindest unter Linux können Sie z.B. auch komfortabel den {{W|Shebang|Shebang}} (<code>#!</code>) nutzen. Gegeben sei das Octave-Script #!/usr/bin/octave disp("Hallo Welt!"); Gepeichert sei es ebenfalls als <code>test1.m</code>. Starten Sie ein Terminal, wechseln Sie in das entsprechende Arbeitsverzeichnis und geben Sie ./test1.m ein, so erhalten Sie wieder Hallo Welt! als Ausgabe auf dem Terminal. Die Zugriffsberechtigung muss natürlich mittels <code>chmod</code> richtig gesetzt werden. Oder Sie führen direkt Octave mit der Datei <code>test1.m</code> aus: octave test1.m Sie sehen, mehrere Wege führen zum Ziel. == Blockkommentare == In neueren Octave-Versionen ab dem Jahr 2009 sind auch Blockkommentare möglich. Blockkommentare werden wie normale Kommentare vom Octave-Interpreter ignoriert. %{ Das ist ein Blockkommentar %} #{ und das auch #} == Variablen == Variablenbezeichner können aus Buchstaben (A-Za-z), Ziffern (0-9) und Underscores (_) bestehen, dürfen aber nicht mit einer Zahl beginnen. Gültige Variablenbezeichner wären also: xyz x1 _wert name_anzahl Da Octave case-sensitiv ist, repräsentieren folgende Bezeichner verschiedene Variablen: xyz XYZ xYz Werte werden an Variablen mittels Gleich-Zeichen (=) zugewiesen. Im Folgenden wird der Code immer in der Datei c:\tmp\test1.m gespeichert. x = 5 y = 10 z = x*y Bringen Sie die Datei test1.m zur Ausführung, so erhalten Sie folgende Bildschirmausgabe x = 5 y = 10 z = 50 Normalerweise will man aber nur z anzeigen, die Werte von x und y sind ja bereits bekannt. Dazu fügen Sie an den Anweisungsenden, wie bereits weiter oben erwähnt, bei x und y jeweils ein Semikolon (;) an, um das Anweisungsende explizit zu markieren. x = 5; y = 10; z = x*y Nun erhalten Sie als Ergebnis nur noch z = 50 Sie können auch mehrere Anweisungen in einer Zeile durch Semikolon getrennt schreiben. x = 5; y = 10; z = x*y Ausgabe: z = 50 Auch aus der Programmiersprache C/C++ oder Java bekannte Konstrukte können Sie verwenden, z.B. x = 5; % inkrementiere x ++x % x = x - 2 x -= 2 Bildschirmausgabe: ans = 6 x = 4 Beachten Sie, dass mit dem =-Zeichen eine Wertezuweisung durchgeführt wird. Dies ist nicht äquivalent zum mathematischen =-Zeichen, wie am vorigen Beispiel zu ersehen ist. Soll eine Anweisung auf mehrere Zeilen verteilt werden, z.B. weil sie zu lang ist, so kann dies durch Verwendung von drei Punkten (...) geschehen, wie nachfolgend dargestellt. x = 5; y = 1000 * x + ... sin(x/2) Ausgabe: y = 5000.6 Diese Drei-Punkte-Methode soll nicht für in Anführungszeichen (") eingeschlossene Strings verwendet werden. Diese Methode ist seit geraumer Zeit "deprecated" und funktioniert mit der Version 9.1.0 gar nicht mehr. Benutzen Sie statt dessen den Backslash (\): txt = "xxxxxxxxxxxxxxxxxxxx\ yyyyyyyyyyyyyyyyy" Ausgabe: txt = xxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyy Variablen sind nicht an einen bestimmten Datentyp gebunden, folgendes ist in Octave problemlos möglich: wert = 10 wert = 35.5 wert = "Hallo" wert = pi Ausgabe: wert = 10 wert = 35.500 wert = Hallo wert = 3.1416 Der Befehl <code>who</code>, bzw. <code>whos</code> listet die gegenwärtig definierten Variablen, z.B.: clear; a = 10.5; v = [1 2 3 4 5 12 13]; m = ["s1", "s2"; "s3", "s4"]; disp "***** Der Befehl who *****" who disp "***** Der Befehl whos *****" whos Ausgabe: ***** Der Befehl who ***** Variables visible from the current scope: a m v ***** Der Befehl whos ***** Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 8 double m 2x4 8 char v 1x7 56 double Total is 16 elements using 72 bytes ==Hexadezimale und binäre Zahlen== % Hexadezimale Zahl disp( 0xABC ) % Binäre Zahl disp( 0b1000011 ) Ausgabe (als Dezimalzahlen): 2748 67 Octave kann auch dezimale in binäre Zahlen etc. umwandeln: dec2bin( 214 ) Ausgabe: ans = 11010110 Siehe dazu in der Octave-Hilfe auch folgende Funktionen: bin2dec, dec2base, dec2hex, hex2dec, base2dec == Zahlenkolonnen == Eine Zahlenkolonne (oder ein Vektor) mit gleichen Abständen der Werte kann folgendermaßen erzeugt werden: % a ... Startwert % b ... Schrittweite % c ... Endwert a = 0; b = 10; c = 100; x = a : b : c; disp(x); Ausgabe: 0 10 20 30 40 50 60 70 80 90 100 Ähnliche Resultate lassen sich auch durch Anwendung der linspace-Funktion erhalten, z.B.: % a ... Startwert % b ... Endwert % c ... Anzahl der Werte a = 0; b = 100; c = 11; v = linspace(a, b, c) Ausgabe: v = 0 10 20 30 40 50 60 70 80 90 100 == Verzweigungen == === Die IF-Verzweigung === Die IF-Verzweigung ist aus anderen Programmiersprachen bereits bekannt. In Pseudocode lässt sie sich folgendermaßen darstellen: WENN bedingung TRUE führe block1 aus SONST führe block2 aus ENDE Die test1.m-Datei laute also wie folgt: x = 5; if x < 4 disp "x ist kleiner als 4"; else disp "Der else-Zweig wird ausgefuehrt"; disp "x ist groesser oder gleich 4"; end Ausgabe: Der else-Zweig wird ausgefuehrt x ist groesser oder gleich 4 Octave kennt eine Reihe von Vergleichs- und Verknüpfungsoperatoren: * <, <= ... kleiner (gleich) * >, >= ... größer (gleich) * == ... gleich * ~=, != ... ungleich * &, && ... AND * |, || ... OR * ~, ! ... NOT Beispielsweise: a = 5; b = 9; if a<=10 & b!=7 disp("OK"); else disp("Nicht OK"); end Ausgabe: OK === Die SWITCH-Verzweigung === In Pseudocode: WECHSLE ZU var FALLS wert1 == var führe block1 aus FALLS wert2 == var führe block2 aus ... SONST führe blockn aus ENDE Eine Beispielsimplementierung in Octave könnte so aussehen: x = "g"; switch(x) case "k" disp("klein"); case "g" disp("gross"); otherwise disp("sonstiges") end Ausgabe: gross Anmerkungen für C-Programmierer: * in Octave darf zum Abschluß von ''case'' kein Doppelpunkt folgen (würde einen Syntaxfehler auslösen). * ein ''break'' als Abschluß eines ''case''-Blocks ist nicht erlaubt (würde in Octave einen parse error auslösen). ''break'' ist Schleifen vorbehalten. ''switch'' hat in Octave keinen "Durchfall" und ähnelt somit eher der Fortran-Anweisung ''select case''. Mehrere Fälle in einem ''case'' können wie nachfolgend behandelt werden: x = "K"; switch(x) case {"k" "K"} disp("klein"); case {"g" "G"} disp("gross"); otherwise disp("sonstiges") end Ausgabe: klein == Schleifen == === Die WHILE-Schleife === Die WHILE-Schleife ist kopfgesteuert. Sie funktioniert wie aus anderen Programmiersprachen bekannt. In Pseudocode: SOLANGE bedingung TRUE führe block aus ENDE In Octave: x = 0; while x <= 10 disp(x); x++; end Ausgabe: 0 1 2 3 4 5 6 7 8 9 10 === Die DO-UNTIL-Schleife === Die DO-UNTIL-Schleife ist fußgesteuert. Beachte: Diese Schleife ist nicht äquivalent zu der aus anderen Programmiersprachen bekannten DO-WHILE-Schleife. DO-WHILE bedeutet "TUE SOLANGE", DO-UNTIL bedeutet "TUE BIS". Sie wird mindestens einmal ausgeführt. Pseudocode: TUE führe block aus BIS bedingung TRUE Mittels Octave: x = 0; do disp(x); x++; until(x >= 5) Ausgabe: 0 1 2 3 4 === Die FOR-Schleife === for x = 0 : 2 : 10 disp(x); end Ausgabe: 0 2 4 6 8 10 Der FOR-Schleifenkopf ist in Form einer Zahlenkolonne folgendermaßen aufgebaut: for variable = startwert : schrittweite : endwert Man beachte, dass Vektorisierung gegenüber einem Schleifendurchlauf eine erhebliche Zeiteinsparung bewirken kann (man siehe in der [https://docs.octave.org/latest/Vectorization-and-Faster-Code-Execution.html Octave-Dokumentation das Kapitel 19 "Vectorization and Faster Code Execution"]). Folgendes Beispiel ist an genanntes Octave-Kapitel angelehnt. Zuerst wird eine Berechnung mittels Schleifendurchlauf durchgeführt und der Zeitbedarf ausgegeben. Dieser Zeitbedarf hängt natürlich auch von der verwendeten Hardware etc. ab. Eingabe: n = m = 500; a = b = eye(500); t1 = time(); for i = 1:n for j = 1:m c(i,j) = a(i,j) + b(i,j); endfor endfor t2 = time(); t_diff = t2-t1 Ausgabe: t_diff = 3.7566 Der Zeitverbrauch beträgt hier also ca. 4 Sekunden. Im Gegensatz dazu Eingabe: a = b = eye(500); t1 = time(); c = a + b; t2 = time(); t_diff = t2-t1 Ausgabe: t_diff = 1.5974e-05 ist der Zeitverbrauch hier sehr gering. Vektoren und Matrizen werden etwas später in diesem Text detailliert behandelt. Hier nur soviel: Mittels ''eye'' wird eine Einheitsmatrix kreiert. === Schleifen abbrechen === Zum Abbrechen einer Schleife gibt es den Befehl "break". for var = 0 : 1 : 100 disp (var); if var == 5 break; end end Ausgabe: 0 1 2 3 4 5 "continue" setzt mit dem nächsten Schleifendurchlauf fort, z.B. for var = 0 : 1 : 10 if var == 5 continue; end disp (var); end Ausgabe: 0 1 2 3 4 6 7 8 9 10 == Aufgaben == * Berechnen Sie die Summe der ersten 10000 natürlichen Zahlen (bei 1 beginnend) ** in Form einer WHILE-Schleife ** in Form einer DO-UNTIL-Schleife ** in Form einer FOR-Schleife ** mittels sum-Befehl (siehe dazu auch die von Octave zur Verfügung gestellte Hilfefunktion). ** mittels gaußscher Summenformel (<math>\sum_{i=1}^n{i} = 1+2+...+n = n(n+1) / 2</math>) * Schreiben Sie für obige Alternativen Programme mit denen der Zeitbedarf der Schleifen, Befehle bzw. Formeln gemessen werden kann. Welche Alternativen sind aus Zeitgründen (minimale Laufzeit) empfehlenswert? = Grafiken zeichnen = == 2D == === Graph einer Funktion === Es soll die cosh-Funktion im Intervall <math>x\in[-3,3]</math> gezeichnet werden. Der Programmcode lautet in der einfachsten Form: x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; Ausgabe: [[Datei:octave_cosh.jpg]] Der Code ist quasi selbsterklärend. x läuft von -3 bis +3. y wird für jeden x-Wert per Formel ausgerechnet. "plot" ist der Zeichenbefehl. "grid on" schaltet ein Zeichengitter ein. Die Schrittweite 0.1 wurde so gewählt, um einen ausreichend glatten Verlauf des Graphen zu gewährleisten. Das ist immer ein Kompromiss zwischen Berechnungszeit und Ansehnlichkeit. Testen Sie einfach ein paar verschiedene Werte, um ein Gefühl dafür zu zu bekommen. Sie könnten nun auf die Idee kommen, obiges Script unter Linux mit der Shebang-Zeile zu erweitern, um es direkt als Programm auszuführen. #!/usr/bin/octave x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; Die Enttäuschung folgt auf dem Fuß. Außer einem kurzen Aufblinken des Grafikfensters ist nicht viel zu sehen. Das Programm läuft einfach durch und wird nach der letzten Anweisung beendet. Abhilfe kann z.B. der <code>input</code>-Befehl schaffen: #!/usr/bin/octave x = -3 : .1: 3; y = cosh(x); plot(x,y); grid on; refresh(); input("Zum Beenden RETURN-Taste drücken"); Das Programm wartet somit, bis Sie im Terminal die RETURN-Taste drücken. <code>refresh()</code> dient dazu, das Grafikfenster unmittelbar zu aktualisieren. Sonst würde das Ausgabefenster leer bleiben, bis es durch externe Anreize aktualisiert wird (z.B. durch Fenster minimieren/maximieren). Gleiches gilt für die <code>octave test1.m</code>-Variante. Ein etwas komplexeres Beispiel ist Folgendes x = -3 : .1: 3; y = cosh(x) + 2.^x; plot(x,y); grid on; Man beachte den Punkt bei 2.^x (2 hoch x). Vergisst man den Punkt, dann erhält man eine Fehlermeldung (ähnlich dieser): error: for x^y, only square matrix arguments are permitted and one argument must be scalar. Use .^ for elementwise power. error: called from test1 at line 2 column 3 Ausgabe: [[Datei:octave_cosh2.jpg]] Der Funktionsgraph kann auch als Fläche eingefärbt werden: x = -3 : .1: 3; y = cosh(x) + 2.^x; fill (x, y, "b"); Ausgabe: [[Datei:octave_cosh3.jpg | 500px]] === Graphen mehrerer Funktionen und weiteres === Mehrere Graphen lassen sich folgendermaßen in ein Fenster zeichnen: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, x,y2); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Bild:octave_cosh14.jpg|600px]] Um die Linienstile etwas individueller zu gestalten, ist folgender Programmcode gedacht: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1,"*r", x,y2,"ob"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Datei:octave_cosh4.jpg]] Bei plot kann auch der Linienstil des jeweiligen Graphen angegeben werden, z.B. steht * für Sternchenlinie o für Kreise in der Linie r für rot b für blau Ein ähnliches Resultat liefert der Code: x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, "Color", "red", "*", x,y2, "Color", "blue", "o"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; Will man mehrere Graphen in ein Fenster zeichnen, aber nicht alles in einen plot-Befehl quetschen, so kann die "hold on"-Anweisung die Lösung des Problems sein: %Lösche alle benutzerdefinierten Variablen aus der Symboltabelle clear; %Schließe alle Fenster close all; %Lösche Konsolenfenster und setze Cursor zurück clc; x = -3 : .1: 3; y1 = cosh(x) + 2.^x; y2 = sin(x) .* cos(x); plot(x,y1, "Color", "red"); hold on; plot(x,y2, "Color", "blue"); title("Funktionsgraphen"); legend("cosh ...", "sin ..."); xlabel("x"); ylabel("y"); grid on; [[Datei:octave_coshsin1.jpg]] Bei diesem Program wurden auch einige Möglichkeiten (clear, close, clc) gezeigt, um das System aufzuräumen. Ein "hold off" würde natürlich die hold-Funktion wieder ausschalten. === Funktion in Parameterdarstellung === Es soll die archimedische Spirale <math>x = t \cos(t), y = t \sin(t)</math> im Intervall <math>[0, 6\pi]</math> gezeichnet werden. clear; close all; clc; t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y); grid on; [[Datei:octave_spirale1.jpg]] Diese Darstellung erscheint verzerrt. Will man gleiche Achsenskalierungen, so kann man den axis-Befehl verwenden (axis muss nach plot erscheinen). t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y); grid on; axis equal; [[Datei:octave_spirale222.jpg]] === Strichstärke === Für manche Zwecke ist es sinnvoll die Strichstärke des Graphen zu erhöhen. Dies kann über den Parameter "LineWidth" der plot-Funktion geschehen. t = 0 : .1: 6*pi; x = t .* cos(t); y = t .* sin(t); plot(x,y, "LineWidth", 2); grid on; axis equal; Ausgabe: [[Datei:octave_spirale3.jpg]] === Beliebigen Text ausgeben === x = -10:0.1:10; plot (x, sin (x), "LineWidth", 2); text (2.7, 0.8, "Das ist die sin-Funktion"); Ausgabe: [[Datei:octave_text1.jpg]] === Logarithmische Achseneinteilung === x = -3 : .1: 3; y = cosh(x) + 2.^x; % Halblogarithmische Darstellung semilogy(x,y); grid on; Ausgabe: [[Datei:octave_semilog1.jpg]] Auch die x-Achse kann mit "semilogx" logarithmisch skaliert werden. Mit "loglog" werden beide Achsen logarithmisch skaliert. === Aufgaben === * Zeichnen Sie die Strophoide <math>x = \frac{a(t^2-1)}{t^2+1}, y = \frac{at(t^2-1)}{t^2+1}, a = 2, -3 \leq t \leq 3</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_strophoide.jpg]] * Zeichnen Sie die verschlungene Hypozykloide <math>x = (R-r)\cos t + c\cos\frac{R-r}{r}t, y = (R-r)\sin t - c\sin\frac{R-r}{r}t, c = 3, r = 2, R = 6, -15 \leq t \leq 15</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_hypozykloide.jpg]] * Testen Sie bei den obigen Übungsaufgaben verschiedene Linienstile und Farben (Hinweis: Siehe dazu auch die Octave-Hilfefunktion für den plot-Befehl). * Testen Sie bei den obigen Übungsaufgaben verschiedene Werte für a, c, r und R. * Erkunden Sie in der Octave-Hilfe den ezplot-Befehl. == 3D == === Räumliche Kurven === Mittels "plot3" lassen sich Raumkurven zeichnen. t = 0 : .1 : 9*pi; x = cos(t); y = sin(t); z = 1.3 .^ t; plot3(x,y,z); grid on; [[Datei:octave_raumkurve1.jpg]] === Flächen === ==== ezsurf ==== Die wahrscheinlich einfachste Möglichkeit 3D-Flächen zu erzeugen, besteht in der Verwendung des ezsurf-Befehls. Beachten Sie beim folgenden Beispiel auch wieder den Punkt beim Multiplikationssymbol (elementweise Multiplikation soll verwendet werden, keine Matrizenmultiplikation) in der anonymen Funktion. Was eine anonyme Funktion ist, wird weiter hinten in diesem Text kurz erklärt. Fürs Erste reicht es zu wissen, dass die Funktion f(x, y) jeweils im Intervall [0, 10] gezeichnet werden soll. clear; close all; clc; clf; f = @(x, y) sin(x) + 3.*cos(y); ezsurf (f, [0, 10]); [[Bild:octave_ezsurf1.jpg|600px]] Dieses Bild wurde mit der Octave-Version 5.2 erstellt. Es ist im Prinzip identisch zu jenen des folgenden Abschnitts, die mit der Version 3.0.3 erstellt wurden, nur die Farbschattierung ist anders. Ändern lässt sich diese Eigenschaft mit dem colormap-Befehl (siehe auch Octave-Hilfe): clear; close all; clc; clf; colormap(hot); f = @(x, y) sin(x) + 3.*cos(y); ezsurf (f, [0, 10]); [[Bild:octave_colormap_hot.jpg|600px]] ==== surf und mesh ==== Für das Zeichnen von Flächen existiert der surf-Befehl. Der meshgrid-Befehl kreiert ein Netz in der xy-Zeichenebene. Beachten Sie beim folgenden Beispiel auch wieder den Punkt beim Multiplikationssymbol der Formel für z. x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); surf(x_grid, y_grid, z); [[Datei:octave_flaeche1.jpg]] Auch ein Farbstreifen kann via "colorbar" zur Grafik hinzugefügt werden. x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); surf(x_grid, y_grid, z); colorbar("East"); [[Datei:octave_flaeche2.jpg]] Das Ganze in Netzdarstellung läßt sich so programmieren: x = 0 : .2 : 10; y = 0 : .2 : 10; [x_grid, y_grid] = meshgrid(x, y); z = sin(x_grid) + 3.*cos(y_grid); mesh(x_grid, y_grid, z); Ausgabe: [[Datei:octave_mesh1.jpg]] ==== Ellipsoide und Kegel ==== Für das Zeichnen von Kugeln oder Ellipsoiden stellt Octave den "sphere"-Befehl bzw. den "ellipsoid"-Befehl zur Verfügung. clear; close all; clc; % Ellipsoiden zeichnen [x, y, z] = sphere(30); surf(5*x, 4*y, 3*z); hold on; [x, y, z] = ellipsoid(5, 5, 5, 6, 3, 2, 30); surf(x, y, z); axis equal; [[Bild:octave_ellipsoid2.jpg|600px]] Für Zylinder und Kegel ist der "cylinder"-Befehl zuständig. clear; close all; clc; % Kegel und Zylinder zeichnen [x, y, z] = cylinder([1 2], 100); surf(x, y, z*3); hold on; [x, y, z] = cylinder([0.5 0.5], 50); surf(x+3, y, z*2); axis equal; [[Bild:octave_cylinder2.jpg|600px]] === Aufgaben === * Zeichnen Sie die räumliche Kurve <math>x = 2 \cdot \cosh(t)</math>, <math>y = 5 \cdot \sin(t)</math>, <math> z = t^{2} - t</math>, <math>0 \leq t \leq 3\pi</math>. Das Ganze sollte etwa wie folgt aussehen: [[Datei:octave_kurve10.jpg]] * Zeichnen Sie die Fläche <math>z = \log(x) + \cos(y)</math>. Das Ganze sollte etwa wie folgt aussehen: [[Datei:octave_flaeche10.jpg]] == Weiteres == === subplot === Zeichnen mit Untergrafiken: Hier wird z.B. ein Fenster mit drei Untergrafiken gezeichnet. Eingabe: t = 0 : .5 : 10; [x_grid, y_grid] = meshgrid(t, t); subplot(311); surf(x_grid, y_grid, sin(x_grid) + cos(y_grid) ); subplot(312); surf(x_grid, y_grid, sin(x_grid) + log(y_grid) ); subplot(313); surf(x_grid, y_grid, x_grid + cos(y_grid) ); Ausgabe: [[Datei:octave_subplot2.jpg]] Die dreistellige Ziffer beim subplot-Befehl bedeutet folgendes: * Die erste Ziffer ist die Zeilenanzahl * Die zweite Ziffer ist die Reihenanzahl und * Die dritte Ziffer ist der Index. Nun sei ein Beispiel mit 3x2-Untergrafiken angeführt. clear; close all; clc; x = 0 : .1 : 10; subplot(321); plot(x, sin(x)); text(2, -0.5, "Index 1"); subplot(322); plot(x, tan(x)); text(2, 2, "Index 2"); subplot(323); plot(x, cosh(x) ); text(2, 3000, "Index 3"); subplot(324); plot(x, gamma(x) ) text(2, 100000, "Index 4"); subplot(325); plot(x, log(x) ); text(2, 0, "Index 5"); subplot(326); plot(x, exp(x) ); text(2, 10000, "Index 6"); Ausgabe: [[Datei:octave_subplot3.jpg]] Hier ist sehr gut zu sehen, in welcher Reihenfolge der Index läuft. === figure === Zeichnen in verschiedene Fenster, z.B. clear; close all; clc; x = 0 : .1 : 10; y = 0 : .1 : 10; [x_grid, y_grid] = meshgrid(x, y); figure(1) surf(x_grid, y_grid, sin(x_grid) + cos(y_grid)); figure(2) surf(x_grid, y_grid, sin(x_grid) + log(y_grid)); Ausgabe: [[Datei:octave_figure111.jpg|700px]] === Linien zeichnen === Zeichnen Sie eine Linie von der Koordinate [-15, 0] zu [15, 5]: clear; close all; clc; x = line([-15 15], [0, 5], "Color", "black", "LineWidth", 2); Ausgabe: [[Datei:octave_linie1.jpg]] Man beachte, dass Octave nicht Punkte P1(x1, y1), P2(x2, y2) erwartet, sondern einen x-Vektor [x1 x2] und einen y-Vektor [y1 y2]. Ein allgemeines Viereck wird z.B. mit folgendem Befehl gezeichnet. line([-15 15 10 -5, -15], [0, 5, 20, 15, 0], "LineWidth", 2); [[Datei:octave_viereck2.jpg]] Auch dreidimensionale Formen lassen sich mit dem line-Befehl zeichnen: clear; close all; clc; line([-15 15 10 -5, -15], [0, 5, 20, 15, 0], [10, 20, 30, 40, 50], "LineWidth", 2); [[Datei:octave_dreidim2.jpg]] === Aufgaben === * Zeichnen Sie mittels "subplot" die Funktionsgrafen <math>y_1=\tan(x), y_2=\tan(2x), y_3=\tan\sqrt x, y_4=x\cdot \tan(x)</math> in folgender Form in ein Fenster: ** in 2x2-Darstellung ** in 1x4-Darstellung. * Zeichnen Sie die im obigen Beispiel angegebenen Funktionsgrafen mittels "figure" jeweils in ein eigenes Fenster. = Vektoren und Matrizen = == Vektoren == Vektoren sollten jedem aus der Linearen Algebra bekannt sein. === Zeilen- und Spaltenvektoren === % Ein Zeilenvektor v1 = [1, 2, 3] % Ein Spaltenvektor v2 = [6; 7; 8] Ausgabe: v1 = 1 2 3 v2 = 6 7 8 Alternative Schreibweisen: % Ein Zeilenvektor v1 = [1 2 3] % Ein Spaltenvektor v2 = [6 7 8] Die Ausgabe entspricht der obigen Darstellung. === Zugriff auf Vektorelemente === Nachfolgend seien einige Zugriffsmöglichkeiten auf die einzelnen Vektorelemente erläutert. Auf ein einzelnes Element kann via Index zugegriffen werden. Der Index startet bei 1: v1 = [1 2 4 8 16]; v2 = v1(3) Ausgabe: v2 = 4 Mehrere Elemente werden folgendermaßen angesprochen: v1 = [1 2 4 8 16]; v2 = v1(3:4) Ausgabe: v2 = 4 8 Liefere den Teilvektor von einem gegebenen Index bis zum letzten Element: v1 = [1 2 4 8 16]; v2 = v1(3:end) Ausgabe: v2 = 4 8 16 === Addition und Subtraktion von Vektoren === v1 = [1, 2, 3]; v2 = [5, 7, 9]; res = v1 + v2 res = v1 - v2 Ausgabe: res = 6 9 12 res = -4 -5 -6 === Multiplikation mit Skalaren === faktor = 3; v = [1, 2, 3]; res = faktor * v Ausgabe: res = 3 6 9 === Skalarprodukt === Das Skalarprodukt ist bekanntermaßen als <math>v_1 \cdot v_2 = |v_1| |v_2| \cos(\angle(v_1, v_2))</math> definiert. In Octave sieht das so aus: v1 = [1, 2, 3]; v2 = [5, 6, 7]; res = dot(v1, v2) Ausgabe: res = 38 === Vektorprodukt === v1 = [1, 2, 3]; v2 = [5, 6, 7]; res = cross(v1, v2) Ausgabe: res = -4 8 -4 Enger an die mathematische Darstellung lehnt sich folgender Code an. Die zu multiplizierenden Vektoren seien in Form von Spaltenvektoren gegeben. Mathematisch: <math>a\ast b=\left(\begin{array}{c} a_{1}\\ a_{2}\\ a_{3} \end{array}\right)\ast\left(\begin{array}{c} b_{1}\\ b_{2}\\ b_{3} \end{array}\right)=\left(\begin{array}{c} a_{2}b_{3}-a_{3}b_{2}\\ a_{3}b_{1}-a_{1}b_{3}\\ a_{1}b_{2}-a_{2}b_{1} \end{array}\right) </math> Octave-Code: a = [1 2 3]; b = [5 6 7]; res = cross(a, b) Ausgabe: res = -4 8 -4 === Transponierter Vektor === v1 = [1, 2, 3]; v2 = [5; 6; 7]; res1 = v1' res2 = v2' Ausgabe: res1 = 1 2 3 res2 = 5 6 7 === Einige weitere Vektorfunktionen === Beispiel: % 1 + 2 + 3 v = [1 2 3]; sum(v) Ausgabe: ans = 6 Beispiel: % 1 * 2 * 3 * 4 v = [1 2 3 4]; prod(v) Ausgabe: ans = 24 Beispiel: % 1^2 + 2^2 + 3^2 v = [1 2 3]; sumsq (v) Ausgabe: ans = 14 == Matrizen == Gegeben sei folgende 2x3-Matrix <math>m=\left(\begin{array}{ccc} 1 & 2 & 3\\ 4 & 5 & 6 \end{array}\right)</math>. Eingabe: m = [1, 2, 3; 4, 5, 6] Ausgabe: m = 1 2 3 4 5 6 Alternativ und anschaulicher kann diese 2x3-Matrix auch so eingegeben werden: m = [1 2 3 4 5 6] Dies ist schon sehr nahe an der mathematischen Darstellungsweise. === Zugriff auf Matrizenelemente === m = [1 2 3 4 5 6]; % Element aus Zeile 2 und Spalte 3 m(2,3) Ausgabe: ans = 6 Eine andere Zugriffsmöglichkeit ist diese: m = [1 2 3 4 5 6]; % Auf das fünfte Element soll zugegriffen werden m(5) Ausgabe: ans = 3 Die Matrix wird also spaltenweise durchlaufen (nicht zeilenweise). Dies ist vielleicht auf den ersten Blick etwas ungewöhnlich, wird aber z.B. auch in Fortran so gehandhabt. Auch Teilmatrizen können einfach gebildet werden: m = [1 2 3 4 5 6]; m(2:end, 2:end) Ausgabe: ans = 5 6 Siehe zu diesem Thema auch etwas weiter hinten in diesem Text den Abschnitt "Teilmatrizen". === Addition und Subtraktion von Matrizen === m1 = [1, 2, 3; 4, 5, 6]; m2 = [-4, -2, 0; 2, 4, 6]; m1 + m2 m1 - m2 Ausgabe: ans = -3 0 3 6 9 12 ans = 5 4 3 2 1 0 === Transponierte Matrix === m = [1, 2, 3; 4, 5, 6]; m' Ausgabe: ans = 1 4 2 5 3 6 === Rang einer Matrix === Der Rang einer Matrix Rg(M) ist die maximale Anzahl der linear unabhängigen Zeilenvektoren (Spaltenvektoren). m1 = [1, 2, 3; 4, 5, 6]; m2 = [1, 2; 2, 4]; rank(m1) rank(m2) Ausgabe: ans = 2 ans = 1 Regulär ist eine nxn-Matrix, wenn der Rg(M) = n. D.h. die erste Matrix m1 ist regulär, die zweite m2 singulär. === Inverse Matrix === m1 = [1, 3; 0, -5 ]; m2 = [1, 2; 2, 4]; inv(m1) inv(m2) Ausgabe: ans = 1.00000 0.60000 0.00000 -0.20000 warning: matrix singular to machine precision warning: called from test1 at line 4 column 1 ans = Inf Inf Inf Inf Die Matrix m2 in diesem Beispiel ist singulär (d.h. die Determinante ist 0). Determinanten werden etwas weiter unten in diesem Text behandelt. Inf steht für Infinity (= Unendlich). === Multiplikation von Matrizen (falksches Schema) === m1 = [1, 3, 4; 0, -5, 1]; m2 = [1, 2; 2, 3; 0, 2]; m1 * m2 Ausgabe: ans = 7 19 -10 -13 Will man aus irgendwelchen Gründen nicht das falksche Schema ausführen, sondern elementweise Multiplikation, so funktioniert das mit dem Punkt-Operator, z.B. m1 = [1, 3; 0, -5]; m2 = [1, 2; 4, 2]; % falksches Schema m1 * m2 % elementweise Multiplikation m1 .* m2 Ausgabe: ans = 13 8 -20 -10 ans = 1 6 0 -10 Verifikation, falksches Schema (Zeile*Spalte): [ 1 3 ] [ 1 2 ] [ 1*1+3*4 1*2+3*2 ] [ 13 8 ] [ 0 -5 ] [ 4 2 ] = [ 0*1-4*5 0*2-5*2 ] = [ -20 -10 ] Verifikation, elementweise Multiplikation (homologe Elemente): [ 1 3 ] [ 1 2 ] [ 1*1 3*2 ] [ 1 6 ] [ 0 -5 ] [ 4 2 ] = [ 0*4 -5*2 ] = [ 0 -10 ] === Determinante einer Matrix === m1 = [1, 3; 0, -5 ]; m2 = [1, 2; 2, 4]; det(m1) det(m2) Ausgabe: ans = -5 ans = 0 m1 ist regulär, m2 ist singulär. Determinanten können nur von quadratischen Matrizen gebildet werden. === Teilmatrizen === m = [1, 2, 3; 0, 5, 1]; % Die Matrix in einen Spaltenvektor umwandeln m1 = m(:) % Das Element aus der 1. Zeile und der 2. Spalte extrahieren m2 = m(1,2) % Erste Zeile extrahieren m3 = m(1, 1:3) m4 = m(1, :) % Zweite Spalte extrahieren m5 = m(1:2, 2) m6 = m(:, 2) Ausgabe: m1 = 1 0 2 5 3 1 m2 = 2 m3 = 1 2 3 m4 = 1 2 3 m5 = 2 5 m6 = 2 5 === Einheitsmatrizen === eye(3,2) Ausgabe: ans = 1 0 0 1 0 0 === Nullmatrizen === zeros(2,3) Ausgabe: ans = 0 0 0 0 0 0 === Diagonalmatrizen === diag([1, 2, 3]) Ausgabe: ans = 1 0 0 0 2 0 0 0 3 === Spur einer Matrix === trace([1,2,3; 6,9, 0]) Ausgabe: ans = 10 === LR-Zerlegung einer Matrix === Führen Sie die LR-Faktorisierung (LR ... links/rechts bzw. LU ... left/upper) einer Matrix m aus. l sei die linke Dreiecksmatrix, r die rechte Dreiecksmatrix und p die Permutationsmatrix m = [1 0 5 -1 1 -2 0 0 3]; [l, r, p] = lu(m) Ausgabe: l = 1 0 0 -1 1 0 0 0 1 r = 1 0 5 0 1 3 0 0 3 p = 1 0 0 0 1 0 0 0 1 === Eigenwerte === a = [5 8 1 3]; % Eigenvektoren und Eigenwerte [ev, ew] = eig(a) Ausgabe: ev = 0.9701 -0.8944 0.2425 0.4472 ew = Diagonal Matrix 7 0 0 1 Die Eigenwerte sind hier <math>\lambda_1 = 7</math> und <math>\lambda_2 = 1</math>. Die Eigenvektoren sind [0.9701 0.2425] bzw. [-0.8944 0.4472]. Da das Gleichungssystem <math>(A - \lambda_i E) x_i = 0</math> singulär ist, sind alle Lösungsvektoren Vielfache dieser Eigenvektoren. === Schwach besetzte Matrizen === {{Wikipedia | Dünnbesetzte Matrix}} Gegeben sei die schwach besetzte Matrix m = [0 1 0 0 0 0 0 0 3 0 4 0 0 2 0 0 0 1 0 0 0 0 0 1 7] Mittels dem sparse-Befehl kann man einfach die Elemente != 0 nach folgendem Schema eingeben. sparse ([zeilenindizes] [spaltenindizes] [werte]) also in unserem Fall: ms = sparse([1 2 3 3 4 5 5], [2 4 1 4 3 4 5], [1 3 4 2 1 1 7]) Ausgabe: ms = Compressed Column Sparse (rows = 5, cols = 5, nnz = 7) (3, 1) -> 4 (1, 2) -> 1 (4, 3) -> 1 (2, 4) -> 3 (3, 4) -> 2 (5, 4) -> 1 (5, 5) -> 7 Die volle Matrix erhält man mit dem Befehl full: m = full(ms) Ausgabe: m = 0 1 0 0 0 0 0 0 3 0 4 0 0 2 0 0 0 1 0 0 0 0 0 1 7 Grafisch anzeigen lassen kann man sich die Besetzung von Matrizen mit dem spy-Befehl: spy(ms); oder (für allgemeine Matrizen auch mittels) spy(m); Ausgabe: [[Datei:octave_sparse1.jpg]] Wirklich interessant ist der spy-Befehl für größere Matrizen, z.B. um die Bandstruktur zu visualisieren. e = eye(200); es = sparse(e); % Auf sparse-Matrizen kann genauso zugegriffen werden wie auf normalen Matrizen es(100, 15) = 100; spy(es); Ausgabe: [[Datei:octave_sparse2.jpg]] === Matrizen mit Zufallswerten === Insbesondere für Testzwecke kann es manchmal sinnvoll sein größere Matrizen mit Zufallswerten zu bilden. Dazu stellt Octave u.a. den rand-Befehl zur Verfügung. m = rand(5, 6) Ausgabe: m = 0.86605 0.61108 0.71347 0.97119 0.52428 0.21993 0.74059 0.49062 0.56073 0.68592 0.74737 0.62680 0.20790 0.84874 0.36834 0.31102 0.25813 0.28933 0.84732 0.98777 0.91512 0.42240 0.87891 0.63757 0.76823 0.80367 0.24639 0.78208 0.77170 0.95281 Die Zufallszahlen liegen gleichverteilt zwischen 0 und 1 und werden nach dem Mersenne-Twister-Verfahren mit einer Periode von <math>2^{19937}-1</math> gebildet. Andere Verfahren sind: * randn: Normalverteilte Pseudozufallselemente mit Mittelwert=0 und Varianz=1 * rande: Exponentialverteilte Zufallselemente * randg: Gammaverteilte Zufallselemente * randp: Poissonverteilte Zufallselemente Details dazu siehe in der Octave-Hilfefunktion. == Aufgaben == * Berechnen Sie den Winkel zwischen den beiden Vektoren a = [1 2 0] und b = [2 1 1]. Hinweis: Siehe diesbezüglich auch im Oktave-Hilfesystem den Befehl "norm". * Gegeben seien Vektoren a = [1 2 5], b = [0 0 -1] und c = [-1 -2 2]. Berechnen Sie das Spatprodukt aus diesen drei Vektoren. * Multiplizieren Sie die beiden Matrizen A und B (mit Octave und zur Kontrolle händisch) A = [0 0 1 1 2 1] B = [1 1 1 2 0 4] * Ist die Matrix C regulär? Wenn ja, dann bilden Sie die inverse Matrix. C = [-1 0 0 -4 2 0 1 5 7 6 2 0 3 0 2 6] * Ist die Matrix D regulär? Wenn ja, dann bilden Sie die inverse Matrix. D = [2 1 0 0 0 0 2 1 0 0 0 2 1 1 0 0] * Berechnen Sie die Konditionszahl der folgenden Matrix. Hinweis: Siehe diesbezüglich im Oktave-Hilfesystem den Befehl cond [3 4 -5 6 0 3 1 1 2] * Berechnen Sie die Eigenwerte und Eigenvektoren der folgenden Matrix [6 -3 4 0 0 7 -1 1 0 10 -3 -2 0 1 -2 1] = Komplexe Zahlen = Die imaginäre Einheit wird in Octave durch den Buchstaben i, j, I oder J symbolisiert. Darstellen kann man eine komplexe Zahl bekannterweise in mehreren Formen: * Kartesische Darstellung <math>z = \Re(z) + i \cdot \Im(z)</math> * Polardarstellungen <math>z = r \cdot (\cos(\phi) + i \cdot \sin(\phi)) = r \cdot e^{i\cdot \phi}</math> Die konjugiert komplexe Zahl ist <math>z^* = \Re(z) - i \cdot \Im(z)</math> == Mit komplexen Zahlen rechnen == z1 = 2 + 5i; % kartesische Darstellung z2 = 3 * exp(3j); % Polardarstellung % Addition res = z1 + z2; disp("z1 + z2 = "); disp(res); % Multiplikation res = z1 * z2; disp("z1 * z2 = "); disp(res); % Realteil res = real(z2); disp("Realteil von z2 = "); disp(res); % Imaginärteil res = imag(z2); disp("Imaginaerteil von z2 = "); disp(res); % Betrag res = abs(z1); disp("Betrag von z1 = "); disp(res); % Argument res = angle(z1); disp("Argument von z1 = "); disp(res); % Konjugiert komplexe Zahl res = conj(z1); disp("Konjugiert komplexe Zahl von z1 = "); disp(res); Ausgabe: z1 + z2 = -0.96998 + 5.42336i z1 * z2 = -8.0568 - 14.0032i Realteil von z2 = -2.9700 Imaginaerteil von z2 = 0.42336 Betrag von z1 = 5.3852 Argument von z1 = 1.1903 Konjugiert komplexe Zahl von z1 = 2 - 5i == Die gaußsche Zahlenebene == clear; close all; clc; z1 = 3 + 5i; z2 = 5 * exp(0.5i); hold on; plot(z1, "*"); compass(z1); plot(z2, "o"); compass(z2); grid on; [[Datei:octave_komplex1.jpg]] == Aufgaben == * Berechnen Sie die Quadratwurzel der komplexen Zahl <math>z = 3 + 2i</math>. * Verwandeln Sie folgende Zahlen in die Polarkoordinatendarstellung: <math>-11 - 3i</math> und <math>(1+i)^{10}</math> * Verwandeln Sie folgende Zahlen in die Normaldarstellung: <math>12 \cdot e^{i\cdot \pi / 4}</math> und <math>3 \cdot (\cos(\pi / 3) + i \cdot \sin(\pi / 3))</math> * Zeichnen Sie die Zahl <math>3 + 5i</math> in der gaußschen Zahlenebene als Zeiger. = Funktionen = Um Programme zu strukturieren und einfacher zu gestalten können Programmteile in Funktionen ausgelagert werden. Eingebaute Funktionen haben wir schon kennengelernt (z.B. die Sinus-Funktion sin). Nun wollen wir sehen, wie man selbst solche Funktionen schreiben kann. == Eine einfache Funktion schreiben == Datei addiere.m: function res = addiere(a, b) % Addiere zwei Zahlen a + b res = a + b; end Datei test1.m: addiere(10, 15) Ausgabe: ans = 25 * Jede Funktion sollte in einer eigenen m-Datei stehen. * Der Dateiname sollte mit dem Funktionsnamen (natürlich ohne Dateiendung .m) übereinstimmen. * Der Kommentar unter dem Funktionskopf wird als Hilfstext angezeigt, wenn die help-Funktion (hier "help addiere") aufgerufen wird. == Inline-Funktionen == Kurze Funktionen können auch als Inline-Funktionen geschrieben werden. addiere = inline("a + b"); x = 5; y = 10; z = addiere(x, y) Oder in diesem Fall noch kürzer addiere = inline("a + b"); z = addiere(5, 10) Ausgabe: z = 15 Bei neueren Octave-Versionen kann bei der Verwendung von Inline-Funktionen die Warnung warning: inline is obsolete; use anonymous functions instead erscheinen. Ein Blick in die Hilfe-Funktion help inline zeigt das selbe Ergebnis. Es sollen also anonyme Funktionen (siehe etwas weiter unten in diesem Text) anstelle von Inline-Funktionen verwendet werden. == Funktionsstring == addiere = "a + b"; a = 5; b = 10; z = eval(addiere) Ausgabe: z = 15 == Anonyme Funktionen == {{Wikipedia | Anonyme Funktion}} addiere = @(a, b) a + b; x = 10; y = 20; z = addiere(x, y) oder kürzer addiere = @(a, b) a + b; z = addiere(10, 20) Ausgabe: z = 30 == Nullstellen von Funktionen bestimmen == sinh2 = @(x) sinh(x) + 2; z = fzero(sinh2, 1) Ausgabe: z = -1.4436 Zur Kontrolle soll hier der Graph der Funktion dargestellt werden clear; close all; clc; sinh2 = @(x) sinh(x) + 2; x = -2 : 0.1 : 0; y = sinh2(x); z = fzero(sinh2, 1) plot(x, y); hold on; plot(z, 0, "o", "Color", "red", "LineWidth", 2); text (-1.8, 0.8, "Nullstelle"); line([z -1.7], [0, .7], "Color", "black"); grid on; Ausgabe: [[Datei:octave_funktion5.jpg]] Weiter unten im Text wird die ähnliche Funktion "fsolve" beschrieben. "fzero" benutzt zwei verschiedene Funktionen zur Problemlösung, darunter eben auch "fsolve". Für die Nullstellenbestimmung von Polynomen gibt es die Funktion "roots". Näheres dazu folgt im nächsten Kapitel. == Globale Variablen == Datei addiere.m: function res = addiere() global a b; res = a + b; end Datei test1.m: clear; close all; clc; global a b; a = 5; b = 3; addiere() Ausgabe: ans = 8 == Aufgaben == * Schreiben Sie eine Funktion "ellipse", welche eine Ellipse am Bildschirm darstellt. Zur Erinnerung: Die Parameterdarstellung der Ellipse lautet <math>x = a\cdot\cos(t), y = b\cdot\sin(t), 0 \leq t \leq 2\pi</math>, Funktionsargumente seien a und b. * Schreiben Sie <math>y = 2\cdot\sin(x) + 3\cdot\cos(x/2)</math> ** als normale Funktion ** als Funktionsstring ** als Inlinefunktion ** als anonyme Funktion ** stellen Sie diese Funktion grafisch am Bildschirm dar. = Polynome = == Einzelne Polynomwerte berechnen == % y = 2*x^3 + 5*x^2 + 4 für x = 2 berechnen p = [2, 5, 0, 4]; polyval(p, 2) Ausgabe: ans = 40 == Polynome zeichnen == % y = 2*x^3 - 5*x^2 + 4 für das Intervall -5 <= x <= 5 grafisch darstellen x = -5 : .1 : 5; p = [2, 5, 0, 4]; y = polyval(p, x); plot(x,y); grid on; Ausgabe: [[Datei:octave_polynom1.jpg]] == Nullstellen bestimmen == Für Polynome existiert die Funktion "roots" zur Nullstellenbestimmung. % Nullstellen für y = 2*x^3 - 5*x^2 + 4 bestimmen p = [2, 5, 0, 4]; r = roots(p) Ausgabe: r = -2.76214 + 0.00000i 0.13107 + 0.84077i 0.13107 - 0.84077i Dieses Polynom hat nur eine reelle Nullstelle. Diese liegt, wie am obigen Grafen zu ersehen ist, in der Nähe von -2.762. Die beiden anderen Nullstellen sind konjugiert komplex zueinander (wie es auch sein sollte). == Aufgaben == * Berechnen Sie den Wert für x = 3 des Polynoms <math>y = 2x^4 - 3x^3 - x + 7</math>. * Berechnen Sie die Nullstellen von <math>y = 7x^5 - 3x^2 + 12</math>. * Zeichnen Sie das Polynom <math>y = 12x^4 - 70x</math> im Intervall <math>-5 \leq x \leq 5</math>. = Lineare Gleichungssysteme = Sei <math>Ax = b</math> ein lineares Gleichungssystem. <math>A</math> sei die Koeffizientenmatrix, <math>x</math> der Lösungsvektor und <math>b</math> ein bekannter Vektor. == Einfache Berechnung mittels Gauß-Verfahren == {{Wikipedia | Gaußsches Eliminationsverfahren}} Beispiel: A = [5 1 0 2]; b = [1 2]; x = A \ b Ausgabe: x = 0 1 == Das gmres-Verfahren == gmres steht für Generalized Minimal Residual. {{Wikipedia | GMRES-Verfahren}} A = [5 1 0 2]; b = [1 2]; x = gmres(A, b) Ausgabe: gmres converged at iteration 2 to a solution with relative residual 2.22045e-16 x = -1.6653e-16 1.0000e+00 Das Ergebnis weicht etwas vom gaußschen Verfahren ab, ist aber trotzdem im Rahmen der Näherung korrekt. Weiters kennt Octave noch andere iterative Verfahren, z.B. cgs (Conjugate Gradient Squared) oder bicgstab (Bi-Conjugate Gradient Stabilized). Näheres zu diesen Verfahren siehe in der weiterführenden Literatur (z.B. bei Meister: Numerik linearer Gleichungssysteme, Vieweg+Teubner, 2011) {{Wikipedia | CGS-Verfahren}} == Aufgabe == * Lösen Sie folgendes Gleichungssystem mittels Octave (und zur Kontrolle auch händisch): 5x + 6y - 2z = 12 3x - y - 3z = 6 2x + 2y + 4z = 5 = Nichtlineare Gleichungssysteme = == fsolve und fzero == Löse eine beliebige Gleichung f(x) = 0, z.B. <math> f(x) = x^2 - 5\cos(x) - 10 = 0 </math>: f = @(x) x^2 - 5*cos(x) - 10; xstart = 1; [x, fval, info] = fsolve(f, xstart) Ausgabe: x = 2.4681 fval = -1.7764e-015 info = 1 * x ist eine Nullstelle in der Nähe vom Startwert xstart. * fval ist die Abweichung, den f bei x aufweist. * info ist ein "Fehlercode": 1 bedeutet, dass der relative Fehler in der spezifizierten Toleranz liegt (wie es sein soll). 3 würde bedeuten, dass der Algorithmus nicht konvergiert (z.B. weil keine Nullstelle existiert). Zur Kontrolle plotten wir den Funktionsgraphen: x = - 1 : .1 : 3; y = x.^2 - 5.*cos(x) - 10; plot(x,y, "LineWidth", 2); grid on; Ausgabe: [[Datei:octave_nichtlin1.jpg]] Und siehe da, die gesuchte Nullstelle liegt wie berechnet bei einem Wert nahe 2,5. Die Funktion <math>x^2 - 5\cos(x) - 10</math> hat noch eine zweite Nullstelle, wie in der folgenden Abbildung zu erkennen ist. [[Datei:octave_nichtlin2.jpg]] Diese zweite Nullstelle erhalten wir, wenn der Startwert in der Nähe dieser zweiten Nullstelle liegt, also z.B. bei -1. Ändern Sie einfach den entsprechenden Startwert im obigen Programmcode, und das Programm sollte die Nullstelle in der Nähe von -2.5 liefern. Auch die Funktion ''fzero'' kann zur Lösung einer nichtlinearen Gleichung verwendet werden. Die Hilfe-Funktion von Octave empfiehlt dies sogar eindringlich für den Fall einer nichtlinearen Gleichung in einer Variablen. Für das gleiche Beispiel wie oben kann der Programmcode folgendermaßen aussehen: Eingabe: f = @(x) x^2 - 5*cos(x) - 10; [x0, y0] = fzero (f, [0, 3]) Ausgabe: x0 = 2.4681 y0 = -1.2434e-14 == Gleichungssysteme == Folgende Aufgabe ist dem Buch "Knorrenschild: Numerische Mathematik, Hanser, 2017, Seite 72" entnommen. Zu lösen ist das nichtlineare Gleichungssystem <math>f_1 = 2x_1 + 4x_2 = 0 </math> <math>f_2 = 4x_1 + 8x_2^3 = 0</math> Lösung: f.m: function y = f(x) y(1) = 2*x(1) + 4*x(2); y(2) = 4*x(1) + 8*x(2)^3; end test1.m: clear; close all; clc; [x, fval, info] = fsolve (@f, [0, 1]) [x, fval, info] = fsolve (@f, [0, -1]) [x, fval, info] = fsolve (@f, [0, 0]) Ausgabe: x = -2 1 fval = 0 7.4930e-09 info = 1 x = 2 -1 fval = 0 -7.4930e-09 info = 1 x = 0 0 fval = 0 0 info = 1 == Aufgaben == * Bestimmen Sie die Nullstellen von <math>f(x) = x^2 - 3</math>. Plotten Sie den Grafen. * Bestimmen Sie die Nullstelle von <math>f(x) = sin(x) - x - 1</math>. Plotten Sie den Grafen. * Lösen Sie das folgende Gleichungssystem (und stellen Sie das Ganze grafisch am Bildschirm dar): <math> f_1 = x_1 + x_2 = 0; f_2 = x_1 + \sin{x_2} = 0</math> = Interpolation = == Eindimensionale Interpolation == {{Wikipedia | Interpolation (Mathematik)}} Bezüglich eindimensionaler Interpolation sei auf die [https://docs.octave.org/v11.1.0/One_002ddimensional-Interpolation.html Octave-Dokumentation und Hilfefunktion zum Befehl " interp1"] verwiesen. Dort findet sich auch ein Programmbeispiel, das als Grundlage des folgenden Plots dient: [[Datei:octave_interpol1.jpg]] == Mehrdimensionale Interpolation == Bezüglich mehrdimensionaler Interpolation siehe die [https://docs.octave.org/v11.1.0/Multi_002ddimensional-Interpolation.html Hilfefunktion zu "interp2", "interp3" und "interpn"]. == Aufgabe == * Gegeben seinen die fünf Stützpunkte p1 = [1, 0], p2 = [2, -5], p3 = [3, 2], p4 = [4, 7], p5 = [5, 6]. Legen Sie eine Funktion (die Interpolierende) durch diese Stützpunkte. Eine Lösungsmöglichkeit: xp = [1 2 3 4 5]; yp = [0, -5, 2, 7, 6]; xf = 1 : .1 : 5; spl = interp1(xp, yp, xf, "spline"); pch = interp1(xp, yp, xf, "pchip"); plot(xp, yp, "or", "LineWidth", 2, xf, spl, "LineWidth", 2, ... xf, pch, "LineWidth", 2); legend("stuetzpunkte", "spline", "pchip", "location", "southeast"); [[Datei:octave_interpol3.jpg]] = Differenzialrechnung = == Polynome differenzieren == Es soll das Polynom <math>y = 2x^3 - 5x^2 + 7</math> differenziert werden. % Differenzieren des Polynoms y = 2*x^3 - 5*x^2 + 7 p = [2, -5, 0, 7]; polyder(p) Ausgabe: ans = 6 -10 0 D.h. also, die Ableitung von <math>y = 2x^3 - 5x^2 + 7</math> ist <math>y' = 6x^2 - 10x</math>. == Sonstige Funktionen differenzieren == Als Beispiel differenzieren wir <math>y = 5x\sin{x}</math> und stellen das Ganze grafisch dar. clear; close all; clc; x = 0 : 0.01 : 10; y = 5 .* x .* sin(x); y_strich = diff(y) / 0.01; plot(x, y, "Color", "red", "LineWidth", 2); hold on; plot(x(1:length(x)-1), y_strich, "Color", "blue", "LineWidth", 2); legend("y", "y'"); grid on; Ausgabe: [[Datei:octave_diff1.jpg]] diff(y) ist der Vektor aus den Differenzen y(2)-y(1), ..., y(n)-y(n-1). Für die genaue Arbeitsweise der diff-Funktion siehe "help diff". == Aufgaben == * Differenzieren Sie das Polynom <math>y = 5y^5 - y^4 + 6y - 4</math>. * Differenzieren Sie die Funktion <math>y = \log(x) + 10x</math> und stellen Sie y, sowie y' grafisch am Bildschirm dar. * Differenzieren Sie die Funktion <math>y = \frac{\sinh(x)}{(1+x)}</math> und stellen Sie y, sowie y' grafisch am Bildschirm dar. = Integralrechnung = == Polynome integrieren == Berechnen Sie das unbestimmte Integral von <math>y = 2x^3 - 7x^2 + 7</math> p = [2, -7, 0, 7]; p_int = polyint(p) Ausgabe: p_int = 0.50000 -2.33333 0.00000 7.00000 0.00000 Das Ergebnis lautet also <math>\int{y dx} = 0.5x^4 - 2.33333x^3 + 7x + C</math> (auf die Integrationskonstante C darf nicht vergessen werden!). == Gauß-Quadratur == {{Wikipedia | Gauß-Quadratur}} Berechnen Sie das Integral <math>\int_{0}^{3}x^2 dx</math> mittels Gauß-Quadratur. Datei f.m: function y = f(x) y = x^2; end Datei test1.m: [v, ier, nfun, err] = quad ("f", 0, 3) Ausgabe: v = 9.0000 ier = 0 nfun = 21 err = 9.9920e-014 Erläuterung zur Ausgabe: * v ... Resultat der Integration * ier ... integer error code * nfun ... Anzahl der Funktionsaufrufe * err ... Fehler in der Lösung == Quadratur mittels adaptiver Lobatto-Regel == Berechnen Sie diesmal das Integral <math>\int_{0}^{3}x^2 dx</math> mittels Lobatto-Quadratur. f = inline("x.^2"); v = quadl (f, 0, 3) Ausgabe: v = 9 Wie weiter oben bereits angesprochen kann bei der Ausgabe eine Warnung erfolgen. Inline-Funktionen sind inzwischen als obsolet erklärt und es sollen stattdessen anonyme Funktionen verwendet werden. Zwecks Übung sei nachfolgend nochmals dieses Beispiel berechnet. Diesmal wird aber eine anonyme Funktion verwendet. v = quadl (@(x) x.^2, 0, 3) == Aufgaben == * Integrieren Sie das Polynom <math>y = 5y^5 - y4 + 6y - 4</math>. * Integrieren Sie die Funktion <math>y = \log(x) + 10x</math> von -5 bis 5. * Integrieren Sie die Funktion <math>y = x^3</math> von 0 bis 4. Verwenden Sie hierzu die Simpsonregel (siehe dazu in der Hilfefunktion den Befehl "quadv"). = Gewöhnliche Differenzialgleichungen = == ode23, ode45 und lsode == Für die Lösung von Differenzialgleichungen stehen die Funktionen * ode23 bzw. * ode45 zur Verfügung. Diese Funktionen implementieren das Runge-Kutta-Verfahren. "ode" steht für "Ordinary Differential Equation" (also auf Deutsch für "Gewöhnliche Differentialgleichung"). Die Zahlen bei ode23 oder ode45 stehen für die Ordnung. {{Wikipedia | Runge-Kutta-Verfahren}} Beispiel <math>y' = x^2 + y^3</math>: clear; close all; clc; [x, y] = ode45(@(x,y) (x^2+y^3), [0 1], 0); plot(x, y, "LineWidth", 2); Ausgabe: [[Datei:octave_ode1.jpg]] Bezüglich der genauen Funktionsweise von "ode45" (oder "ode23") siehe die Octave-Hilfe. Auch die Funktion "lsode" steht zur Lösung von ODEs zur Verfügung. Beispiel <math>y' = x + y</math>: clear; close all; clc; t = 0 : .1 : 5; [y2, istate, msg] = lsode(@(x,y) (x + y), 1, t); istate msg plot(t, y2); Ausgabe: istate = 2 msg = successful exit [[Datei:octave_lsode1.jpg]] Bezüglich der genauen Funktionsweise von "lsode" siehe die Octave-Hilfe. == Aufgaben == * Lösen Sie die Differenzialgleichung <math>y' = \frac{1}{x\cdot y}</math> mit Octave. Kontrollieren Sie das Ergebnis, indem Sie die DGl händisch lösen. * Lösen Sie die Differenzialgleichung <math>m' = -k\cdot m</math>. Kontrollieren Sie das Ergebnis, indem Sie die DGl händisch lösen. * Lösen Sie die Differenzialgleichung <math>y' = \sqrt{|y|}</math>. = Die Fast-Fourier-Transformation = {{Wikipedia | Schnelle Fourier-Transformation}} Für die Funktion "fft" siehe das Octave-Hilfesystem. = Mengenrechnung = == Vereinigungsmenge == v1 = [1 2 3 4]; v2 = [2 4 6]; union(v1, v2) Ausgabe: ans = 1 2 3 4 6 == Schnittmenge == v1 = [1 2 3 4]; v2 = [2 4 6]; intersect(v1, v2) Ausgabe: ans = 2 4 = Logik = Logische Operatoren werden oft benötigt, z.B. bei Schleifen und Verzweigungen. Octave kennt die logischen Operatoren <code>or, and, not</code> und <code>xor</code>. Als Beispiel sei die Wahrheitstabelle für den Operator <code>or</code> dargestellt. A B A or B -------------------- true true true true false true false true true false false false In Octave kann das so ausgedrückt werden: or( true, true ) or( true, false ) or( false, true ) or( false, false ) Ausgabe: ans = 1 ans = 1 ans = 1 ans = 0 Zahlen ungleich 0 stehen für true, 0 für false. Z.B.: or( 22, 0) Ausgabe: ans = 1 Äquivalent zu <code>or</code> ist der Operator <code>|</code>: 22 | 0 Ausgabe: ans = 1 Zwecks näheren Informationen zu den Operatoren <code>and (&, &&), not (~, !)</code> und <code>xor</code> bemühe man Octaves Help-Funktion. Bitweise logische Funktionen kennt Octave auch, so kann man z.B. zwei Zahlen mit dem bitweisen OR-Operator verknüpfen: 0b1100101 0b0110001 --------- 0b1110101 Oder in Dezimalzahlen: 101 49 --- 117 In Octave: bitor( 0b1100101, 0b0110001 ) dec2bin( ans ) Ausgabe: ans = 117 ans = 1110101 Zu <code>bitand, bitxor</code> usw. siehe die Octave-Hilfe-Funktion. = Stochastik = ==Deskriptive Statistik == === Lageparameter === Arithmetischer Mittelwert: vec = [1 2 3 4 5 12 13]; mw = mean(vec) Ausgabe: mw = 5.7143 Der Median oder Zentralwert läßt sich folgendermaßen berechnen: vec = [1 2 3 4 5 12 13]; median(vec) Ausgabe: ans = 4 Der Modus oder häufigste Wert läßt sich mittels "mode"-Funktion eruieren: vec = [1 2 1 3 5 1 2 7]; [m, f, c] = mode (vec); disp(m); disp(f); disp(c); Ausgabe: 1 3 { [1,1] = 1 } m (erste Zeile der Ausgabe) ist der Modus. f (zweite Zeile) ist die Häufigkeit. Näheres dazu siehe im Octave-Hilfesystem. === Streuungsparameter === Varianz: vec = [1 2 3 1 1 6 7]; v = var(vec) Ausgabe: v = 6.3333 Standardabweichung: vec = [1 2 3 1 1 6 7]; s = std(vec) Ausgabe: s = 2.5166 === Grafiken erzeugen === Histogramme: v = [1 1 2 3 1 6 7 6 1 1 1 2]; hist(v, max(v)); Ausgabe: [[Datei:octave_histo2.jpg]] Balkendiagramme: v = [1 1 2 3 1 6 7 6]; bar(v); Ausgabe: [[Datei:octave_bar111.jpg]] Treppendiagramm: v = [1 1 2 3 1 6 7 6]; stairs(v); Ausgabe: [[Datei:octave_stairs1.jpg]] Stabdiagramm: v = [1 1 2 3 1 6 7 6]; stem(v); Ausgabe: [[Datei:octave_stem1.jpg]] === Aufgaben === Gegeben sei folgende Datentabelle mit den Werten: v1 = [3 4 1 1 7 2 1 9 2 5 9 7 2 2 9 2 2 1 2 8] v2 = [1 1 0 2 3 4 1 2 7 0 2 1 5 5 5 4 5 2 5 0] * Berechnen Sie die Lageparameter und Streuungsparameter des Vektors v1. * Berechnen Sie Kovarianz und Korrelationskoeffizient der beiden zugeordneten Vektoren v1 und v2. * Zeichnen Sie das Histogramm des Vektors v1. == Wahrscheinlichkeitsrechnung == === Kombinatorik === Der Binomialkoeffizient: <math>\binom{n}{k}=\frac{n!}{k!(n-k)!}</math> In Octave z.B.: n = 30; k = 4; n_ueber_k = nchoosek (n, k) Ausgabe: n_ueber_k = 27405 Permutationen sind die verschiedenen Anordnungsmöglichkeiten mit der Anzahl n! = n * (n-1) * ... * 2 * 1. Beispiel: v = [1, 2, 3]; p = perms(v) Ausgabe: p = 1 2 3 2 1 3 1 3 2 2 3 1 3 1 2 3 2 1 n! (n-Fakultät) selbst kann so berechnet werden: % 10! n = 10; factorial (n) Ausgabe: ans = 3628800 === Verteilungen === Octave kennt eine ganze Reihe von Dichte- und Verteilungsfunktionen und zwar * Probability Density Functions (PDF, Dichtefunktionen) * Cumulative Distribution Functions (CDF, Verteilungsfunktionen) Z.B.: * Binomialverteilung: ** binopdf ** binocdf * Hypergeometrische Verteilung: ** hygepdf ** hygecdf * Normalverteilung: ** normpdf ** normcdf * Studentverteilung: ** tpdf ** tcdf * Weibullverteilung: ** wblpdf ** wblcdf Ein Codebeispiel zur Binomialverteilung: clear; close all; clc; x = 0 : 1 : 10; n = 10; p = 0.1; b1 = binopdf (x, n, p); b2 = binocdf (x, n, p); subplot(221); bar(x, b1); title("binopdf"); text(1, 0.1, "n=10; p=0.1"); subplot(222); bar(x, b2); title("binocdf"); text(1, 0.5, "n=10; p=0.1"); n = 10; p = 0.5; b1 = binopdf (x, n, p); b2 = binocdf (x, n, p); subplot(223); bar(x, b1); text(1, 0.1, "n=10; p=0.5"); subplot(224); bar(x, b2); text(1, 0.1, "n=10; p=0.5"); Ausgabe: [[Datei:octave_bino3.jpg]] Möglicherweise erhalten Sie bei diesem Beispiel eine Fehlermeldung in der Form error: 'binopdf' undefined near line 8, column 6 The 'binopdf' function belongs to the statistics package from Octave Forge which you have installed but not loaded. To load the package, run 'pkg load statistics' from the Octave prompt. Laden Sie einfach das Paket für die Statistikfunktionen, wie in der Fehlermeldung beschrieben. Ein Codebeispiel zur Normalverteilung: clear; close all; clc; x = -4 : .1 : 4; b1 = normpdf(x); b2 = normcdf(x); subplot(121); plot(x, b1); title("normpdf"); grid on; subplot(122); plot(x, b2); title("normcdf"); grid on; Ausgabe: [[Datei:octave_norm111.jpg]] == Zufallszahlengeneratoren == Octave kann Zufallszahlen aus einer großen Anzahl von Verteilungen generieren, z.B. * Chi-Quadrat-Verteilung: chi2rnd * Log-Normal-Verteilung: lognrnd * Normalverteilung: normrnd Codebeispiel: mean = 0; standardabweichung = 1; zufallszahl = normrnd (mean, standardabweichung) Ausgabe (gibt eine Zufallszahl rund um den Mittelwert 0 aus), z.B. zufallszahl = 1.0451 Auch Zufallsvektoren (oder Zufallsmatrizen) können erstellt werden: mean = [0 0 0 0 0]; standardabweichung = 1; zufallsvektor = normrnd (mean, standardabweichung) Ausgabe, z.B.: zufallsvektor = 1.47108 -0.51280 0.52726 0.31730 -1.04422 = Einfache Benutzeroberflächen erstellen= == Input == fflush (stdout); x = input("Gib eine Zahl ein: "); disp(2 * x); Ein-/Ausgabe: Gib eine Zahl ein: 12 24 Der "fflush"-Befehl sollte immer vor dem Aufruf des input-Befehls aufgerufen werden. Näheres zu "fflush" siehe im Octave-Hilfesystem. == Diverse einfache vorgefertigte Dialoge == Fehlermeldung: errordlg("Fehlermeldung"); [[Bild:octave_fehlermeldung1.jpg]] Warnung: warndlg("Warnung"); [[Bild:octave_warnung1.jpg]] Hilfedialog: helpdlg [[Bild:octave_hilfe1.jpg]] Abfragedialog: button = questdlg ("Frage") [[Bild:octave_abfrage1.jpg]] Eingabedialog: in = inputdlg("Eingabe") [[Bild:octave_eingabe1.jpg]] Messagebox: h = msgbox ("Eine Mitteilung!"); [[Bild:octave_messagebox1.jpg]] == Komplexere vorgefertigte Dialogboxen == === Menübox === auswahl = menu("Auswahl", "Affe", "Elefant", "Loewe", "Sonstiges"); switch(auswahl) case 1 disp "Affe quietscht" case 2 disp "Elefant trompetet" case 3 disp "Loewe bruellt" otherwise disp "Sonstiges" end Ausgabe: [[Bild:octave_menu1.jpg]] Es werde beispielsweise die Nummer 2 gewählt. Ausgabe: Elefant trompetet === Dialogliste === clear; close all; clc; opt = {"Eins", "Zwei", "Drei"}; [sel, ok] = listdlg ("ListString", opt, "SelectionMode", "Multiple"); if (ok == 1) for i = 1 : numel(sel) disp(opt{sel(i)}); end else disp("Cancel"); end [[Bild:octave_dialog1.jpg]] Es werden beispielsweise alle Optionen ausgewählt. Ausgabe: Eins Zwei Drei === Fortschrittsbalken === h = waitbar ([0.5]) [[Bild:octave_fortschritt1.jpg]] === Datei- und Verzeichnisdialoge === Dateidialog: [fname, fpath, fltidx] = uigetfile () [[Bild:octave_dateidialog2.jpg]] Ähnlich sind die Befehle "uiputfile" und "uigetdir". Dazu sei auf die Octave-Hilfe verwiesen. == Eigene Dialoge kreieren == Dieses Thema sei hier nur kurz angerissen. Programmcode: d = dialog("Position", [300, 300, 250, 150], "Name", "Dialog"); txt = uicontrol("Parent", d, ... "Style", "text", ... "Position", [20, 80, 210, 40], ... "String", "Hallo Welt"); btn_servus = uicontrol("Parent", d, ... "Position", [30, 20, 80, 30], ... "String", "Servus", ... "Callback", "disp('Servus angeklickt!');"); btn_hallo = uicontrol("Parent", d, ... "Position", [140, 20, 80, 30], ... "String", "Hallo", ... "Callback", "disp('Hallo angeklickt!');"); uiwait(d); Ausgegebenes Dialogfenster: [[Bild:octave_dialog100.jpg]] Ausgabe auf der Konsole (je nach gedrücktem Button), z.B.: Servus angeklickt! Die Position wird als [links, unten, breite, höhe] angegeben. Der Koordinatennullpunkt liegt, bezogen auf das Elternfenster, links unten. Es sind auch negative Koordinatenwerte möglich. Sinnvoll ist das z.B. bei einem dynamischen Ausblenden ohne zu löschen, oder für Animationen. [[Bild:Cartesian-coordinate-system.svg | 150px]] Wer mehr dazu wissen will, sei auf die Octave-Dokumentation verwiesen. Insbesondere siehe * dialog * uicontrol * uipanel * uibuttongroup * uitable * uimenu * uitoolbar == Aufgaben == === Aufgabe 1 === Erzeugen Sie ein Dialogfenster mit einem Texteingabefeld und einem Button. Beim Klicken auf den Button soll der Eingabetext auf der Konsole ausgegeben werden. Das Dialogfenster soll also in etwa so aussehen: [[Bild:octave_dialog105.jpg]] Da dies etwas komplizierter als das oben gezeigte Beispiel ist, werden nachfolgend ein paar Codefragmente zwecks Lösung angegeben: Datei button_callback.m: function button_callback(editHandle) eingegText = get(editHandle, "String"); disp(eingegText); end Codefragement in test1.m: % ... edit = uicontrol(% ... "Style", "edit", ... %, ... "HorizontalAlignment", "left"); btn = uicontrol(% ... "Callback", @(src, event) button_callback(edit)); % ... Aufruf mit: octave test1.m Eingabe von z.B. "Hallo Welt!": [[Bild:octave_dialog106.jpg]] Ausgabe auf der Konsole nach dem Drücken des Buttons: Hallo Welt! === Aufgabe 2 === Erzeugen Sie ein Dialogfenster mit zwei Eingabefeldern und einem Button. Eingegeben in diese zwei Eingabefelder werden vom Benutzer Zahlen. Auf der Konsole ausgegeben werden soll, nach Drücken des Buttons, das Produkt dieser zwei Zahlen. Auch hier werden wieder Codefragemente angegeben. Datei button_callback.m: function button_callback(edit1, edit2) zahl1 = str2double(get(edit1, 'String')); zahl2 = str2double(get(edit2, 'String')); disp(zahl1 * zahl2); end Codefragment Datei test1.m: % ... btn = uicontrol("Parent", d, ... % ... "Callback", @(src, event) button_callback(edit1, edit2)); % ... Was passiert, wenn der Benutzer keine Zahlen, sondern beliebige Strings eingibt? = Fehlerhandling mit try/catch = Die try/catch-Anweisung entspricht weitgehend jener, die aus höheren Programmiersprachen wie C++ oder Java bekannt sind. Aufgebaut ist diese Anweisungsfolge so: try BODY catch CLEANUP end Beispiel: clear; close all; clc; try a = 10 / "zahl"; disp(a); disp("Weiter im try-Block"); catch disp("Catch: Kann nicht durch einen String dividieren"); end Ausgabe: Catch: Kann nicht durch einen String dividieren Sinnvoll ist die try/catch-Folge, wenn z.B. auch in einem Fehlerfall Dateien wieder geschlossen werden sollen. = Ein- und Ausgabe = == Formatierte Ausgabe am Bildschirm, formatiertes Lesen von der Tastatur == Folgendes Beispiel ist der Octave-Hilfe (von Octave 3.0.3) entnommen: pct = 37; filename = "foo.txt"; printf ("Processed %d%% of `%s'.\nPlease be patient.\n", pct, filename); Ausgabe: Processed 37% of `foo.txt'. Please be patient. "printf" gibt einen formatierten String am Bildschirm (genauer in den Stream stdout) aus. Wie man sieht, orientiert sich das Format an der Programmiersprache C. Für das formatierte Lesen vom Stream stdin (normalerweise also von der Tastatur) steht das Pendant "scanf" bereit. == Von einem String lesen bzw. in einen String schreiben == Bezüglich der Funktionen * sprintf und * sscanf sei auf die Octave-Hilfefunktion verwiesen. == Lesen und Schreiben von einer Datei == === Datei schreiben === % Datei c:\tmp\datei.test zum Schreiben öffnen datei = fopen ("c:/tmp/datei.test", "w"); % Etwas in die Datei schreiben fprintf(datei, "Hallo, Welt!"); % Datei schließen fclose(datei); === Datei lesen === % Datei c:\tmp\datei.test zum Lesen öffnen datei = fopen ("c:/tmp/datei.test", "r"); % Etwas aus der Datei lesen [string] = fscanf(datei, "%s"); disp(string); % Datei schließen fclose(datei); Ausgabe: Hallo,Welt! === Dateiende prüfen === Mittels des Befehls feof(FID); kann das Dateiende geprüft werden. Wenn die EOF-Bedingung zutrifft, dann wird 1 zurückgegeben, wenn nicht dann 0. Ein Beispiel folgt später als Lösung einer Aufgabe. === warning und error === Eine Warnung kann man am stderr-Stream ausgeben. Die warning-Funktion entspricht ansonsten der printf-Funktion. Nach Ausgabe der Warnung wird das Programm normal fortgesetzt. m = [1 2 3 6]; if(det(m) == 0) warning("Matrix ist singulaer"); end disp("Weiter geht's"); Ausgabe: warning: Matrix ist singulaer warning: called from test1 at line 5 column 3 Weiter geht's Schärfer ist der error-Befehl. Die Fehlermeldung wird am stderr-Stream ausgegeben. Vom Format her entspricht diese Funktion dem printf-Befehl. Nach Ausgabe der Fehlermeldung wird das Programm beendet. m = [1 2 3 6]; if(det(m) == 0) error("Matrix ist singulaer"); end disp("Weiter geht's"); Ausgabe: error: Matrix ist singulaer error: called from test1 at line 5 column 3 == Aufgaben == * Schreiben Sie ein Programm, das die Zahlen 1 bis 10 zeilenweise in eine Datei ausgibt. * Lesen Sie diese Zeilen wieder von der Datei ein und geben Sie sie am Bildschirm aus. * Gegeben sei eine Datei. Lesen Sie die Daten aus dieser Datei ein und rechnen Sie per Octave-Programm den Gesamtpreis für alle Tiere aus. Die Anzahl der Zeilen und der genaue Dateinhalt sei Ihnen vorab nicht bekannt. Bekannt ist nur das Datenformat wie folgt: Nr. Name Einzelpreis Stueck 1 Affe 15000.50 2 2 Loewe 11000.90 1 3 Nashorn 45000.10 1 4 Elefant 51245.90 3 5 Tiger 9000.70 2 6 Maus 34.90 12 Eine einfache Lösung ohne Schnickschnack (Fehlerüberprüfungen etc.) für dieses Beispiel könnte wie folgt aussehen: clear; close all; clc; datei = fopen ("c:/tmp/daten1.txt", "r"); gesamtpreis = 0; % Kopfzeile einlesen [nr, name, preis, stk] = fscanf(datei, "%s %s %s %s", "C"); while(feof(datei) == 0) % Datensätze einlesen [nr, name, preis, stk] = fscanf(datei, "%d %s %f %d", "C"); gesamtpreis += preis*stk; end fclose(datei); disp("Gesamtpreis = "); format long; disp(gesamtpreis); Ausgabe: Gesamtpreis = 258159.900000000 = Datencontainer = == Datenstrukturen == Pseudocode: STRUKTUR s ZAHL a VEKTOR b STRING c END Octave-Code: s.a = 45.9; s.b = [1 2 3 4 5]; s.c = "Hallo!"; s Ausgabe: s = scalar structure containing the fields: a = 45.90000000000000 b = 1 2 3 4 5 c = Hallo! Um ein paar weitere Möglichkeiten zum Handling mit Datenstrukturen aufzuzeigen, sei folgender Code aufgeführt. Datei addsub.m function res = addsub(a, b) res.x = a + b; res.y = a - b; end Datei test1.m clear; clc; addsub(10, 50) r = addsub(30, 70) r.x r.y ++r.x Ausgabe: ans = scalar structure containing the fields: x = 60 y = -40 r = scalar structure containing the fields: x = 100 y = -40 ans = 100 ans = -40 ans = 101 Die Funktion "addsub" liefert die Struktur res mit zwei Zahlenwerten. Die Elemente der Datenstruktur können auch außerhalb der Funktion angesprochen werden. Auch gerechnet werden kann mit diesen Elementen. == Cell Arrays == Manchmal kann es sinnvoll sein mehrere Variablen verschiedenen Typs und Größe in einer Variablen zu speichern. Dies funktioniert ähnlich wie bei Vektoren. Es werden aber geschweifte Klammern verwendet. Eingabe: c = {"Hallo Welt!", [2 2], 44} c{1} c{1:2} Ausgabe: c = { [1,1] = Hallo Welt! [1,2] = 2 2 [1,3] = 44 } ans = Hallo Welt! ans = Hallo Welt! ans = 2 2 Elemente des Cell Arrays können auch wieder mit Variablen anderen Typs überschrieben werden. c = {"Hallo Welt!", [2 2], 44}; c{1} = 5; c Ausgabe: c = { [1,1] = 5 [1,2] = 2 2 [1,3] = 44 } = Objektorientierte Programmierung = Octave unterstützt auch objektorientierte Programmierung mit dem Schlüsselwort <code>classdef</code> (ab Version 4.0). Dieses Thema ist aber etwas für fortgeschrittene Anwender und wird hier nicht behandelt. Wen es trotzdem interessiert, der sei auf die [https://docs.octave.org/latest/Object-Oriented-Programming.html Octave-Dokumentation] verwiesen. = Octave im Zusammenspiel mit anderen Programmiersprachen = == .oct-Dateien == Eine .oct-Datei in GNU Octave ist eine kompilierte C/C++-Datei, die als dynamisch ladbares Objekt direkt in Octave ausgeführt werden kann. oct-Dateien sind meist schneller als nativer Octave-Code. 1. Schritt: Erstelle z.B. eine C++-Datei ''quadrat.cc'' (es soll das Quadrat einer Zahl berechnet werden) #include <octave/oct.h> DEFUN_DLD(quadrat, args, nargout, "Quadrat einer Zahl berechnen") { double x = args(0).double_value(); double res = x*x; return octave_value(res); } * <code>DEFUN_DLD</code> ist ein Makro. Damit wird angezeigt, dass es sich um eine dynamisch ladbare Funktion handelt ('''De'''fine '''Fun'''ction – '''D'''ynamically '''L'''inked '''D'''istribution). * Der erste Parameter muss mit dem Namen der Funktion und der erstellten oct-Datei übereinstimmen, also hier <code>quadrat</code>. * <code>args</code>: Argumente die beim Aufruf in Octave übergeben werden. * <code>nargout</code>: Anzahl der Rückgabewerte. * "Quadrat einer Zahl berechnen": Dokumentationsstring 2. Schritt: ''quadrat.cc'' kompilieren # Terminal öffnen # In das quadrat.cc-Verzeichnis wechseln # Octave aufrufen # cc-Datei zu einer oct-Datei kompilieren: <code>mkoctfile quadrat.cc</code> # Wenn das ohne Fehlermeldung durchläuft, so sollte im Anschluss eine (relativ große) ''quadrat.oct''-Datei im entsprechenden Verzeichnis zu finden sein. 3. Schritt: Funktion <code>quadrat()</code> in Octave aufrufen, z.B.: y = quadrat(5) Es ergibt sich folgende Ausgabe: y = 25 Damit das funktioniert, müssen natürlich die entsprechenden Werkzeuge (Compiler etc.) installiert sein. Darauf wird hier aber nicht näher eingegangen. Die Dokumentation zu den .oct-Dateien findet sich auf [https://docs.octave.org/v11.1.0/Oct_002dFiles.html]. == Andere Möglichkeiten == * .mex-Dateien ('''M'''ATLAB '''Ex'''ecutables): Wenn man kompatibel zu MATLAB bleiben muss * Java- oder Python-Schnittstelle (Nachteil: langsamer als .oct-Dateien) Bevor man aber diese Möglichkeiten in Anspruch nimmt, sollte man vektorisieren. Damit lassen sich oft schon höhere Geschwindigkeiten erzielen. Dieses Thema wurde früher schon kurz behandelt ([[Ing_Mathematik:_Numerische_Mathematiksysteme_am_Beispiel_von_Octave#Die_FOR-Schleife|FOR-Schleife]]). = Octave GUI = Das GUI-Programm ('''G'''raphical '''U'''ser '''I'''nterface) von Octave entspricht im Wesentlichen anderen Programmier-Benutzeroberflächen (IDEs ... '''I'''ntegrated '''D'''evelopment '''E'''nvironments), wie z.B. Eclipse (Java), Code::Blocks (C/C++) oder Spyder (Python). Nachfolgend ist ein Screenshot des Octave-GUI mit einigen Anmerkungen dargestellt. [[Bild:octave_gui2.jpg|600px]] Probieren Sie einfach die Möglichkeiten der zur Verfügung gestellten GUI/IDE aus. = Komplexere Aufgaben = * Berechnen Sie die Fläche, den Umfang, die Seitenlängen, den Inkreis und den Umkreis eines Dreiecks. Stellen Sie das Dreieck inklusive In- und Umkreis grafisch dar. Speichern Sie die Daten in einer Datei. Die drei Eckpunkte dieses Dreiecks sollen vom Benutzer beliebig vorgegeben werden. * Die Werte einer beliebig großen quadratischen Matrix seien in einer Datei gespeichert. Lesen Sie diese Datei ein und berechnen Sie daraus die Determinante der Matrix, die inverse Matrix, die Eigenvektoren und -werte, die Spur. Führen Sie die LR-Zerlegung durch. Geben Sie diese Werte am Bildschirm aus. = Ausblick = Dies war eine kurze Einführung in die Berechnungs- und Darstellungsmöglichkeiten mit Octave. Es sollten etliche relevante Themen behandelt, oder zumindest kurz angesprochen worden sein. Wem dieser Text nicht ausreichend ist, der sei auf die entsprechende weiterführende Literatur, die Octave-Hilfefunktion und die Octave-Dokumentation verwiesen. Octave kennt noch viel mehr Befehle, als hier dargestellt wurden. Aber auch Octave selbst ist erweiterbar. Man siehe z.B. Octave Packages (https://gnu-octave.github.io/packages/) oder man schreibt selbst Erweiterungen. {{Navigation_zurückhochvor_buch| zurücktext=Maxima| zurücklink=Ing Mathematik: Computeralgebrasysteme am Beispiel von Maxima| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Julia für Ingenieure| vorlink=Ing Mathematik: Julia}} pen6f76nhmd81gfiik91cc17kyzb2tm Diskussion:Ing Mathematik: Numerische Mathematiksysteme am Beispiel von Octave 1 109846 1091081 1029375 2026-09-19T12:42:47Z Intruder 1513 Neuer Abschnitt /* Frage an die Google KI -> Ist das Kapitel "Octave" im Ing Math-Wikibook empfehlenswert? */ 1091081 wikitext text/x-wiki Was fehlt noch: * Korrekturlesen * Bilder umbenennen (entsprechend Wikipediaregeln und alte Bilder zum Löschen vorschlagen) * Feedback (ist der Text verständlich, zu leicht/zu schwierig ...) * Raum für Verbesserungen und Erweiterungen gibt es immer Stand: --[[Benutzer:Intruder|Intruder]] 18:47, 9. Mai 2020 (CEST) : Bilder habe ich umbenannt und alte Bilder zum Löschen vorgeschlagen --[[Benutzer:Intruder|Intruder]] 16:32, 10. Mai 2020 (CEST) : Einmal Korrektur gelesen habe ich den Text auch --[[Benutzer:Intruder|Intruder]] 15:49, 16. Mai 2020 (CEST) == Anmerkung zu Nichtlineare Gleichungssysteme / Gleichungssysteme == Das angegebene fsolve-Beispiel funktioniert mit der Octave-Version 7.3.0 nicht! Fehlermeldung: error: for x^y, only square matrix arguments are permitted and one argument must be scalar. Use .^ for elementwise power. error: called from f at line 2 column 5 fsolve at line 246 column 8 test1 at line 5 column 17 Aber auch die ähnlichen Beispiele in der Octave-Dokumentation zu fsolve funtionieren nicht - gleiche Fehlermeldung. Das macht mich stutzig. Ev. ist das ein Bug in Octave? Abwarten, ob die Fehlermeldung in einer späteren Version weiterhin auftritt? --[[Benutzer:Intruder|Intruder]] 18:22, 5. Mär. 2023 (CET) : Kein Bug, sondern ein Fehler meinerseits! Beispiel funktioniert auch mit Octave 7.3.0. --[[Benutzer:Intruder|Intruder]] 18:17, 7. Mär. 2023 (CET) == Version 8.1.0 == Der Text wurde mit der Octave-Version 8.1.0 durchgesehen. --[[Benutzer:Intruder|Intruder]] 14:07, 11. Mär. 2023 (CET) == Version 8.3.0 == Der Text wurde mit der Octave-Version 8.3.0 durchgesehen. --[[Benutzer:Intruder|Intruder]] 10:19, 22. Okt. 2023 (CEST) == Version 9.1.0 == Der Text wurde mit der Octave-Version 9.1.0 durchgesehen. --[[Benutzer:Intruder|Intruder]] 16:57, 19. Mär. 2024 (CET) == Frage an die Google KI -> Ist das Kapitel "Octave" im Ing Math-Wikibook empfehlenswert? == Antwort von soeben: "Das Kapitel „Numerische Mathematiksysteme am Beispiel von Octave“ im Wikibook „Ing: Mathematik für Ingenieure“ ist sehr empfehlenswert" ... Wenn Sie Mathematik im Ingenieurskontext anwenden müssen, ist das Kapitel eine der besten kostenlosen deutschsprachigen Ressourcen ... [[Benutzer:Intruder|Intruder]] 14:42, 19. Sep. 2026 (CEST) 8ccfy986noriedvux8bdtxth38cljik Ing Mathematik: Julia 0 117895 1091124 1089662 2026-09-20T07:19:43Z Intruder 1513 /* Ein paar Worte zur Erklärung */ 1091124 wikitext text/x-wiki {{Navigation_zurückhochvor_buch| zurücktext=Octave| zurücklink=Ing Mathematik: Numerische Mathematiksysteme am Beispiel von Octave| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Python für Ingenieure| vorlink=Ing Mathematik: Python}} = Hallo Welt und allgemeine Hinweise = == Was ist Julia == * Julia ist eine höhere Programmiersprache, die vor allem für numerisches und wissenschaftliches Rechnen entwickelt wurde. * Julia ist Open-Source (MIT-Lizenz). * Julia ist schnell (JIT-Compiler). * Julia ist für wichtige Betriebssysteme erhältlich (z.B. für Linux, MS Windows, macOS). * Julia als Programmiersprache ist case-sensitive - d.h. Groß- und Kleinschreibung ist relevant bei der Eingabe von Befehlen. {{Wikipedia | Julia (Programmiersprache)}} == Julia installieren == === MS Windows === Laden Sie das aktuelle Julia-Paket von der Webseite [https://julialang.org/downloads/] herunter (Manual Downloads). Weiter geht es wie bei jedem anderen größeren zu installierenden Programm. Einfach das Installationsprogramm im Explorer doppelklicken und den Anweisungen des Setup-Programmes folgen. Alternativ können Sie auch den "MSIX App Installer" verwenden, siehe die genannte Download-Seite. === Linux === Den Install-Button auf der Seite [https://julialang.org/] anklicken und den Anweisungen folgen (<code>curl ...</code>). Das Programm wird dann automatisch installiert. Unter openSUSE Tumbleweed können sie Julia auch via YaST installieren (Paket <code>juliaup</code>). == Julia starten == === MS Windows === Das Icon für das Julia-Programm doppelklicken. Und schon startet das Programm. [[Datei:juliastart1.jpg]] Das Julia-System präsentiert sich dann folgendermaßen (interaktives Kommandozeilenprogramm REPL [Read–eval–print loop]): [[Datei:Julia1.0.jpg|500px]] === Linux === Einfach <code>julia</code> in einer Konsole eintippen und mit der <code>Return</code>-Taste abschließen. Dies startet die Julia-REPL. Es gibt auch noch andere Möglichkeiten Julia zwecks Programmausführung zu starten, z. B. den {{W|Shebang}} (<code>#!</code>) am Beginn eines Julia-Scripts. Das Script sei als Script.py gespeichert. Dann kann das Script mit ./Script.py ausgeführt werden. Für openSUSE Tumbleweed sei nachfolgend ein lauffähiges "Hallo Welt!"-Script angegeben. #!/usr/bin/julia println("Hallo Welt!") Die Berechtigungen zum Ausführen der Datei müssen natürlich noch richtig gesetzt werden, z.B. mittels <code>chmod 777 Script.py</code>. <small>Die "Maske" <code>777</code> ist nur für Testzwecke sinnvoll, weil sie leicht zu merken ist und für alle Benutzer alle Zugriffsberechtigungen ('''r'''ead/'''w'''rite/e'''x'''ecute für owner/group/others) setzt. Im richtigen Einsatz wird man das aus Sicherheitsgründen nicht so handhaben, sondern nur die Berechtigungen setzen, die unbedingt erforderlich sind.</small> == Ein paar Worte zur Erklärung == === Test === Getestet wurden die Beispiele unter den Betriebssystemen * MS Windows 10 mit den Julia-Versionen 1.9.4 und 1.10.2 (bis Ende 2024). * openSUSE Leap 15.6 mit der Julia-Version 1.11.6 (im Juli 2025, nur vereinzelt). * openSUSE Tumbleweed ab der Julia-Version 1.12.5 (ab März 2026, nur vereinzelt). === Popularität === * An Beliebtheit rangiert Julia mit Stand September 2026 mit einem Rating von 0,74% an 21. Stelle der beliebtesten Programmiersprachen ([https://www.tiobe.com/tiobe-index/ lt. TPCI - TIOBE Programming Community Index]). * Lt. [https://pypl.github.io/PYPL.html PYPL] (PopularitY of Programming Language) liegt Julia auf dem 21. Platz (0,45%; Stand: September 2026). == Ein erstes Programm == Kommentare werden in Julia mit der Raute (#) eingeleitet. Sie werden vom Julia-Interpreter ignoriert. Text kann mit der print- oder println-Funktion ausgegeben werden. Starten Sie Julia und geben sie folgende Anweisungen zeilenweise ein (die Anweisungen sind jeweils mit der Return-Taste abzuschließen) julia> # Das ist ein Kommentar julia> print("Hallo Welt!") Als Ergebnis erhalten Sie Hallo Welt! Der Prompt (julia>) ist selbstverständlich nicht einzutippen, sondern wird vom Julia-System geliefert. Strings sind in Julia in Anführungszeichen (") zu setzen. Zwischen dem Befehl print und der öffnenden Klammer ( darf kein Leerzeichen gesetzt werden. = Julia als Taschenrechner = == Allgemeines == Wir wollen 3 * 5 berechnen. Dazu starten wir Julia. Geben Sie dann die Formel julia> 3 * 5 ein, drücken die Taste ENTER/RETURN und erhalten als Ergebnis 15 Auch kompliziertere Ausdrücke sind möglich. Beispielsweise mit Winkelfunktionen, Quadratwurzeln etc. Wir wollen nun den Ausdruck <math>\sin\sqrt{15}</math> berechnen : julia> sin(sqrt(15)) -0.6679052983383519 Mit dieser Zahl kann unmittelbar weitergerechnet werden, z.B. julia> ans * 2 -1.3358105966767038 "ans" steht übrigens für den Begriff "answer" (auf Deutsch "Antwort"). Das Mal-Zeichen (*) kann übrigens eingespart werden. <code>ans * 2</code> ist dasselbe wie <code>2ans</code>. Man beachte aber, dass in der Kurzform kein Leerzeichen zwischen 2 und ans stehen darf. Beenden lässt sich das Julia-Programm durch Eingabe von exit() (und natürlich ist zur Bestätigung die RETURN-Taste zu drücken). Beachten Sie wieder, dass zwischen der Funktion exit und der öffnenden Klammer kein Leerzeichen stehen darf. == Die Hilfefunktion von Julia == Bei Eingabe eines Fragezeichens (?) springt Julia in das Hilfesystem. Eingabe: ? Eingabe: help?> sin Ausgabe: sin search: sin sinh sind sinc sinpi sincos sincosd sincospi asin using isinf asinh asind isinteger isinteractive thisind sin(x) Compute sine of x, where x is in radians. See also sind, sinpi, sincos, cis, asin. Examples ≡≡≡≡≡≡≡≡≡≡ julia> round.(sin.(range(0, 2pi, length=9)'), digits=3) ... ... ... 0.454649 0.454649 Für die komplette Julia-Dokumentation siehe [https://docs.julialang.org/en/v1/]. == Aufgaben == * Erkunden Sie die Tangensfunktion "tan" mittels Julia-Hilfe. * Berechnen Sie mit Julia den Ausdruck <math>\frac{1}{2}\cdot e^2 \cdot \tan(\pi/3)</math>. Siehe für die Exponentialfunktion im Julia-Hilfesystem auch den Befehl exp(). Potenzieren kann man bei Julia mit dem ^-Operator (z.B. 2^3 = 8) * Berechnen Sie mit Julia den Ausdruck <math>2\text{cosd}(60) - 3\sin(\pi/5)</math>. Anmerkung: cosd erwartet den Parameter im Gradmaß (d für "degree"), sin erwartet den Parameter im Bogenmaß. = Julia als Scriptsprache = Häufig wird man aber kompliziertere Anweisungsfolgen verarbeiten müssen. Diese will man normalerweise nicht jedesmal neu eingeben, sondern in einer Datei speichern und diese Datei dann zur Ausführung bringen. Speichern Sie dazu folgenden Code in einer Textdatei, z.B. unter MS Windows als c:\tmp\test1.jl # Das ist ein Kommentar print("Hallo Welt!") Julia-Dateien werden mit der Dateiendung .jl versehen. Danach bringen Sie die Skriptdatei test1.jl (sozusagen das Hauptprogramm) folgendermaßen zur Ausführung: 1) Starten Sie unter MS Windows die Eingabeaufforderung (oder alternativ die Windows PowerShell). Das sieht dann etwa so aus: Microsoft Windows [Version 10.0.19045.3693] (c) Microsoft Corporation. Alle Rechte vorbehalten. C:\Users\xyz> : <small>Falls jemand nicht weiß, wie man die Eingabeaufforderung startet: Eine Möglichkeit ist, einfach in der Taskleiste von Windows das "Start"-Symbol mit der rechten Maustaste anklicken. "Ausführen" auswählen (oder alternativ für die PowerShell den Eintrag "Windows PowerShell"). Im sich öffnenden Dialogfenster gibt man in die "Öffnen"-Zeile das Wort <code>cmd</code> ein und mit "OK" wird das Ganze bestätigt.</small> 2) Wechseln Sie mittels <code>cd c:\tmp</code> in das Verzeichnis c:\tmp 3) Angenommen, Sie haben Julia unter dem Pfad <code>c:\devel\Julia-1.9.4\</code> installiert. Starten Sie das Programm so (der Prompt <code>c:\tmp></code>ist natürlich nicht mit einzutippen): c:\tmp>c:\devel\Julia-1.9.4\bin\julia.exe test1.jl 4) Wie erwartet ergibt sich folgende Ausgabe am Bildschirm Hallo Welt! Die Vorgehensweise unter Linux ist sehr ähnlich, wird hier deshalb nicht noch mal gezeigt. == Variablen == Variablenbezeichner können aus Buchstaben (A-Za-z), Ziffern (0-9), Underscores (_) und etlichen Unicode-Zeichen bestehen, dürfen aber nicht mit einer Zahl beginnen. Gültige Variablenbezeichner wären also: xyz x1 _wert name_anzahl a₂ γπΩ Wie kann man eigentlich die griechischen Zeichen im vorhergehenden Beispiel eingeben? Auf einer deutschen oder englischen Tastatur sind sie jedenfalls nicht zu finden. Des Rätsels Lösung kann folgendermaßen aussehen (wird am Beispiel des Omega-Zeichens (Ω) vorgeführt): 1) Starten Sie das Julia-System (z.B. mittels Doppelklick auf das Julia-Icon oder in der Eingabeaufforderung durch direkte Eingabe von julia.exe (ggf. mit dem entsprechenden Programmpfad). 2) geben Sie <code>\Omega</code> ein (ohne den Befehl mit Return abzuschließen) julia> \Omega 3 Tippen Sie auf die Tabulatortaste und schon erscheint das Ω. 4) Dieses Zeichen können Sie dann mittels Zwischenablage z.B. auch in eine jl.-Datei einfügen (ggf. unter Verwendung eines geeigneten Text-Editors, z.B. Geany oder unter Linux auch Kate) Ähnliches gilt für tiefgestellte Indizes, z.B. <code>a\_2</code> gefolgt von einem Tabulator ergibt a₂. Da Julia case-sensitiv ist, repräsentieren folgende Bezeichner verschiedene Variablen: xyz XYZ xYz Werte werden an Variablen mittels Gleich-Zeichen (=) zugewiesen. Im Folgenden wird der Code unter MS Windows immer in der Datei <code>c:\tmp\test1.jl</code> oder unter Linux z.B. unter <code>~/tmp/test1.jl</code> gespeichert. x = 5 y = 10 z = x*y print(z) Bringen Sie die Datei test1.jl zur Ausführung, so erhalten Sie folgende Bildschirmausgabe 50 Sie können auch mehrere Anweisungen in einer Zeile durch Semikolon getrennt schreiben. x = 5; y = 10; z = x*y print(z) Ausgabe: 50 Auch aus der Programmiersprache C/C++ oder Java bekannte Konstrukte können Sie verwenden, z.B. x = 5; println(x) # x = x - 2 x -= 2 println(x) Bildschirmausgabe: 5 3 Beachten Sie, dass mit dem =-Zeichen eine Wertezuweisung durchgeführt wird. Dies ist nicht äquivalent zum mathematischen =-Zeichen, wie am vorigen Beispiel zu ersehen ist. Die Verwendung von Prä-/Postfix-Operatoren (++, --) wie unter C/C++ oder Java ist in Julia nicht erlaubt, sondern liefert nur eine Fehlermeldung. Soll eine Anweisung auf mehrere Zeilen verteilt werden, z.B. weil sie zu lang ist, so kann dies geschehen, wie nachfolgend dargestellt. x = 5; y = 1000 * x + sin(x/2) print(y) Ausgabe: 5000.598472144104 Beachten Sie, dass die Zeilentrennung nach einem Operator erfolgt! Folgendes würde ein falsches Resultat liefern: x = 5; y = 1000 * x + sin(x/2) print(y) Ausgabe: 5000 Variablen sind nicht an einen bestimmten Datentyp gebunden, folgendes ist mit Julia problemlos möglich: wert = 10 println(wert) wert = 35.5 println(wert) wert = "Hallo" println(wert) wert = pi println(wert) Ausgabe: 10 35.5 Hallo π ==Hexadezimale, oktale und binäre Zahlen== # Hexadezimale Zahl println(0xABC) # Oktale Zahl println(0o56) # Binäre Zahl println( 0b1000011 ) Ausgabe (als Dezimalzahlen): 2748 46 67 Julia kann auch dezimale in binäre Zahlen etc. umwandeln: Eingabe: b = bitstring(30) println(b) Ausgabe: 0000000000000000000000000000000000000000000000000000000000011110 Ein anderes Beispiel (hexadezimal nach binär): # hexadezimal -> binär s = string(0xF, base=2) print(s) Ausgabe: 1111 == Verzweigungen == === if === Die IF-Verzweigung ist aus anderen Programmiersprachen bereits bekannt. In Pseudocode lässt sie sich folgendermaßen darstellen: WENN bedingung TRUE führe block1 aus SONST führe block2 aus ENDE Die test1.jl-Datei laute also wie folgt: x = 5; if x < 4 println("x ist kleiner als 4"); else println("Der else-Zweig wird ausgefuehrt"); println("x ist groesser oder gleich 4"); end Ausgabe: Der else-Zweig wird ausgefuehrt x ist groesser oder gleich 4 Julia kennt eine Reihe von Vergleichs- und Verknüpfungsoperatoren: * <, <= ... kleiner (gleich) * >, >= ... größer (gleich) * == ... gleich * != ... ungleich * &, && ... AND * |, || ... OR Beispielsweise: a = 5; b = 9; if a<=10 & b!=7 println("OK"); else println("Nicht OK"); end Ausgabe: OK Erweiterung der if-else-end-Verzweigung - ein Beispiel mit <code>elseif</code>: a = 5 if a==10 println("OK") elseif a==5 println("Nicht OK") println("a = 5") elseif a==6 println("Auch nicht OK") else println("Weiß nicht") end Ausgabe: Nicht OK a = 5 === Ternärer Operator === Eingabedatei: a = 5 a >= 6 ? println("größer gleich 6") : println("kleiner 6") Ausgabe: kleiner 6 == Schleifen == === while === Die WHILE-Schleife ist kopfgesteuert. Sie funktioniert nicht ganz so wie aus anderen Programmiersprachen bekannt. In Pseudocode: SOLANGE bedingung TRUE führe block aus ENDE In Julia: x = 0 while x <= 10 println(x) global x += 1 end Ausgabe: 0 1 2 3 4 5 6 7 8 9 10 Außerhalb von Funktionen muss das Schlüsselwort <code>global</code> verwendet werden. Ansonsten gibt es eine Warnung und eine Fehlermeldung. Innerhalb einer Funktion benötigt man das <code>global</code> nicht. === for === for x = 0 : 2 : 10 println(x); end Ausgabe: 0 2 4 6 8 10 Der FOR-Schleifenkopf ist in Form einer Zahlenkolonne folgendermaßen aufgebaut: for variable = startwert : schrittweite : endwert Alternativ findet man in der Literatur auch folgende for-Schleifenaufbauten. for x in 0 : 2 : 10 println(x); end for x ∈ 0 : 2 : 10 println(x); end Achtung: Das ∈ ist kein \epsilon, sondern ein \in. Die unterschiedlichen for-Schleifen liefern jeweils das gleiche Ergebnis. === break und continue === Zum Abbrechen einer Schleife gibt es den Befehl "break". for var = 0 : 1 : 100 println(var) if var == 5 break; end end Ausgabe: 0 1 2 3 4 5 "continue" setzt mit dem nächsten Schleifendurchlauf fort, z.B. for var = 0 : 1 : 10 if var == 5 continue; end println(var); end Ausgabe: 0 1 2 3 4 6 7 8 9 10 == Eingabe via Tastatur == Datei c:\tmp\test1.jl: print("Geben Sie eine Zahl ein: ") # Einlesen als String str = readline(stdin) print("Die Zahl lautet ") println(str) # Umwandeln in einen Float zahl = parse(Float64, str) print("Die Zahl lautet ") println(zahl) Eingabe der Zahl via Tastatur: 67.8 Mit der RETURN-Taste bestätigen. Ausgabe: Die Zahl lautet 67.8 Die Zahl lautet 67.8 In diesem Fall wird, wie gezeigt, zweimal <code>Die Zahl lautet 67.8</code> ausgegeben. Gibt man aber z.B. <code>Eins</code> ein, so wird einmal <code>Die Zahl lautet Eins</code> ausgegeben. Das ist klar, da <code>Eins</code> ein gültiger String ist. Danach folgt aber eine Fehlermeldung, weil <code>Eins</code> nicht in eine Fließkommazahl umgewandelt werden kann. = Grafiken zeichnen = Es gibt in Julia mehrere Möglichkeiten Grafiken zu zeichnen. Hier wird eine Einführung in das Package Plots gegeben. == Plots installieren == Im Julia-REPL die schließende eckige Klammer ] eintippen. Damit springt man in das Package-System, angezeigt wird das mit dem Prompt <code>(@v1.9) pkg></code>. Das Plots-Package zum Julia-System hinzufügen: (@v1.9) pkg> add Plots Mit STRG-C kann das Package-System wieder verlassen werden. == 2D == === Graph einer Funktion === Es soll die cosh-Funktion im Intervall <math>x\in[-3,3]</math> gezeichnet werden. Der Programmcode lautet in der einfachsten Form: using Plots x = -3 : .1 : 3 y = cosh.(x) p = plot(x, y) gui() while(true) end Ausgabe: [[Datei:Julia_cosh.jpg]] Der Code ist quasi selbsterklärend. Das Plots-Package wird importiert. x läuft von -3 bis +3. y wird für jeden x-Wert per Formel ausgerechnet. "plot" ist der Zeichenbefehl. "gui" ist notwendig, um das Fenster mit der Grafik anzuzeigen. Es folgt eine Endlossschleife. Diese ist notwendig, weil das Fenster mit der Grafik sonst nur kurz aufblinkt und das Programm danach beendet wird. Das Gesagte gilt, wenn man die test1.jl-Datei direkt ausführt. Im REPL kann man sich den Befehl "gui" und die Endlosschleife sparen. Die Schrittweite 0.1 wurde so gewählt, um einen ausreichend glatten Verlauf des Graphen zu gewährleisten. Das ist immer ein Kompromiss zwischen Berechnungszeit und Ansehnlichkeit. Testen Sie einfach ein paar verschiedene Werte, um ein Gefühl dafür zu zu bekommen. Hinweise: * Bis das Fenster mit dem cosh-Graphen erscheint, kann es einige Sekunden dauern. * Beenden kann man die Endlosschleife, indem man STRG-C drückt (STRG ist die Steuerungs- oder Control-Taste) * Beachten Sie den Punkt (.) bei der cosh-Funktion. Vergessen Sie diesen, so wird eine Fehlermeldung ausgegeben. Ein etwas komplexeres Beispiel ist folgendes using Plots x = -3 : .1: 3 y = cosh.(x) + 2 .^x plot(x,y) gui() while true end Man beachte die Punkte bei der Funktion y. Vergisst man die Punkte, dann erhält man eine Fehlermeldung. Weiters beachte man das Leerzeichen und die Position desselben bei 2 .^x. Setzt man das Leerzeichen an die falsche Stelle oder vergisst es ganz, so ist das auch ein Fehler. Ausgabe: [[Datei:Julia_cosh2.jpg]] === Graphen mehrerer Funktionen und weiteres === Mehrere Graphen lassen sich folgendermaßen in ein Fenster zeichnen (es werden auch Titel und Labels gesetzt): using Plots x = -3 : .1: 3 y1 = cosh.(x) + 2 .^x y2 = sin.(x) .* cos.(x) plot(x, [y1, y2], title="Screenshot", label=["cosh(x) + 2^x" "sin(x) + cos(x)"], xlabel="x", ylabel="y") gui() while true end [[Bild:Julia_cosh14.jpg]] Will man mehrere Graphen in ein Fenster zeichnen, aber nicht alles in einen plot-Befehl quetschen, so kann die "plot!"-Anweisung die Lösung des Problems sein. Auch die Linienstile sollen nun etwas individueller gestaltet werden: using Plots x = -3 : .1: 3 y1 = cosh.(x) + 2 .^x y2 = sin.(x) .* cos.(x) plot(x, y1, linestyle=:dot, label="cosh ...", linewidth=5) plot!(x, y2, ls=:dot, label="sin ...", lw=3) title!("Funktionsgraphen") xlabel!("x") ylabel!("y") gui() while true end [[Datei:Julia_cosh4.jpg]] === Funktion in Parameterdarstellung === Es soll die archimedische Spirale <math>x = t \cos(t), y = t \sin(t)</math> im Intervall <math>[0, 6\pi]</math> gezeichnet werden. using Plots t = 0 : .1: 6*pi x = t .* cos.(t) y = t .* sin.(t) plot(x, y, lw=5) gui() while true end [[Datei:Julia_spirale1.jpg]] Der Graph erscheint in der obigen Darstellung verzerrt. Will man das nicht, so setze man das <code>aspect_ratio</code> auf <code>:equal</code>: using Plots t = 0 : .1: 6*pi x = t .* cos.(t) y = t .* sin.(t) plot(x, y, lw=5, aspect_ratio = :equal) gui() while true end [[Datei:Julia_spirale2.jpg]] === Logarithmische Achsenskalierung === using Plots f(x) = 10^x p1 = plot(f, 1, 5, lw=2, title="kartesische Koordinaten") p2 = plot(f, 1, 5, yscale=:log10, lw=2, title="Semilog") p3 = plot(f, 1, 5, xscale=:log10, yscale=:log10, lw=2, title="LogLog") plot(p1, p2, p3, layout=(3,1)) gui() while true end Ausgabe: [[Datei:Julia_log1.jpg]] === Aufgaben === * Zeichnen Sie die Strophoide <math>x = \frac{a(t^2-1)}{t^2+1}, y = \frac{at(t^2-1)}{t^2+1}, a = 2, -3 \leq t \leq 3</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_strophoide.jpg]] * Zeichnen Sie die verschlungene Hypozykloide <math>x = (R-r)\cos t + c\cos\frac{R-r}{r}t, y = (R-r)\sin t - c\sin\frac{R-r}{r}t, c = 3, r = 2, R = 6, -15 \leq t \leq 15</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_hypozykloide.jpg]] * Testen Sie bei den obigen Übungsaufgaben verschiedene Werte für a, c, r und R. == 3D == === Räumliche Kurven === Mittels "plot3d" lassen sich Raumkurven zeichnen. using Plots t = 0 : .1: 6*pi x = t .* cos.(t) y = t .* sin.(t) z = t plot3d(x, y, z) gui() while true end [[Datei:Julia_raumkurve1.jpg]] === Flächen === using Plots x = 0 : .1 : 10; y = 0 : .1 : 10; z(x,y) = sin(x) + 3*cos(y); surface(x,y,z) gui() while true end [[Datei:Julia_flaeche1.jpg]] Das Ganze in Netzdarstellung läßt sich so programmieren: using Plots x = 0 : .5 : 10 y = 0 : .5 : 10 z(x,y) = sin(x) + 3*cos(y) wireframe(x, y, z) gui() while true end [[Datei:Julia_flaeche2.jpg]] Die Kameraposition lässt sich verändern: using Plots x = 0 : .1 : 10 y = 0 : .1 : 10 z(x,y) = sin(x) + 3*cos(y) # Kamerawinkel in Grad (Azimut, Altitude) surface(x,y,z, camera = (75, 60)) gui() while true end [[Datei:Julia_flaeche_3.jpg]] {{Wikipedia | Azimut}} === Höhenlinien === using Plots x = 0 : .1 : 10 y = 0 : .1 : 10 z(x,y) = sin(x) + 3*cos(y) contour(x,y,z) gui() while true end [[Datei:Julia_hoehenlinien.jpg]] Etwas abgewandelt sind das so aus: using Plots x = 0 : .1 : 10 y = 0 : .1 : 10 z(x,y) = sin(x) + 3*cos(y) contour(x, y, z, levels=10, clabels=true, cbar=false) gui() while true end [[Datei:Julia_hoehenlinien2.jpg]] Und noch eine Variante sei gezeigt. using Plots x = 0 : .1 : 10 y = 0 : .1 : 10 z(x,y) = sin(x) + 3*cos(y) contourf(x, y, z) gui() while true end [[Datei:Julia_hoehenlinien3.jpg]] === Aufgaben === * Zeichnen Sie die räumliche Kurve <math>x = 2 \cdot \cosh(t)</math>, <math>y = 5 \cdot \sin(t)</math>, <math> z = t^{2} - t</math>, <math>0 \leq t \leq 3\pi</math>. * Zeichnen Sie die Fläche <math>z = \log(x) + \cos(y)</math>. == Animationen == using Plots anim = Animation() for i = 1:100 plt = plot(sin, 0, i*2pi/10, ylims = (-1., 1.), lab="") frame(anim, plt) end gif(anim, "c:/tmp/Julia_anim1.gif",fps=10) Dieses Programm schreibt ein animiertes {{W|GIF}} in die Datei <code>c:/tmp/Julia_anim1.gif</code>. [[Datei:Julia_anim1.gif]] = Vektoren und Matrizen = == Vektoren == Vektoren sollten jedem aus der Linearen Algebra bekannt sein. === Spalten- und Zeilenvektoren === Starten Sie die Julia-REPL. Geben Sie folgenden Befehl ein, um einen Spaltenvektor zu erstellen: julia> v1 = [1, 2, 3] Ausgabe: 3-element Vector{Int64}: 1 2 3 Geben Sie folgenden Befehl ein, um einen Zeilenvektor (oder genauer eine 1x3-Matrix) zu erstellen: julia> v1 = [1 2 3] Ausgabe: 1×3 Matrix{Int64}: 1 2 3 === Zugriff auf Vektorelemente === Nachfolgend seien Zugriffsmöglichkeiten auf die Vektorelemente erläutert. Auf ein einzelnes Element kann via Index zugegriffen werden. Der Index startet bei 1: v1 = [1, 2, 3] println(v1[2]) Ausgabe: 2 Mehrere Elemente werden folgendermaßen angesprochen: v1 = [1 2 4 8 16] print(v1[3:4]) Ausgabe: [4, 8] Liefere den Teilvektor von einem gegebenen Index bis zum letzten Element: v1 = [1 2 4 8 16] print(v1[3:end]) Ausgabe: [4, 8, 16] === Addition und Subtraktion von Vektoren === v1 = [1, 2, 3] v2 = [5, 7, 9] println(v1 + v2) println(v1 - v2) Ausgabe: [6, 9, 12] [-4, -5, -6] === Multiplikation mit Skalaren === faktor = 3; v = [1, 2, 3]; println(v * faktor) Ausgabe: [3, 6, 9] === Skalarprodukt === Das Skalarprodukt ist bekanntermaßen als <math>v_1 \cdot v_2 = |v_1| |v_2| \cos(\angle(v_1, v_2))</math> definiert. In Julia sieht das so aus: using LinearAlgebra v1 = [1, 2, 3] v2 = [2, 5, 10] println(LinearAlgebra.dot(v1, v2)) Ausgabe: 42 Hinweis: Wenn das LinearAlgebra-Paket noch nicht installiert ist, so muss dies eventuell nachgeholt werden. Wie das prinzipiell funktioniert, wurde im Kapitel "Grafiken zeichnen" am Beispiel des Plots-Pakets vorgeführt. === Vektorprodukt === <math>a\ast b=\left(\begin{array}{c} a_{1}\\ a_{2}\\ a_{3} \end{array}\right)\ast\left(\begin{array}{c} b_{1}\\ b_{2}\\ b_{3} \end{array}\right)=\left(\begin{array}{c} a_{2}b_{3}-a_{3}b_{2}\\ a_{3}b_{1}-a_{1}b_{3}\\ a_{1}b_{2}-a_{2}b_{1} \end{array}\right) </math> Julia-Code: using LinearAlgebra v1 = [1, 2, 3] v2 = [2, 5, 10] println(LinearAlgebra.cross(v1, v2)) Ausgabe: [5, -4, 1] === Transponierter Vektor === using LinearAlgebra v = [1, 2, 3] println(LinearAlgebra.transpose(v)) Ausgabe: [1 2 3] === Einige weitere Vektorfunktionen === Die euklidische Norm <math>\|x\|_2 = \sqrt{x_1^2 + x_2^2 + \ldots + x_n^2}</math> in Julia: using LinearAlgebra v = [1 2 3] println(norm(v)) Ausgabe: 3.7416573867739413 Beispiel: # 1 + 2 + 3 v = [1 2 3] println(sum(v)) Ausgabe: 6 Beispiel: # 1 * 2 * 3 * 4 v = [1 2 3 4] println(prod(v)) Ausgabe: 24 == Matrizen == Starten Sie die Julia-REPL. Geben Sie folgenden Befehl ein, um eine 2x3-Matrix zu erstellen: julia> [1 2 3; 4 5 6] Ausgabe: 2×3 Matrix{Int64}: 1 2 3 4 5 6 Damit verlassen wir die Julia-REPL wieder und arbeiten im Folgenden mit der test1.jl-Datei weiter. === Zugriff auf Matrizenelemente === m = [1 2 3; 4 5 6] # Element aus Zeile 2 und Spalte 3 println(m[2,3]) Ausgabe: 6 Eine andere Zugriffsmöglichkeit ist diese: m = [1 2 3; 4 5 6] # Auf das Element an Position 5 soll zugegriffen werden println(m[5]) Ausgabe: 3 Die Matrix wird also spaltenweise durchlaufen (nicht zeilenweise). Dies ist vielleicht auf den ersten Blick etwas ungewöhnlich, wird aber z.B. auch in Fortran oder Octave so gehandhabt. [[Datei:Julia_matrix1.svg]] === Addition und Subtraktion von Matrizen === m1 = [1 2 3; 4 5 6] m2 = [-4 -2 0; 2 4 6] println(m1 + m2) println(m1 - m2) Ausgabe: [-3 0 3; 6 9 12] [5 4 3; 2 1 0] === Transponierte Matrix === m = [1 2 3; 4 5 6] println(m') Ausgabe: [1 4; 2 5; 3 6] === Rang einer Matrix === using LinearAlgebra m1 = [1 2 3; 4 5 6] m2 = [1 2 3; 2 4 6] println(LinearAlgebra.rank(m1)) println(LinearAlgebra.rank(m2)) Ausgabe: 2 1 === Inverse Matrix === using LinearAlgebra m = [1 3; 0 -5 ] println(LinearAlgebra.inv(m)) Ausgabe: [1.0 0.6000000000000001; 0.0 -0.2] === Determinate einer Matrix === using LinearAlgebra m1 = [1 3; 0 -5 ] m2 = [1 2; 2 4] println(LinearAlgebra.det(m1)) println(LinearAlgebra.det(m2)) Ausgabe: -5.0 0.0 m1 ist regulär, m2 ist singulär. Determinanten können nur von quadratischen Matrizen gebildet werden. === Multiplikation von Matrizen (falksches Schema) === m1 = [1 3 4; 0 -5 1] m2 = [1 2; 2 3; 0 2] println(m1 * m2) Ausgabe: [7 19; -10 -13] === Teilmatrizen === m = [1 2 3; 0 5 1] # Die Matrix in einen Spaltenvektor umwandeln println(m[:]) # Das Element aus der 1. Zeile und der 2. Spalte extrahieren println(m[1,2]) # Erste Zeile extrahieren println(m[1, 1:3]) println(m[1, :]) # Zweite Spalte extrahieren println(m[1:2, 2]) println(m[:, 2]) Ausgabe: [1, 0, 2, 5, 3, 1] 2 [1, 2, 3] [1, 2, 3] [2, 5] [2, 5] === Eigenwerte und Eigenvektoren === using LinearAlgebra A = [5 8; 1 3] # Eigenvektoren und Eigenwerte println(eigvals(A)) println(eigvecs(A)) Ausgabe: [1.0, 7.0] [-0.8944271909999159 0.9701425001453319; 0.447213595499958 0.24253562503633297] === LR-Zerlegung einer Matrix === Führen Sie die LR-Faktorisierung (LR ... links/rechts bzw. LU ... left/upper) einer Matrix m aus. Dazu springen wir wieder in die REPL und geben folgende Befehle ein: julia> using LinearAlgebra julia> m=[1 0 5; -1 1 -2; 0 0 3] 3×3 Matrix{Int64}: 1 0 5 -1 1 -2 0 0 3 julia> f = factorize(m) LU{Float64, Matrix{Float64}, Vector{Int64}} L factor: 3×3 Matrix{Float64}: 1.0 0.0 0.0 -1.0 1.0 0.0 0.0 0.0 1.0 U factor: 3×3 Matrix{Float64}: 1.0 0.0 5.0 0.0 1.0 3.0 0.0 0.0 3.0 === Schwach besetzte Matrizen === In der Technik treten häufig große Matrizen auf, die aber nur relativ wenige von Null verschiedene Werte mit Bandstruktur besitzen. Für diese ist es ineffizient, alle Matrizenelemente zu speichern. Effizienter ist es, nur die von Null verschiedenen Elemente zu speichern. Zu diesem Zwecke gibt es das <code>SparseArrays</code>-Paket. julia> using SparseArrays julia> ms = sparse([1, 2, 3, 3, 4, 5, 5], [2, 4, 1, 4, 3, 4, 5], [1, 3, 4, 2, 1, 1, 7]) Ausgabe: ⋅ 1 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 3 ⋅ 4 ⋅ ⋅ 2 ⋅ ⋅ ⋅ 1 ⋅ ⋅ ⋅ ⋅ ⋅ 1 7 === Spezielle Matrizen === Nachfolgend sollen eine Nullmatrix und eine Matrix mit lauter Einsen generiert werden. Dazu starten wir wieder die Julia-REPL, geben die entsprechenden Befehle ein und erhalten: julia> zeros(3,2) 3×2 Matrix{Float64}: 0.0 0.0 0.0 0.0 0.0 0.0 julia> ones(3,2) 3×2 Matrix{Float64}: 1.0 1.0 1.0 1.0 1.0 1.0 Insbesondere für Testzwecke kann es manchmal sinnvoll sein größere Matrizen mit Zufallswerten zu bilden. Dazu stellt Julia den rand-Befehl zur Verfügung. julia> m = rand(5,6) 5×6 Matrix{Float64}: 0.554722 0.7314 0.571432 0.804651 0.192327 0.912537 0.684459 0.748819 0.642302 0.552636 0.671043 0.250012 0.624424 0.722093 0.125511 0.342248 0.398071 0.820795 0.0894763 0.0514967 0.310389 0.96167 0.382739 0.0181225 0.957162 0.365172 0.50859 0.0742012 0.555778 0.512406 Einheitsmatrizen: Man beachte das <code>I</code> nach der Zahl 1. Die Matrix muss quadratisch sein. julia> using LinearAlgebra julia> M = 1I + zeros(4,4) 4×4 Matrix{Float64}: 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 Alternativ: julia> using LinearAlgebra julia> M = 1I(4) 4×4 Diagonal{Int64, Vector{Int64}}: 1 ⋅ ⋅ ⋅ ⋅ 1 ⋅ ⋅ ⋅ ⋅ 1 ⋅ ⋅ ⋅ ⋅ 1 Diagonalmatrizen, z.B.: julia> using LinearAlgebra julia> M = 3I + zeros(4,4) 4×4 Matrix{Float64}: 3.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0 3.0 Und damit verlassen wir die REPL wieder. = Komplexe Zahlen = Die imaginäre Einheit wird in Julia durch die Buchstabenkombination <code>im</code> symbolisiert. Darstellen kann man eine komplexe Zahl bekannterweise in mehreren Formen: * Kartesische Darstellung <math>z = \Re(z) + i \cdot \Im(z)</math> * Polardarstellungen <math>z = r \cdot (\cos(\phi) + i \cdot \sin(\phi)) = r \cdot e^{i\cdot \phi}</math> Die konjugiert komplexe Zahl ist <math>z^* = \Re(z) - i \cdot \Im(z)</math> == Mit komplexen Zahlen rechnen == z1 = 2 + 5im # kartesische Darstellung z2 = 3 * exp(3im) # Polardarstellung # Addition res = z1 + z2 println("z1 + z2 = ", res) # Multiplikation res = z1 * z2 println("z1 * z2 = ", res) # Realteil res = real(z2) println("Realteil von z2 = ", res) # Imaginärteil res = imag(z2) println("Imaginaerteil von z2 = ", res) # Betrag res = abs(z1) println("Betrag von z1 = ", res) # Argument res = angle(z1) println("Argument von z1 = ", res) # Konjugiert komplexe Zahl res = conj(z1) println("Konjugiert komplexe Zahl von z1 = ", res) Ausgabe: z1 + z2 = -0.9699774898013365 + 5.423360024179601im z1 * z2 = -8.05675510050068 - 14.003167400647481im Realteil von z2 = -2.9699774898013365 Imaginaerteil von z2 = 0.4233600241796016 Betrag von z1 = 5.385164807134504 Argument von z1 = 1.1902899496825317 Konjugiert komplexe Zahl von z1 = 2 - 5im = Funktionen = Um Programme zu strukturieren und einfacher zu gestalten können Programmteile in Funktionen ausgelagert werden. Eingebaute Funktionen haben wir schon kennengelernt (z.B. die Sinus-Funktion sin). Nun wollen wir sehen, wie man selbst solche Funktionen schreiben kann. == Eine einfache Funktion schreiben == f(a, b) = a + b println(f(2, 3)) Ausgabe: 5 == function == Datei <code>c:\tmp\func.jl</code>: function add(a,b) println(a + b) end Datei <code>c:\tmp\test1.jl</code>: include("func.jl") add(5, 11) Folgendes wird ausgegeben, wenn wir die test1.jl-Datei ausführen 16 == Anonyme Funktionen == println(map(a -> 5a + 10, [2, 3])) Ausgabe: [20, 25] == return == Datei <code>c:\tmp\func.jl</code>: function add(a,b) return a + b end Datei <code>c:\tmp\test1.jl</code>: include("func.jl") println(add(5, 11)) Folgendes wird ausgegeben, wenn wir die test1.jl-Datei ausführen 16 Auch die Rückgabe mehrerer Werte ist möglich. Datei <code>c:\tmp\func.jl</code>: function add(a, b) return a + b, "Addition" end Datei <code>c:\tmp\test1.jl</code>: include("func.jl") x, y = add(10, 20) println(x) println(y) Ausgabe: 30 Addition == Optionale Argumente == Datei <code>c:\tmp\func.jl</code>: function add(a, b = 100) return a + b end Datei <code>c:\tmp\test1.jl</code>: include("func.jl") println(add(5, 11)) println(add(5)) Folgendes wird ausgegeben, wenn wir die test1.jl-Datei ausführen 16 105 == Schlüsselwort-Argumente == Datei <code>c:\tmp\func.jl</code>: function add(a; b = 100) return a + b end Man beachte, dass hier zwischen den Argumenten a und b kein Beistrich, sondern ein Semikolon steht. Datei <code>c:\tmp\test1.jl</code>: include("func.jl") println(add(b=16, 5)) println(add(5, b=16)) println(add(5)) Ausgabe: 21 21 105 = Polynome = Sofern noch nicht geschehen, fügen Sie das Paket <code>Polynomials</code> zum Julia-System hinzu. == Ein erstes einfaches Beispiel == using Polynomials println(Polynomial([1, 0, 5, 7])) Ausgabe: 1 + 5*x^2 + 7*x^3 == Einzelne Polynomwerte berechnen == using Polynomials p = Polynomial([1, 0, 5, 7]); println(p(1.5)) Ausgabe: 35.875 == Polynome integrieren und differenzieren == using Polynomials p = Polynomial([1, 0, 5, 7]); i = integrate(p) d = derivative(p) println(i) println(d) Ausgabe: 1.0*x + 1.66667*x^3 + 1.75*x^4 10*x + 21*x^2 == Nullstellen bestimmen == using Polynomials p = Polynomial([4, 0, 5, 2]); r = roots(p) println(r) Ausgabe: ComplexF64[-2.7621427020576714 + 0.0im, 0.13107135102883646 - 0.8407709868482356im, 0.13107135102883646 + 0.8407709868482356im] == Aufgaben == * Berechnen Sie den Wert für x = 3 des Polynoms <math>y = 2x^4 - 3x^3 - x + 7</math>. * Differenzieren und integrieren Sie das Polynom <math>y = 2x^4 - 3x^3 - x + 7</math>. * Berechnen Sie die Nullstellen von <math>y = 7x^5 - 3x^2 + 12</math>. = Lineare Gleichungssysteme = Sei <math>Ax = b</math> ein lineares Gleichungssystem. <math>A</math> sei die Koeffizientenmatrix, <math>x</math> der Lösungsvektor und <math>b</math> ein bekannter Vektor. Beispiel: A = [5 1; 0 2] b = [1, 2] x = A \ b println(x) Ausgabe: [0.0, 1.0] = Interpolation = Als erstes muss das Interpolations-Paket installiert werden. Wenn Sie nicht wissen, wie man das macht, so sehen Sie unter dem Abschnitt "Grafiken zeichnen" den Absatz "Plots installieren". Dort wird die Vorgehensweise detailliert beschrieben. Datei "c:\tmp\test1.jl": using Interpolations using Plots # Stützpunkte xp = 1 : 1 : 5 yp = [0; -5; 2; 7; 6] # Interpolationsfunktionen lspl = LinearInterpolation(xp, yp, extrapolation_bc = Line()) cspl = CubicSplineInterpolation(xp, yp, extrapolation_bc = Line()) # Stützpunkte zeichnen plot(xp,yp,marker=4,linetype=:scatter, label = "Data", title = "Interpolation") # Interpolierende zeichnen x = 1 : .1 : 5 plot!(x, lspl(x), label="Linearer Spline") plot!(x, cspl(x), label="Kubischer Spline") gui() while true end Ausgabe: [[Datei:Julia_interpol1.jpg]] = Differenzialrechnung = == Symbolische Differenziation == julia> using Calculus julia> differentiate("sin(x)", :x) Ausgabe: :(1 * cos(x)) Auswertung: julia> x = pi/2; julia> round(eval(differentiate("sin(x)", :x))) Ausgabe: 0.0 == Numerische Differenziation == julia> using Calculus julia> derivative("sin", pi/2) Ausgabe: 0.0 = Integralrechnung = julia> using QuadGK julia> integral, err = quadgk(x -> sin(x), 0, pi/2, rtol=1e-8) Ausgabe: (0.9999999999999999, 1.1102230246251565e-16) Im Rahmen der Näherung ist das Resultat richtig (exakt sollte (1.0, 0.0) rauskommen). = Gewöhnliche Differenzialgleichungen = Das Paket <code>DifferentialEquations</code> ist, wie so viele andere, umfangreich. Hier sei nur ein einfaches Beispiel dargestellt. Für weiterführende Studien sei auf die entsprechenden Weblinks verwiesen. Folgende Differentialgleichung sei gegeben: <math>y' = x^2 + y^3</math>. using DifferentialEquations using Plots f(y, p, x) = x^2 + y^3 problem = ODEProblem(f, 0.0, (0.0, 1.0)) s = solve(problem, Tsit5(), reltol = 1e-8, abstol = 1e-8) plot(s, title = "ODE") gui() while true end Ausgabe: [[Datei:Julia_dgl1.jpg]] = Ein- und Ausgabe = == Dateien lesen == # Textdatei im aktuellen Verzeichnis öffnen f = open("test1.jl") # Lesen aus Datei lines = readlines(f) # Zeilenweise Ausgabe am Bildschirm for l in lines println("$l") end # Datei schließen close(f) Als Ausgabe erscheint exakt obiger Source-Code im Terminal. == Dateien schreiben == open("test.txt", "w") do f write(f, "Schreibe eine Zeile in Textdatei\n") end Der Inhalt der Datei "test.txt" ist dann: Schreibe eine Zeile in Textdatei = Benutzeroberflächen erstellen = Hier wird nur eine (sehr) kurze Einführung in das Thema GUI mit Gtk (Gimp toolkit, [https://www.gtk.org/]) gegeben. Nähere Details siehe die Gtk.jl-Dokumentation ([https://juliagraphics.github.io/Gtk.jl/latest/]). Nachfolgend wird ein gegenüber der offiziellen Dokumentation abgewandeltes Beispiel gezeigt. Das ist nötig, um Gtk.jl unter Windows 10 zum Laufen (bzw. um ein Fenster angezeigt) zu bekommen. Das Problem scheint schon seit Langem bekannt zu sein, siehe [https://stackoverflow.com/questions/52589873/gtk-jl-julia-bindings-for-gtk-gtk-window-is-not-displayed-outside-the-repl Gtk.jl, Julia Bindings for Gtk: Gtk Window is not displayed outside the REPL]. using Gtk win = GtkWindow("Hallo Welt", 400, 200) b = GtkButton("Push the button") push!(win,b) c = Condition() endit(w) = notify(c) signal_connect(endit, win, :destroy) showall(win) wait(c) Ausgabe: [[Datei:Julia_gtk1.jpg]] Ein etwas komplizierteres (aber zugegebenerweise noch nicht sehr schönes) Beispiel sei nachfolgend gezeigt. Es sollen zwei Strings miteinander verknüpft und ausgegeben werden. using Gtk win = GtkWindow("Stringverknüpfung") hbox = GtkBox(:h) push!(win, hbox) e1 = GtkEntry() l1 = GtkLabel("verknüpfe mit") e2 = GtkEntry() b = GtkButton("=") l2 = GtkLabel(" ") push!(hbox, e1) push!(hbox, l1) push!(hbox, e2) push!(hbox, b) push!(hbox, l2) function on_button_clicked(b) GAccessor.text(l2, get_gtk_property(e1, :text, String) * get_gtk_property(e2, :text, String)) end signal_connect(on_button_clicked, b, "clicked") c = Condition() endit(w) = notify(c) signal_connect(endit, win, :destroy) showall(win) wait(c) Ausgabe (vor der Eingabe der Teilstrings): [[Datei:Julia_gtk2.jpg]] Ausgabe (nach der Eingabe der Teilstrings und dem Drücken des =-Buttons): [[Datei:Julia_gtk3.jpg]] = Ausblick = Dies war eine kurze Einführung in die Berechnungs- und Darstellungsmöglichkeiten mit Julia. Es sollten etliche relevante Themen behandelt, oder zumindest kurz angesprochen worden sein. Wem dieser Text nicht ausreichend ist, der sei auf die entsprechenden weiterführenden Weblinks und die Julia-Hilfefunktion verwiesen. Julia kennt noch viel mehr Befehle, als hier dargestellt wurden. Das Themenspektrum ist auch durch die Einbindung externer Pakete fast beliebig erweiterbar. = Weblinks = * [https://julialang.org/ Julia Homepage] * [https://docs.julialang.org/en/v1/ Julia Dokumentation] * [https://en.wikibooks.org/wiki/Introducing_Julia Englisches Wikibook zu Julia] * [https://docs.makie.org/stable/ Makie - a data visualization ecosystem for Julia] * [https://docs.juliaplots.org/latest/ Plots - powerful convenience for visualization in Julia] * [https://www.matecdev.com/posts/julia-numerical-computing.html Numerical Computing in Julia] * [https://www.matecdev.com/posts/julia-tutorial-science-engineering.html Julia Programming Tutorial] * [https://juliapackages.com/p/polynomials Polynomials.jl] * [https://github.com/JuliaMath/Calculus.jl Calculus.jl] * [https://github.com/JuliaMath/QuadGK.jl QuadGK.jl] * [https://docs.sciml.ai/DiffEqDocs/stable/ DifferentialEquations.jl: Efficient Differential Equation Solving in Julia] * [https://nextjournal.com/sosiris-de/ode-diffeq# Solving ODEs in Julia] * [https://juliagraphics.github.io/Gtk.jl/latest/ Gtk.jl] {{Navigation_zurückhochvor_buch| zurücktext=Octave| zurücklink=Ing Mathematik: Numerische Mathematiksysteme am Beispiel von Octave| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Python für Ingenieure| vorlink=Ing Mathematik: Python}} ilidwbafh3nojbbqc5x2nk9cfm1pjea 1091125 1091124 2026-09-20T07:20:10Z Intruder 1513 /* Ein paar Worte zur Erklärung */ 1091125 wikitext text/x-wiki {{Navigation_zurückhochvor_buch| zurücktext=Octave| zurücklink=Ing Mathematik: Numerische Mathematiksysteme am Beispiel von Octave| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Python für Ingenieure| vorlink=Ing Mathematik: Python}} = Hallo Welt und allgemeine Hinweise = == Was ist Julia == * Julia ist eine höhere Programmiersprache, die vor allem für numerisches und wissenschaftliches Rechnen entwickelt wurde. * Julia ist Open-Source (MIT-Lizenz). * Julia ist schnell (JIT-Compiler). * Julia ist für wichtige Betriebssysteme erhältlich (z.B. für Linux, MS Windows, macOS). * Julia als Programmiersprache ist case-sensitive - d.h. Groß- und Kleinschreibung ist relevant bei der Eingabe von Befehlen. {{Wikipedia | Julia (Programmiersprache)}} == Julia installieren == === MS Windows === Laden Sie das aktuelle Julia-Paket von der Webseite [https://julialang.org/downloads/] herunter (Manual Downloads). Weiter geht es wie bei jedem anderen größeren zu installierenden Programm. Einfach das Installationsprogramm im Explorer doppelklicken und den Anweisungen des Setup-Programmes folgen. Alternativ können Sie auch den "MSIX App Installer" verwenden, siehe die genannte Download-Seite. === Linux === Den Install-Button auf der Seite [https://julialang.org/] anklicken und den Anweisungen folgen (<code>curl ...</code>). Das Programm wird dann automatisch installiert. Unter openSUSE Tumbleweed können sie Julia auch via YaST installieren (Paket <code>juliaup</code>). == Julia starten == === MS Windows === Das Icon für das Julia-Programm doppelklicken. Und schon startet das Programm. [[Datei:juliastart1.jpg]] Das Julia-System präsentiert sich dann folgendermaßen (interaktives Kommandozeilenprogramm REPL [Read–eval–print loop]): [[Datei:Julia1.0.jpg|500px]] === Linux === Einfach <code>julia</code> in einer Konsole eintippen und mit der <code>Return</code>-Taste abschließen. Dies startet die Julia-REPL. Es gibt auch noch andere Möglichkeiten Julia zwecks Programmausführung zu starten, z. B. den {{W|Shebang}} (<code>#!</code>) am Beginn eines Julia-Scripts. Das Script sei als Script.py gespeichert. Dann kann das Script mit ./Script.py ausgeführt werden. Für openSUSE Tumbleweed sei nachfolgend ein lauffähiges "Hallo Welt!"-Script angegeben. #!/usr/bin/julia println("Hallo Welt!") Die Berechtigungen zum Ausführen der Datei müssen natürlich noch richtig gesetzt werden, z.B. mittels <code>chmod 777 Script.py</code>. <small>Die "Maske" <code>777</code> ist nur für Testzwecke sinnvoll, weil sie leicht zu merken ist und für alle Benutzer alle Zugriffsberechtigungen ('''r'''ead/'''w'''rite/e'''x'''ecute für owner/group/others) setzt. Im richtigen Einsatz wird man das aus Sicherheitsgründen nicht so handhaben, sondern nur die Berechtigungen setzen, die unbedingt erforderlich sind.</small> == Ein paar Worte zur Erklärung == === Tests === Getestet wurden die Beispiele unter den Betriebssystemen * MS Windows 10 mit den Julia-Versionen 1.9.4 und 1.10.2 (bis Ende 2024). * openSUSE Leap 15.6 mit der Julia-Version 1.11.6 (im Juli 2025, nur vereinzelt). * openSUSE Tumbleweed ab der Julia-Version 1.12.5 (ab März 2026, nur vereinzelt). === Popularität === * An Beliebtheit rangiert Julia mit Stand September 2026 mit einem Rating von 0,74% an 21. Stelle der beliebtesten Programmiersprachen ([https://www.tiobe.com/tiobe-index/ lt. TPCI - TIOBE Programming Community Index]). * Lt. [https://pypl.github.io/PYPL.html PYPL] (PopularitY of Programming Language) liegt Julia auf dem 21. Platz (0,45%; Stand: September 2026). == Ein erstes Programm == Kommentare werden in Julia mit der Raute (#) eingeleitet. Sie werden vom Julia-Interpreter ignoriert. Text kann mit der print- oder println-Funktion ausgegeben werden. Starten Sie Julia und geben sie folgende Anweisungen zeilenweise ein (die Anweisungen sind jeweils mit der Return-Taste abzuschließen) julia> # Das ist ein Kommentar julia> print("Hallo Welt!") Als Ergebnis erhalten Sie Hallo Welt! Der Prompt (julia>) ist selbstverständlich nicht einzutippen, sondern wird vom Julia-System geliefert. Strings sind in Julia in Anführungszeichen (") zu setzen. Zwischen dem Befehl print und der öffnenden Klammer ( darf kein Leerzeichen gesetzt werden. = Julia als Taschenrechner = == Allgemeines == Wir wollen 3 * 5 berechnen. Dazu starten wir Julia. Geben Sie dann die Formel julia> 3 * 5 ein, drücken die Taste ENTER/RETURN und erhalten als Ergebnis 15 Auch kompliziertere Ausdrücke sind möglich. Beispielsweise mit Winkelfunktionen, Quadratwurzeln etc. Wir wollen nun den Ausdruck <math>\sin\sqrt{15}</math> berechnen : julia> sin(sqrt(15)) -0.6679052983383519 Mit dieser Zahl kann unmittelbar weitergerechnet werden, z.B. julia> ans * 2 -1.3358105966767038 "ans" steht übrigens für den Begriff "answer" (auf Deutsch "Antwort"). Das Mal-Zeichen (*) kann übrigens eingespart werden. <code>ans * 2</code> ist dasselbe wie <code>2ans</code>. Man beachte aber, dass in der Kurzform kein Leerzeichen zwischen 2 und ans stehen darf. Beenden lässt sich das Julia-Programm durch Eingabe von exit() (und natürlich ist zur Bestätigung die RETURN-Taste zu drücken). Beachten Sie wieder, dass zwischen der Funktion exit und der öffnenden Klammer kein Leerzeichen stehen darf. == Die Hilfefunktion von Julia == Bei Eingabe eines Fragezeichens (?) springt Julia in das Hilfesystem. Eingabe: ? Eingabe: help?> sin Ausgabe: sin search: sin sinh sind sinc sinpi sincos sincosd sincospi asin using isinf asinh asind isinteger isinteractive thisind sin(x) Compute sine of x, where x is in radians. See also sind, sinpi, sincos, cis, asin. Examples ≡≡≡≡≡≡≡≡≡≡ julia> round.(sin.(range(0, 2pi, length=9)'), digits=3) ... ... ... 0.454649 0.454649 Für die komplette Julia-Dokumentation siehe [https://docs.julialang.org/en/v1/]. == Aufgaben == * Erkunden Sie die Tangensfunktion "tan" mittels Julia-Hilfe. * Berechnen Sie mit Julia den Ausdruck <math>\frac{1}{2}\cdot e^2 \cdot \tan(\pi/3)</math>. Siehe für die Exponentialfunktion im Julia-Hilfesystem auch den Befehl exp(). Potenzieren kann man bei Julia mit dem ^-Operator (z.B. 2^3 = 8) * Berechnen Sie mit Julia den Ausdruck <math>2\text{cosd}(60) - 3\sin(\pi/5)</math>. Anmerkung: cosd erwartet den Parameter im Gradmaß (d für "degree"), sin erwartet den Parameter im Bogenmaß. = Julia als Scriptsprache = Häufig wird man aber kompliziertere Anweisungsfolgen verarbeiten müssen. Diese will man normalerweise nicht jedesmal neu eingeben, sondern in einer Datei speichern und diese Datei dann zur Ausführung bringen. Speichern Sie dazu folgenden Code in einer Textdatei, z.B. unter MS Windows als c:\tmp\test1.jl # Das ist ein Kommentar print("Hallo Welt!") Julia-Dateien werden mit der Dateiendung .jl versehen. Danach bringen Sie die Skriptdatei test1.jl (sozusagen das Hauptprogramm) folgendermaßen zur Ausführung: 1) Starten Sie unter MS Windows die Eingabeaufforderung (oder alternativ die Windows PowerShell). Das sieht dann etwa so aus: Microsoft Windows [Version 10.0.19045.3693] (c) Microsoft Corporation. Alle Rechte vorbehalten. C:\Users\xyz> : <small>Falls jemand nicht weiß, wie man die Eingabeaufforderung startet: Eine Möglichkeit ist, einfach in der Taskleiste von Windows das "Start"-Symbol mit der rechten Maustaste anklicken. "Ausführen" auswählen (oder alternativ für die PowerShell den Eintrag "Windows PowerShell"). Im sich öffnenden Dialogfenster gibt man in die "Öffnen"-Zeile das Wort <code>cmd</code> ein und mit "OK" wird das Ganze bestätigt.</small> 2) Wechseln Sie mittels <code>cd c:\tmp</code> in das Verzeichnis c:\tmp 3) Angenommen, Sie haben Julia unter dem Pfad <code>c:\devel\Julia-1.9.4\</code> installiert. Starten Sie das Programm so (der Prompt <code>c:\tmp></code>ist natürlich nicht mit einzutippen): c:\tmp>c:\devel\Julia-1.9.4\bin\julia.exe test1.jl 4) Wie erwartet ergibt sich folgende Ausgabe am Bildschirm Hallo Welt! Die Vorgehensweise unter Linux ist sehr ähnlich, wird hier deshalb nicht noch mal gezeigt. == Variablen == Variablenbezeichner können aus Buchstaben (A-Za-z), Ziffern (0-9), Underscores (_) und etlichen Unicode-Zeichen bestehen, dürfen aber nicht mit einer Zahl beginnen. Gültige Variablenbezeichner wären also: xyz x1 _wert name_anzahl a₂ γπΩ Wie kann man eigentlich die griechischen Zeichen im vorhergehenden Beispiel eingeben? Auf einer deutschen oder englischen Tastatur sind sie jedenfalls nicht zu finden. Des Rätsels Lösung kann folgendermaßen aussehen (wird am Beispiel des Omega-Zeichens (Ω) vorgeführt): 1) Starten Sie das Julia-System (z.B. mittels Doppelklick auf das Julia-Icon oder in der Eingabeaufforderung durch direkte Eingabe von julia.exe (ggf. mit dem entsprechenden Programmpfad). 2) geben Sie <code>\Omega</code> ein (ohne den Befehl mit Return abzuschließen) julia> \Omega 3 Tippen Sie auf die Tabulatortaste und schon erscheint das Ω. 4) Dieses Zeichen können Sie dann mittels Zwischenablage z.B. auch in eine jl.-Datei einfügen (ggf. unter Verwendung eines geeigneten Text-Editors, z.B. Geany oder unter Linux auch Kate) Ähnliches gilt für tiefgestellte Indizes, z.B. <code>a\_2</code> gefolgt von einem Tabulator ergibt a₂. Da Julia case-sensitiv ist, repräsentieren folgende Bezeichner verschiedene Variablen: xyz XYZ xYz Werte werden an Variablen mittels Gleich-Zeichen (=) zugewiesen. Im Folgenden wird der Code unter MS Windows immer in der Datei <code>c:\tmp\test1.jl</code> oder unter Linux z.B. unter <code>~/tmp/test1.jl</code> gespeichert. x = 5 y = 10 z = x*y print(z) Bringen Sie die Datei test1.jl zur Ausführung, so erhalten Sie folgende Bildschirmausgabe 50 Sie können auch mehrere Anweisungen in einer Zeile durch Semikolon getrennt schreiben. x = 5; y = 10; z = x*y print(z) Ausgabe: 50 Auch aus der Programmiersprache C/C++ oder Java bekannte Konstrukte können Sie verwenden, z.B. x = 5; println(x) # x = x - 2 x -= 2 println(x) Bildschirmausgabe: 5 3 Beachten Sie, dass mit dem =-Zeichen eine Wertezuweisung durchgeführt wird. Dies ist nicht äquivalent zum mathematischen =-Zeichen, wie am vorigen Beispiel zu ersehen ist. Die Verwendung von Prä-/Postfix-Operatoren (++, --) wie unter C/C++ oder Java ist in Julia nicht erlaubt, sondern liefert nur eine Fehlermeldung. Soll eine Anweisung auf mehrere Zeilen verteilt werden, z.B. weil sie zu lang ist, so kann dies geschehen, wie nachfolgend dargestellt. x = 5; y = 1000 * x + sin(x/2) print(y) Ausgabe: 5000.598472144104 Beachten Sie, dass die Zeilentrennung nach einem Operator erfolgt! Folgendes würde ein falsches Resultat liefern: x = 5; y = 1000 * x + sin(x/2) print(y) Ausgabe: 5000 Variablen sind nicht an einen bestimmten Datentyp gebunden, folgendes ist mit Julia problemlos möglich: wert = 10 println(wert) wert = 35.5 println(wert) wert = "Hallo" println(wert) wert = pi println(wert) Ausgabe: 10 35.5 Hallo π ==Hexadezimale, oktale und binäre Zahlen== # Hexadezimale Zahl println(0xABC) # Oktale Zahl println(0o56) # Binäre Zahl println( 0b1000011 ) Ausgabe (als Dezimalzahlen): 2748 46 67 Julia kann auch dezimale in binäre Zahlen etc. umwandeln: Eingabe: b = bitstring(30) println(b) Ausgabe: 0000000000000000000000000000000000000000000000000000000000011110 Ein anderes Beispiel (hexadezimal nach binär): # hexadezimal -> binär s = string(0xF, base=2) print(s) Ausgabe: 1111 == Verzweigungen == === if === Die IF-Verzweigung ist aus anderen Programmiersprachen bereits bekannt. In Pseudocode lässt sie sich folgendermaßen darstellen: WENN bedingung TRUE führe block1 aus SONST führe block2 aus ENDE Die test1.jl-Datei laute also wie folgt: x = 5; if x < 4 println("x ist kleiner als 4"); else println("Der else-Zweig wird ausgefuehrt"); println("x ist groesser oder gleich 4"); end Ausgabe: Der else-Zweig wird ausgefuehrt x ist groesser oder gleich 4 Julia kennt eine Reihe von Vergleichs- und Verknüpfungsoperatoren: * <, <= ... kleiner (gleich) * >, >= ... größer (gleich) * == ... gleich * != ... ungleich * &, && ... AND * |, || ... OR Beispielsweise: a = 5; b = 9; if a<=10 & b!=7 println("OK"); else println("Nicht OK"); end Ausgabe: OK Erweiterung der if-else-end-Verzweigung - ein Beispiel mit <code>elseif</code>: a = 5 if a==10 println("OK") elseif a==5 println("Nicht OK") println("a = 5") elseif a==6 println("Auch nicht OK") else println("Weiß nicht") end Ausgabe: Nicht OK a = 5 === Ternärer Operator === Eingabedatei: a = 5 a >= 6 ? println("größer gleich 6") : println("kleiner 6") Ausgabe: kleiner 6 == Schleifen == === while === Die WHILE-Schleife ist kopfgesteuert. Sie funktioniert nicht ganz so wie aus anderen Programmiersprachen bekannt. In Pseudocode: SOLANGE bedingung TRUE führe block aus ENDE In Julia: x = 0 while x <= 10 println(x) global x += 1 end Ausgabe: 0 1 2 3 4 5 6 7 8 9 10 Außerhalb von Funktionen muss das Schlüsselwort <code>global</code> verwendet werden. Ansonsten gibt es eine Warnung und eine Fehlermeldung. Innerhalb einer Funktion benötigt man das <code>global</code> nicht. === for === for x = 0 : 2 : 10 println(x); end Ausgabe: 0 2 4 6 8 10 Der FOR-Schleifenkopf ist in Form einer Zahlenkolonne folgendermaßen aufgebaut: for variable = startwert : schrittweite : endwert Alternativ findet man in der Literatur auch folgende for-Schleifenaufbauten. for x in 0 : 2 : 10 println(x); end for x ∈ 0 : 2 : 10 println(x); end Achtung: Das ∈ ist kein \epsilon, sondern ein \in. Die unterschiedlichen for-Schleifen liefern jeweils das gleiche Ergebnis. === break und continue === Zum Abbrechen einer Schleife gibt es den Befehl "break". for var = 0 : 1 : 100 println(var) if var == 5 break; end end Ausgabe: 0 1 2 3 4 5 "continue" setzt mit dem nächsten Schleifendurchlauf fort, z.B. for var = 0 : 1 : 10 if var == 5 continue; end println(var); end Ausgabe: 0 1 2 3 4 6 7 8 9 10 == Eingabe via Tastatur == Datei c:\tmp\test1.jl: print("Geben Sie eine Zahl ein: ") # Einlesen als String str = readline(stdin) print("Die Zahl lautet ") println(str) # Umwandeln in einen Float zahl = parse(Float64, str) print("Die Zahl lautet ") println(zahl) Eingabe der Zahl via Tastatur: 67.8 Mit der RETURN-Taste bestätigen. Ausgabe: Die Zahl lautet 67.8 Die Zahl lautet 67.8 In diesem Fall wird, wie gezeigt, zweimal <code>Die Zahl lautet 67.8</code> ausgegeben. Gibt man aber z.B. <code>Eins</code> ein, so wird einmal <code>Die Zahl lautet Eins</code> ausgegeben. Das ist klar, da <code>Eins</code> ein gültiger String ist. Danach folgt aber eine Fehlermeldung, weil <code>Eins</code> nicht in eine Fließkommazahl umgewandelt werden kann. = Grafiken zeichnen = Es gibt in Julia mehrere Möglichkeiten Grafiken zu zeichnen. Hier wird eine Einführung in das Package Plots gegeben. == Plots installieren == Im Julia-REPL die schließende eckige Klammer ] eintippen. Damit springt man in das Package-System, angezeigt wird das mit dem Prompt <code>(@v1.9) pkg></code>. Das Plots-Package zum Julia-System hinzufügen: (@v1.9) pkg> add Plots Mit STRG-C kann das Package-System wieder verlassen werden. == 2D == === Graph einer Funktion === Es soll die cosh-Funktion im Intervall <math>x\in[-3,3]</math> gezeichnet werden. Der Programmcode lautet in der einfachsten Form: using Plots x = -3 : .1 : 3 y = cosh.(x) p = plot(x, y) gui() while(true) end Ausgabe: [[Datei:Julia_cosh.jpg]] Der Code ist quasi selbsterklärend. Das Plots-Package wird importiert. x läuft von -3 bis +3. y wird für jeden x-Wert per Formel ausgerechnet. "plot" ist der Zeichenbefehl. "gui" ist notwendig, um das Fenster mit der Grafik anzuzeigen. Es folgt eine Endlossschleife. Diese ist notwendig, weil das Fenster mit der Grafik sonst nur kurz aufblinkt und das Programm danach beendet wird. Das Gesagte gilt, wenn man die test1.jl-Datei direkt ausführt. Im REPL kann man sich den Befehl "gui" und die Endlosschleife sparen. Die Schrittweite 0.1 wurde so gewählt, um einen ausreichend glatten Verlauf des Graphen zu gewährleisten. Das ist immer ein Kompromiss zwischen Berechnungszeit und Ansehnlichkeit. Testen Sie einfach ein paar verschiedene Werte, um ein Gefühl dafür zu zu bekommen. Hinweise: * Bis das Fenster mit dem cosh-Graphen erscheint, kann es einige Sekunden dauern. * Beenden kann man die Endlosschleife, indem man STRG-C drückt (STRG ist die Steuerungs- oder Control-Taste) * Beachten Sie den Punkt (.) bei der cosh-Funktion. Vergessen Sie diesen, so wird eine Fehlermeldung ausgegeben. Ein etwas komplexeres Beispiel ist folgendes using Plots x = -3 : .1: 3 y = cosh.(x) + 2 .^x plot(x,y) gui() while true end Man beachte die Punkte bei der Funktion y. Vergisst man die Punkte, dann erhält man eine Fehlermeldung. Weiters beachte man das Leerzeichen und die Position desselben bei 2 .^x. Setzt man das Leerzeichen an die falsche Stelle oder vergisst es ganz, so ist das auch ein Fehler. Ausgabe: [[Datei:Julia_cosh2.jpg]] === Graphen mehrerer Funktionen und weiteres === Mehrere Graphen lassen sich folgendermaßen in ein Fenster zeichnen (es werden auch Titel und Labels gesetzt): using Plots x = -3 : .1: 3 y1 = cosh.(x) + 2 .^x y2 = sin.(x) .* cos.(x) plot(x, [y1, y2], title="Screenshot", label=["cosh(x) + 2^x" "sin(x) + cos(x)"], xlabel="x", ylabel="y") gui() while true end [[Bild:Julia_cosh14.jpg]] Will man mehrere Graphen in ein Fenster zeichnen, aber nicht alles in einen plot-Befehl quetschen, so kann die "plot!"-Anweisung die Lösung des Problems sein. Auch die Linienstile sollen nun etwas individueller gestaltet werden: using Plots x = -3 : .1: 3 y1 = cosh.(x) + 2 .^x y2 = sin.(x) .* cos.(x) plot(x, y1, linestyle=:dot, label="cosh ...", linewidth=5) plot!(x, y2, ls=:dot, label="sin ...", lw=3) title!("Funktionsgraphen") xlabel!("x") ylabel!("y") gui() while true end [[Datei:Julia_cosh4.jpg]] === Funktion in Parameterdarstellung === Es soll die archimedische Spirale <math>x = t \cos(t), y = t \sin(t)</math> im Intervall <math>[0, 6\pi]</math> gezeichnet werden. using Plots t = 0 : .1: 6*pi x = t .* cos.(t) y = t .* sin.(t) plot(x, y, lw=5) gui() while true end [[Datei:Julia_spirale1.jpg]] Der Graph erscheint in der obigen Darstellung verzerrt. Will man das nicht, so setze man das <code>aspect_ratio</code> auf <code>:equal</code>: using Plots t = 0 : .1: 6*pi x = t .* cos.(t) y = t .* sin.(t) plot(x, y, lw=5, aspect_ratio = :equal) gui() while true end [[Datei:Julia_spirale2.jpg]] === Logarithmische Achsenskalierung === using Plots f(x) = 10^x p1 = plot(f, 1, 5, lw=2, title="kartesische Koordinaten") p2 = plot(f, 1, 5, yscale=:log10, lw=2, title="Semilog") p3 = plot(f, 1, 5, xscale=:log10, yscale=:log10, lw=2, title="LogLog") plot(p1, p2, p3, layout=(3,1)) gui() while true end Ausgabe: [[Datei:Julia_log1.jpg]] === Aufgaben === * Zeichnen Sie die Strophoide <math>x = \frac{a(t^2-1)}{t^2+1}, y = \frac{at(t^2-1)}{t^2+1}, a = 2, -3 \leq t \leq 3</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_strophoide.jpg]] * Zeichnen Sie die verschlungene Hypozykloide <math>x = (R-r)\cos t + c\cos\frac{R-r}{r}t, y = (R-r)\sin t - c\sin\frac{R-r}{r}t, c = 3, r = 2, R = 6, -15 \leq t \leq 15</math>. Das Ganze sollte in etwa so aussehen wie folgende Grafik: [[Datei:octave_hypozykloide.jpg]] * Testen Sie bei den obigen Übungsaufgaben verschiedene Werte für a, c, r und R. == 3D == === Räumliche Kurven === Mittels "plot3d" lassen sich Raumkurven zeichnen. using Plots t = 0 : .1: 6*pi x = t .* cos.(t) y = t .* sin.(t) z = t plot3d(x, y, z) gui() while true end [[Datei:Julia_raumkurve1.jpg]] === Flächen === using Plots x = 0 : .1 : 10; y = 0 : .1 : 10; z(x,y) = sin(x) + 3*cos(y); surface(x,y,z) gui() while true end [[Datei:Julia_flaeche1.jpg]] Das Ganze in Netzdarstellung läßt sich so programmieren: using Plots x = 0 : .5 : 10 y = 0 : .5 : 10 z(x,y) = sin(x) + 3*cos(y) wireframe(x, y, z) gui() while true end [[Datei:Julia_flaeche2.jpg]] Die Kameraposition lässt sich verändern: using Plots x = 0 : .1 : 10 y = 0 : .1 : 10 z(x,y) = sin(x) + 3*cos(y) # Kamerawinkel in Grad (Azimut, Altitude) surface(x,y,z, camera = (75, 60)) gui() while true end [[Datei:Julia_flaeche_3.jpg]] {{Wikipedia | Azimut}} === Höhenlinien === using Plots x = 0 : .1 : 10 y = 0 : .1 : 10 z(x,y) = sin(x) + 3*cos(y) contour(x,y,z) gui() while true end [[Datei:Julia_hoehenlinien.jpg]] Etwas abgewandelt sind das so aus: using Plots x = 0 : .1 : 10 y = 0 : .1 : 10 z(x,y) = sin(x) + 3*cos(y) contour(x, y, z, levels=10, clabels=true, cbar=false) gui() while true end [[Datei:Julia_hoehenlinien2.jpg]] Und noch eine Variante sei gezeigt. using Plots x = 0 : .1 : 10 y = 0 : .1 : 10 z(x,y) = sin(x) + 3*cos(y) contourf(x, y, z) gui() while true end [[Datei:Julia_hoehenlinien3.jpg]] === Aufgaben === * Zeichnen Sie die räumliche Kurve <math>x = 2 \cdot \cosh(t)</math>, <math>y = 5 \cdot \sin(t)</math>, <math> z = t^{2} - t</math>, <math>0 \leq t \leq 3\pi</math>. * Zeichnen Sie die Fläche <math>z = \log(x) + \cos(y)</math>. == Animationen == using Plots anim = Animation() for i = 1:100 plt = plot(sin, 0, i*2pi/10, ylims = (-1., 1.), lab="") frame(anim, plt) end gif(anim, "c:/tmp/Julia_anim1.gif",fps=10) Dieses Programm schreibt ein animiertes {{W|GIF}} in die Datei <code>c:/tmp/Julia_anim1.gif</code>. [[Datei:Julia_anim1.gif]] = Vektoren und Matrizen = == Vektoren == Vektoren sollten jedem aus der Linearen Algebra bekannt sein. === Spalten- und Zeilenvektoren === Starten Sie die Julia-REPL. Geben Sie folgenden Befehl ein, um einen Spaltenvektor zu erstellen: julia> v1 = [1, 2, 3] Ausgabe: 3-element Vector{Int64}: 1 2 3 Geben Sie folgenden Befehl ein, um einen Zeilenvektor (oder genauer eine 1x3-Matrix) zu erstellen: julia> v1 = [1 2 3] Ausgabe: 1×3 Matrix{Int64}: 1 2 3 === Zugriff auf Vektorelemente === Nachfolgend seien Zugriffsmöglichkeiten auf die Vektorelemente erläutert. Auf ein einzelnes Element kann via Index zugegriffen werden. Der Index startet bei 1: v1 = [1, 2, 3] println(v1[2]) Ausgabe: 2 Mehrere Elemente werden folgendermaßen angesprochen: v1 = [1 2 4 8 16] print(v1[3:4]) Ausgabe: [4, 8] Liefere den Teilvektor von einem gegebenen Index bis zum letzten Element: v1 = [1 2 4 8 16] print(v1[3:end]) Ausgabe: [4, 8, 16] === Addition und Subtraktion von Vektoren === v1 = [1, 2, 3] v2 = [5, 7, 9] println(v1 + v2) println(v1 - v2) Ausgabe: [6, 9, 12] [-4, -5, -6] === Multiplikation mit Skalaren === faktor = 3; v = [1, 2, 3]; println(v * faktor) Ausgabe: [3, 6, 9] === Skalarprodukt === Das Skalarprodukt ist bekanntermaßen als <math>v_1 \cdot v_2 = |v_1| |v_2| \cos(\angle(v_1, v_2))</math> definiert. In Julia sieht das so aus: using LinearAlgebra v1 = [1, 2, 3] v2 = [2, 5, 10] println(LinearAlgebra.dot(v1, v2)) Ausgabe: 42 Hinweis: Wenn das LinearAlgebra-Paket noch nicht installiert ist, so muss dies eventuell nachgeholt werden. Wie das prinzipiell funktioniert, wurde im Kapitel "Grafiken zeichnen" am Beispiel des Plots-Pakets vorgeführt. === Vektorprodukt === <math>a\ast b=\left(\begin{array}{c} a_{1}\\ a_{2}\\ a_{3} \end{array}\right)\ast\left(\begin{array}{c} b_{1}\\ b_{2}\\ b_{3} \end{array}\right)=\left(\begin{array}{c} a_{2}b_{3}-a_{3}b_{2}\\ a_{3}b_{1}-a_{1}b_{3}\\ a_{1}b_{2}-a_{2}b_{1} \end{array}\right) </math> Julia-Code: using LinearAlgebra v1 = [1, 2, 3] v2 = [2, 5, 10] println(LinearAlgebra.cross(v1, v2)) Ausgabe: [5, -4, 1] === Transponierter Vektor === using LinearAlgebra v = [1, 2, 3] println(LinearAlgebra.transpose(v)) Ausgabe: [1 2 3] === Einige weitere Vektorfunktionen === Die euklidische Norm <math>\|x\|_2 = \sqrt{x_1^2 + x_2^2 + \ldots + x_n^2}</math> in Julia: using LinearAlgebra v = [1 2 3] println(norm(v)) Ausgabe: 3.7416573867739413 Beispiel: # 1 + 2 + 3 v = [1 2 3] println(sum(v)) Ausgabe: 6 Beispiel: # 1 * 2 * 3 * 4 v = [1 2 3 4] println(prod(v)) Ausgabe: 24 == Matrizen == Starten Sie die Julia-REPL. Geben Sie folgenden Befehl ein, um eine 2x3-Matrix zu erstellen: julia> [1 2 3; 4 5 6] Ausgabe: 2×3 Matrix{Int64}: 1 2 3 4 5 6 Damit verlassen wir die Julia-REPL wieder und arbeiten im Folgenden mit der test1.jl-Datei weiter. === Zugriff auf Matrizenelemente === m = [1 2 3; 4 5 6] # Element aus Zeile 2 und Spalte 3 println(m[2,3]) Ausgabe: 6 Eine andere Zugriffsmöglichkeit ist diese: m = [1 2 3; 4 5 6] # Auf das Element an Position 5 soll zugegriffen werden println(m[5]) Ausgabe: 3 Die Matrix wird also spaltenweise durchlaufen (nicht zeilenweise). Dies ist vielleicht auf den ersten Blick etwas ungewöhnlich, wird aber z.B. auch in Fortran oder Octave so gehandhabt. [[Datei:Julia_matrix1.svg]] === Addition und Subtraktion von Matrizen === m1 = [1 2 3; 4 5 6] m2 = [-4 -2 0; 2 4 6] println(m1 + m2) println(m1 - m2) Ausgabe: [-3 0 3; 6 9 12] [5 4 3; 2 1 0] === Transponierte Matrix === m = [1 2 3; 4 5 6] println(m') Ausgabe: [1 4; 2 5; 3 6] === Rang einer Matrix === using LinearAlgebra m1 = [1 2 3; 4 5 6] m2 = [1 2 3; 2 4 6] println(LinearAlgebra.rank(m1)) println(LinearAlgebra.rank(m2)) Ausgabe: 2 1 === Inverse Matrix === using LinearAlgebra m = [1 3; 0 -5 ] println(LinearAlgebra.inv(m)) Ausgabe: [1.0 0.6000000000000001; 0.0 -0.2] === Determinate einer Matrix === using LinearAlgebra m1 = [1 3; 0 -5 ] m2 = [1 2; 2 4] println(LinearAlgebra.det(m1)) println(LinearAlgebra.det(m2)) Ausgabe: -5.0 0.0 m1 ist regulär, m2 ist singulär. Determinanten können nur von quadratischen Matrizen gebildet werden. === Multiplikation von Matrizen (falksches Schema) === m1 = [1 3 4; 0 -5 1] m2 = [1 2; 2 3; 0 2] println(m1 * m2) Ausgabe: [7 19; -10 -13] === Teilmatrizen === m = [1 2 3; 0 5 1] # Die Matrix in einen Spaltenvektor umwandeln println(m[:]) # Das Element aus der 1. Zeile und der 2. Spalte extrahieren println(m[1,2]) # Erste Zeile extrahieren println(m[1, 1:3]) println(m[1, :]) # Zweite Spalte extrahieren println(m[1:2, 2]) println(m[:, 2]) Ausgabe: [1, 0, 2, 5, 3, 1] 2 [1, 2, 3] [1, 2, 3] [2, 5] [2, 5] === Eigenwerte und Eigenvektoren === using LinearAlgebra A = [5 8; 1 3] # Eigenvektoren und Eigenwerte println(eigvals(A)) println(eigvecs(A)) Ausgabe: [1.0, 7.0] [-0.8944271909999159 0.9701425001453319; 0.447213595499958 0.24253562503633297] === LR-Zerlegung einer Matrix === Führen Sie die LR-Faktorisierung (LR ... links/rechts bzw. LU ... left/upper) einer Matrix m aus. Dazu springen wir wieder in die REPL und geben folgende Befehle ein: julia> using LinearAlgebra julia> m=[1 0 5; -1 1 -2; 0 0 3] 3×3 Matrix{Int64}: 1 0 5 -1 1 -2 0 0 3 julia> f = factorize(m) LU{Float64, Matrix{Float64}, Vector{Int64}} L factor: 3×3 Matrix{Float64}: 1.0 0.0 0.0 -1.0 1.0 0.0 0.0 0.0 1.0 U factor: 3×3 Matrix{Float64}: 1.0 0.0 5.0 0.0 1.0 3.0 0.0 0.0 3.0 === Schwach besetzte Matrizen === In der Technik treten häufig große Matrizen auf, die aber nur relativ wenige von Null verschiedene Werte mit Bandstruktur besitzen. Für diese ist es ineffizient, alle Matrizenelemente zu speichern. Effizienter ist es, nur die von Null verschiedenen Elemente zu speichern. Zu diesem Zwecke gibt es das <code>SparseArrays</code>-Paket. julia> using SparseArrays julia> ms = sparse([1, 2, 3, 3, 4, 5, 5], [2, 4, 1, 4, 3, 4, 5], [1, 3, 4, 2, 1, 1, 7]) Ausgabe: ⋅ 1 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 3 ⋅ 4 ⋅ ⋅ 2 ⋅ ⋅ ⋅ 1 ⋅ ⋅ ⋅ ⋅ ⋅ 1 7 === Spezielle Matrizen === Nachfolgend sollen eine Nullmatrix und eine Matrix mit lauter Einsen generiert werden. Dazu starten wir wieder die Julia-REPL, geben die entsprechenden Befehle ein und erhalten: julia> zeros(3,2) 3×2 Matrix{Float64}: 0.0 0.0 0.0 0.0 0.0 0.0 julia> ones(3,2) 3×2 Matrix{Float64}: 1.0 1.0 1.0 1.0 1.0 1.0 Insbesondere für Testzwecke kann es manchmal sinnvoll sein größere Matrizen mit Zufallswerten zu bilden. Dazu stellt Julia den rand-Befehl zur Verfügung. julia> m = rand(5,6) 5×6 Matrix{Float64}: 0.554722 0.7314 0.571432 0.804651 0.192327 0.912537 0.684459 0.748819 0.642302 0.552636 0.671043 0.250012 0.624424 0.722093 0.125511 0.342248 0.398071 0.820795 0.0894763 0.0514967 0.310389 0.96167 0.382739 0.0181225 0.957162 0.365172 0.50859 0.0742012 0.555778 0.512406 Einheitsmatrizen: Man beachte das <code>I</code> nach der Zahl 1. Die Matrix muss quadratisch sein. julia> using LinearAlgebra julia> M = 1I + zeros(4,4) 4×4 Matrix{Float64}: 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 Alternativ: julia> using LinearAlgebra julia> M = 1I(4) 4×4 Diagonal{Int64, Vector{Int64}}: 1 ⋅ ⋅ ⋅ ⋅ 1 ⋅ ⋅ ⋅ ⋅ 1 ⋅ ⋅ ⋅ ⋅ 1 Diagonalmatrizen, z.B.: julia> using LinearAlgebra julia> M = 3I + zeros(4,4) 4×4 Matrix{Float64}: 3.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0 3.0 Und damit verlassen wir die REPL wieder. = Komplexe Zahlen = Die imaginäre Einheit wird in Julia durch die Buchstabenkombination <code>im</code> symbolisiert. Darstellen kann man eine komplexe Zahl bekannterweise in mehreren Formen: * Kartesische Darstellung <math>z = \Re(z) + i \cdot \Im(z)</math> * Polardarstellungen <math>z = r \cdot (\cos(\phi) + i \cdot \sin(\phi)) = r \cdot e^{i\cdot \phi}</math> Die konjugiert komplexe Zahl ist <math>z^* = \Re(z) - i \cdot \Im(z)</math> == Mit komplexen Zahlen rechnen == z1 = 2 + 5im # kartesische Darstellung z2 = 3 * exp(3im) # Polardarstellung # Addition res = z1 + z2 println("z1 + z2 = ", res) # Multiplikation res = z1 * z2 println("z1 * z2 = ", res) # Realteil res = real(z2) println("Realteil von z2 = ", res) # Imaginärteil res = imag(z2) println("Imaginaerteil von z2 = ", res) # Betrag res = abs(z1) println("Betrag von z1 = ", res) # Argument res = angle(z1) println("Argument von z1 = ", res) # Konjugiert komplexe Zahl res = conj(z1) println("Konjugiert komplexe Zahl von z1 = ", res) Ausgabe: z1 + z2 = -0.9699774898013365 + 5.423360024179601im z1 * z2 = -8.05675510050068 - 14.003167400647481im Realteil von z2 = -2.9699774898013365 Imaginaerteil von z2 = 0.4233600241796016 Betrag von z1 = 5.385164807134504 Argument von z1 = 1.1902899496825317 Konjugiert komplexe Zahl von z1 = 2 - 5im = Funktionen = Um Programme zu strukturieren und einfacher zu gestalten können Programmteile in Funktionen ausgelagert werden. Eingebaute Funktionen haben wir schon kennengelernt (z.B. die Sinus-Funktion sin). Nun wollen wir sehen, wie man selbst solche Funktionen schreiben kann. == Eine einfache Funktion schreiben == f(a, b) = a + b println(f(2, 3)) Ausgabe: 5 == function == Datei <code>c:\tmp\func.jl</code>: function add(a,b) println(a + b) end Datei <code>c:\tmp\test1.jl</code>: include("func.jl") add(5, 11) Folgendes wird ausgegeben, wenn wir die test1.jl-Datei ausführen 16 == Anonyme Funktionen == println(map(a -> 5a + 10, [2, 3])) Ausgabe: [20, 25] == return == Datei <code>c:\tmp\func.jl</code>: function add(a,b) return a + b end Datei <code>c:\tmp\test1.jl</code>: include("func.jl") println(add(5, 11)) Folgendes wird ausgegeben, wenn wir die test1.jl-Datei ausführen 16 Auch die Rückgabe mehrerer Werte ist möglich. Datei <code>c:\tmp\func.jl</code>: function add(a, b) return a + b, "Addition" end Datei <code>c:\tmp\test1.jl</code>: include("func.jl") x, y = add(10, 20) println(x) println(y) Ausgabe: 30 Addition == Optionale Argumente == Datei <code>c:\tmp\func.jl</code>: function add(a, b = 100) return a + b end Datei <code>c:\tmp\test1.jl</code>: include("func.jl") println(add(5, 11)) println(add(5)) Folgendes wird ausgegeben, wenn wir die test1.jl-Datei ausführen 16 105 == Schlüsselwort-Argumente == Datei <code>c:\tmp\func.jl</code>: function add(a; b = 100) return a + b end Man beachte, dass hier zwischen den Argumenten a und b kein Beistrich, sondern ein Semikolon steht. Datei <code>c:\tmp\test1.jl</code>: include("func.jl") println(add(b=16, 5)) println(add(5, b=16)) println(add(5)) Ausgabe: 21 21 105 = Polynome = Sofern noch nicht geschehen, fügen Sie das Paket <code>Polynomials</code> zum Julia-System hinzu. == Ein erstes einfaches Beispiel == using Polynomials println(Polynomial([1, 0, 5, 7])) Ausgabe: 1 + 5*x^2 + 7*x^3 == Einzelne Polynomwerte berechnen == using Polynomials p = Polynomial([1, 0, 5, 7]); println(p(1.5)) Ausgabe: 35.875 == Polynome integrieren und differenzieren == using Polynomials p = Polynomial([1, 0, 5, 7]); i = integrate(p) d = derivative(p) println(i) println(d) Ausgabe: 1.0*x + 1.66667*x^3 + 1.75*x^4 10*x + 21*x^2 == Nullstellen bestimmen == using Polynomials p = Polynomial([4, 0, 5, 2]); r = roots(p) println(r) Ausgabe: ComplexF64[-2.7621427020576714 + 0.0im, 0.13107135102883646 - 0.8407709868482356im, 0.13107135102883646 + 0.8407709868482356im] == Aufgaben == * Berechnen Sie den Wert für x = 3 des Polynoms <math>y = 2x^4 - 3x^3 - x + 7</math>. * Differenzieren und integrieren Sie das Polynom <math>y = 2x^4 - 3x^3 - x + 7</math>. * Berechnen Sie die Nullstellen von <math>y = 7x^5 - 3x^2 + 12</math>. = Lineare Gleichungssysteme = Sei <math>Ax = b</math> ein lineares Gleichungssystem. <math>A</math> sei die Koeffizientenmatrix, <math>x</math> der Lösungsvektor und <math>b</math> ein bekannter Vektor. Beispiel: A = [5 1; 0 2] b = [1, 2] x = A \ b println(x) Ausgabe: [0.0, 1.0] = Interpolation = Als erstes muss das Interpolations-Paket installiert werden. Wenn Sie nicht wissen, wie man das macht, so sehen Sie unter dem Abschnitt "Grafiken zeichnen" den Absatz "Plots installieren". Dort wird die Vorgehensweise detailliert beschrieben. Datei "c:\tmp\test1.jl": using Interpolations using Plots # Stützpunkte xp = 1 : 1 : 5 yp = [0; -5; 2; 7; 6] # Interpolationsfunktionen lspl = LinearInterpolation(xp, yp, extrapolation_bc = Line()) cspl = CubicSplineInterpolation(xp, yp, extrapolation_bc = Line()) # Stützpunkte zeichnen plot(xp,yp,marker=4,linetype=:scatter, label = "Data", title = "Interpolation") # Interpolierende zeichnen x = 1 : .1 : 5 plot!(x, lspl(x), label="Linearer Spline") plot!(x, cspl(x), label="Kubischer Spline") gui() while true end Ausgabe: [[Datei:Julia_interpol1.jpg]] = Differenzialrechnung = == Symbolische Differenziation == julia> using Calculus julia> differentiate("sin(x)", :x) Ausgabe: :(1 * cos(x)) Auswertung: julia> x = pi/2; julia> round(eval(differentiate("sin(x)", :x))) Ausgabe: 0.0 == Numerische Differenziation == julia> using Calculus julia> derivative("sin", pi/2) Ausgabe: 0.0 = Integralrechnung = julia> using QuadGK julia> integral, err = quadgk(x -> sin(x), 0, pi/2, rtol=1e-8) Ausgabe: (0.9999999999999999, 1.1102230246251565e-16) Im Rahmen der Näherung ist das Resultat richtig (exakt sollte (1.0, 0.0) rauskommen). = Gewöhnliche Differenzialgleichungen = Das Paket <code>DifferentialEquations</code> ist, wie so viele andere, umfangreich. Hier sei nur ein einfaches Beispiel dargestellt. Für weiterführende Studien sei auf die entsprechenden Weblinks verwiesen. Folgende Differentialgleichung sei gegeben: <math>y' = x^2 + y^3</math>. using DifferentialEquations using Plots f(y, p, x) = x^2 + y^3 problem = ODEProblem(f, 0.0, (0.0, 1.0)) s = solve(problem, Tsit5(), reltol = 1e-8, abstol = 1e-8) plot(s, title = "ODE") gui() while true end Ausgabe: [[Datei:Julia_dgl1.jpg]] = Ein- und Ausgabe = == Dateien lesen == # Textdatei im aktuellen Verzeichnis öffnen f = open("test1.jl") # Lesen aus Datei lines = readlines(f) # Zeilenweise Ausgabe am Bildschirm for l in lines println("$l") end # Datei schließen close(f) Als Ausgabe erscheint exakt obiger Source-Code im Terminal. == Dateien schreiben == open("test.txt", "w") do f write(f, "Schreibe eine Zeile in Textdatei\n") end Der Inhalt der Datei "test.txt" ist dann: Schreibe eine Zeile in Textdatei = Benutzeroberflächen erstellen = Hier wird nur eine (sehr) kurze Einführung in das Thema GUI mit Gtk (Gimp toolkit, [https://www.gtk.org/]) gegeben. Nähere Details siehe die Gtk.jl-Dokumentation ([https://juliagraphics.github.io/Gtk.jl/latest/]). Nachfolgend wird ein gegenüber der offiziellen Dokumentation abgewandeltes Beispiel gezeigt. Das ist nötig, um Gtk.jl unter Windows 10 zum Laufen (bzw. um ein Fenster angezeigt) zu bekommen. Das Problem scheint schon seit Langem bekannt zu sein, siehe [https://stackoverflow.com/questions/52589873/gtk-jl-julia-bindings-for-gtk-gtk-window-is-not-displayed-outside-the-repl Gtk.jl, Julia Bindings for Gtk: Gtk Window is not displayed outside the REPL]. using Gtk win = GtkWindow("Hallo Welt", 400, 200) b = GtkButton("Push the button") push!(win,b) c = Condition() endit(w) = notify(c) signal_connect(endit, win, :destroy) showall(win) wait(c) Ausgabe: [[Datei:Julia_gtk1.jpg]] Ein etwas komplizierteres (aber zugegebenerweise noch nicht sehr schönes) Beispiel sei nachfolgend gezeigt. Es sollen zwei Strings miteinander verknüpft und ausgegeben werden. using Gtk win = GtkWindow("Stringverknüpfung") hbox = GtkBox(:h) push!(win, hbox) e1 = GtkEntry() l1 = GtkLabel("verknüpfe mit") e2 = GtkEntry() b = GtkButton("=") l2 = GtkLabel(" ") push!(hbox, e1) push!(hbox, l1) push!(hbox, e2) push!(hbox, b) push!(hbox, l2) function on_button_clicked(b) GAccessor.text(l2, get_gtk_property(e1, :text, String) * get_gtk_property(e2, :text, String)) end signal_connect(on_button_clicked, b, "clicked") c = Condition() endit(w) = notify(c) signal_connect(endit, win, :destroy) showall(win) wait(c) Ausgabe (vor der Eingabe der Teilstrings): [[Datei:Julia_gtk2.jpg]] Ausgabe (nach der Eingabe der Teilstrings und dem Drücken des =-Buttons): [[Datei:Julia_gtk3.jpg]] = Ausblick = Dies war eine kurze Einführung in die Berechnungs- und Darstellungsmöglichkeiten mit Julia. Es sollten etliche relevante Themen behandelt, oder zumindest kurz angesprochen worden sein. Wem dieser Text nicht ausreichend ist, der sei auf die entsprechenden weiterführenden Weblinks und die Julia-Hilfefunktion verwiesen. Julia kennt noch viel mehr Befehle, als hier dargestellt wurden. Das Themenspektrum ist auch durch die Einbindung externer Pakete fast beliebig erweiterbar. = Weblinks = * [https://julialang.org/ Julia Homepage] * [https://docs.julialang.org/en/v1/ Julia Dokumentation] * [https://en.wikibooks.org/wiki/Introducing_Julia Englisches Wikibook zu Julia] * [https://docs.makie.org/stable/ Makie - a data visualization ecosystem for Julia] * [https://docs.juliaplots.org/latest/ Plots - powerful convenience for visualization in Julia] * [https://www.matecdev.com/posts/julia-numerical-computing.html Numerical Computing in Julia] * [https://www.matecdev.com/posts/julia-tutorial-science-engineering.html Julia Programming Tutorial] * [https://juliapackages.com/p/polynomials Polynomials.jl] * [https://github.com/JuliaMath/Calculus.jl Calculus.jl] * [https://github.com/JuliaMath/QuadGK.jl QuadGK.jl] * [https://docs.sciml.ai/DiffEqDocs/stable/ DifferentialEquations.jl: Efficient Differential Equation Solving in Julia] * [https://nextjournal.com/sosiris-de/ode-diffeq# Solving ODEs in Julia] * [https://juliagraphics.github.io/Gtk.jl/latest/ Gtk.jl] {{Navigation_zurückhochvor_buch| zurücktext=Octave| zurücklink=Ing Mathematik: Numerische Mathematiksysteme am Beispiel von Octave| hochtext=Gesamtinhaltsverzeichnis| hochlink=Ing:_Mathematik_für_Ingenieure| vortext=Python für Ingenieure| vorlink=Ing Mathematik: Python}} 2kbdza5b7hpj126lzjvyhs73z89qn2b CPRT 0 119061 1091109 1091049 2026-09-19T15:44:56Z Pelikam 111447 /* Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,V) */ 1091109 wikitext text/x-wiki [[PCRT|< Reversible Thermodynamik für die Zusammenarbeit von Mathematik-, Physik-, Chemie-, Ingenieur-Wissenschaften - PCRT]] == 0. Ein Wort an evtl. Co-Autor:innen: == Teil I ist gerade in der Entstehung. Er hat ein bestimmtes Konzept. Dieses Konzept hat sich das Autorenkollektiv Pelikam ausgedacht. Teil A richtet sich an Physiker:innen ist also Mathematik-belastet und erklärt die Reversible Thermodynamik. Teil I ist so gedacht, daß es jeder/jede verstehen kann. Bitte lasst Teil I erstmal soweit wachsen, bis das Konzept fertig ist. Das Konzept ist ab jetzt (07-2026) in ca. 6 Monaten (12-2026) fertig, bzw. Teil I ist nach den Vorstellungen von Autorenkollektiv Pelikam dann zu 80% fertig. SOLANGE BITTE NICHTS REINSCHREIBEN. ANREGUNGEN, GEWÜNSCHTE TEXTBAUSTEINE, FEHLER , GEWÜNSCHTE MITARBEIT, EIGENE ZIELSETZUNGEN etc. BITTE IN DISKUSSION (s.o.) EINTRAGEN. Teil I beruht im wesentlichen auf Formeln, die erklärt werden und anhand im Teil I befindlichen Übungen mit am Ende von Teil I aufgeführten Lösungen. Da es sich bei der Zielgruppe um Physiker:innen handelt, ist Teil I mehr formelbehaftet als das ähnliche Buch Physikalische Chemie: Reversible Thermodynamik DANKE Autorenkollektiv Pelikam (Teil I sticht ca. Ende 2026 in den See, dann können alle Autor:innen, die dazu etwas beitragen möchten hineinschreiben. Auch dann wäre Pelikam dankbar, wenn der Geist von Teil I, das Didaktikkonzept erst aufgenommen wird und dann die eigenen Beiträge hinzugefügt werden. Sollte eigentlich bei Physiker:innen kein Problem sein. Stand: 07-2026 = Formelsammlung - CPRT = = Inhaltsverzeichnis = *[[CPRT/I/b4c9|Einleitung zur 1. Auflage - CPRT/I/b4c9]] = Teil A: Funktionen des Zustands und deren Differentiale in verschiedenen Koordinatensystemen = *[[CPRT/cf51|01 Zustandsfunktionen und ihre Differentiale in ihren (eigenen) natürlichen Variablen - CPRT/cf51]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,V) == *{{Stage short|100%}}[[CPRT/cef7| Energie E - CPRT/cef7]] *{{Stage short|100%}}[[CPRT/51da| Energie F - CPRT/51da]] *{{Stage short|100%}}[[CPRT/6971| Energie G - CPRT/6971]] *{{Stage short|100%}}[[CPRT/9cdc| Energie H - CPRT/9cdc]] *{{Stage short|100%}}[[CPRT/b380| Energie I - CPRT/b380]] *{{Stage short|000%}}[[CPRT/8dfb| Energie J - CPRT/8dfb]] *[[CPRT/e08d| Energie K - CPRT/e08d]] *[[CPRT/4576| Energie L - CPRT/4576]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,V) == *[[CPRT.I.A.04|03 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,V) - CPRT.I.A.04]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,p) == *[[CPRT.I.A.05|04 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,p) - CPRT.I.A.05]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,p) == *[[CPRT.I.A.06|05 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,p) - CPRT.I.A.06]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,S,V) == *[[CPRT.I.A.07|06 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,S,V) - CPRT.I.A.07]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,t,V) == *[[CPRT.I.A.08|07 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,t,S) - CPRT.I.A.08]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,t,p) == *[[CPRT.I.A.09|08 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,t,p) - CPRT.I.A.09]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,S,p) == *[[CPRT.I.A.10|09 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,S,p) - CPRT.I.A.10]] = Teil B: = *[[CPRT.I.B|Teil B: Erhaltungssätze und Bilanzgleichungen]] *[[CPRT.I.7a82|Teil B: Erhaltungssätze und Bilanzgleichungen]] *[[CPRT.I.C|Teil C: Entropie, Funktionen des Zustands und Änderungen des Zustands des idealen Gases]] *[[CPRT.I.67de|Teil C: Entropie, Funktionen des Zustands und Änderungen des Zustands des idealen Gases]] *[[CPRT.I.D|Teil D: Kreisprozesse mit einem idealen Gas]] *[[CPRT.I.5521|Teil D: Kreisprozesse mit einem idealen Gas]] *[[CPRT.I.E|Anhang A1: Mathematische Grundlagen]] *[[CPRT.I.677a|Anhang A1: Mathematische Grundlagen]] *[[CPRT.I.F|Anhang A2: Formelsammlung Kreisprozesse]] *[[CPRT.I.29d5|Anhang A2: Formelsammlung Kreisprozesse]] *[[CPRT.I.G|Anhang A3: Lösung der Übungsaufgaben]] *[[CPRT.I.552d|Anhang A3: Lösung der Übungsaufgaben]] *[[CPRT.I.99|Literatur]] *[[CPRT.I.619e|Literatur]] == Freie Unterverzeichnisse == *[[PCRT/I/d88f| - PCRT/I/d88f]] *[[PCRT/I/aa9d| - PCRT/I/aa9d]] *[[PCRT/I/d3ee| - PCRT/I/d3ee]] *[[PCRT/I/ea1b| - PCRT/I/ea1b]] *[[PCRT/I/a36e| - PCRT/I/a36e]] * [[Chemische Physik --- Reversible Thermodynamik]] * [[Chemische Physik --- Reversible Thermodynamik]] * [[Physikalische Chemie --- Reversible Thermodynamik]] *[[PCRT/I/bc9d| - PCRT/I/bc9d]] *[[PCRT/I/a8bd| - PCRT/I/a8bd]] *[[PCRT/I/d88f| - PCRT/I/d88f]] *[[PCRT/I/aa9d| - PCRT/I/aa9d]] *[[CPRT/185f|02 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,V) - CPRT/185f]] 1vsbhekeunpyobdiblnyib7bcz4k0t6 1091110 1091109 2026-09-19T15:47:23Z Pelikam 111447 /* Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,V) */ 1091110 wikitext text/x-wiki [[PCRT|< Reversible Thermodynamik für die Zusammenarbeit von Mathematik-, Physik-, Chemie-, Ingenieur-Wissenschaften - PCRT]] == 0. Ein Wort an evtl. Co-Autor:innen: == Teil I ist gerade in der Entstehung. Er hat ein bestimmtes Konzept. Dieses Konzept hat sich das Autorenkollektiv Pelikam ausgedacht. Teil A richtet sich an Physiker:innen ist also Mathematik-belastet und erklärt die Reversible Thermodynamik. Teil I ist so gedacht, daß es jeder/jede verstehen kann. Bitte lasst Teil I erstmal soweit wachsen, bis das Konzept fertig ist. Das Konzept ist ab jetzt (07-2026) in ca. 6 Monaten (12-2026) fertig, bzw. Teil I ist nach den Vorstellungen von Autorenkollektiv Pelikam dann zu 80% fertig. SOLANGE BITTE NICHTS REINSCHREIBEN. ANREGUNGEN, GEWÜNSCHTE TEXTBAUSTEINE, FEHLER , GEWÜNSCHTE MITARBEIT, EIGENE ZIELSETZUNGEN etc. BITTE IN DISKUSSION (s.o.) EINTRAGEN. Teil I beruht im wesentlichen auf Formeln, die erklärt werden und anhand im Teil I befindlichen Übungen mit am Ende von Teil I aufgeführten Lösungen. Da es sich bei der Zielgruppe um Physiker:innen handelt, ist Teil I mehr formelbehaftet als das ähnliche Buch Physikalische Chemie: Reversible Thermodynamik DANKE Autorenkollektiv Pelikam (Teil I sticht ca. Ende 2026 in den See, dann können alle Autor:innen, die dazu etwas beitragen möchten hineinschreiben. Auch dann wäre Pelikam dankbar, wenn der Geist von Teil I, das Didaktikkonzept erst aufgenommen wird und dann die eigenen Beiträge hinzugefügt werden. Sollte eigentlich bei Physiker:innen kein Problem sein. Stand: 07-2026 = Formelsammlung - CPRT = = Inhaltsverzeichnis = *[[CPRT/I/b4c9|Einleitung zur 1. Auflage - CPRT/I/b4c9]] = Teil A: Funktionen des Zustands und deren Differentiale in verschiedenen Koordinatensystemen = *[[CPRT/cf51|01 Zustandsfunktionen und ihre Differentiale in ihren (eigenen) natürlichen Variablen - CPRT/cf51]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,V) == *{{Stage short|100%}}[[CPRT/cef7| Energie E - CPRT/cef7]] *{{Stage short|100%}}[[CPRT/51da| Energie F - CPRT/51da]] *{{Stage short|100%}}[[CPRT/6971| Energie G - CPRT/6971]] *{{Stage short|100%}}[[CPRT/9cdc| Energie H - CPRT/9cdc]] *{{Stage short|100%}}[[CPRT/b380| Energie I - CPRT/b380]] *{{Stage short|25%}}[[CPRT/8dfb| Energie J - CPRT/8dfb]] *{{Stage short|25%}}[[CPRT/e08d| Energie K - CPRT/e08d]] *{{Stage short|25%}}[[CPRT/4576| Energie L - CPRT/4576]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,V) == *[[CPRT.I.A.04|03 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,V) - CPRT.I.A.04]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,p) == *[[CPRT.I.A.05|04 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,p) - CPRT.I.A.05]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,p) == *[[CPRT.I.A.06|05 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,p) - CPRT.I.A.06]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,S,V) == *[[CPRT.I.A.07|06 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,S,V) - CPRT.I.A.07]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,t,V) == *[[CPRT.I.A.08|07 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,t,S) - CPRT.I.A.08]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,t,p) == *[[CPRT.I.A.09|08 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,t,p) - CPRT.I.A.09]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,S,p) == *[[CPRT.I.A.10|09 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,S,p) - CPRT.I.A.10]] = Teil B: = *[[CPRT.I.B|Teil B: Erhaltungssätze und Bilanzgleichungen]] *[[CPRT.I.7a82|Teil B: Erhaltungssätze und Bilanzgleichungen]] *[[CPRT.I.C|Teil C: Entropie, Funktionen des Zustands und Änderungen des Zustands des idealen Gases]] *[[CPRT.I.67de|Teil C: Entropie, Funktionen des Zustands und Änderungen des Zustands des idealen Gases]] *[[CPRT.I.D|Teil D: Kreisprozesse mit einem idealen Gas]] *[[CPRT.I.5521|Teil D: Kreisprozesse mit einem idealen Gas]] *[[CPRT.I.E|Anhang A1: Mathematische Grundlagen]] *[[CPRT.I.677a|Anhang A1: Mathematische Grundlagen]] *[[CPRT.I.F|Anhang A2: Formelsammlung Kreisprozesse]] *[[CPRT.I.29d5|Anhang A2: Formelsammlung Kreisprozesse]] *[[CPRT.I.G|Anhang A3: Lösung der Übungsaufgaben]] *[[CPRT.I.552d|Anhang A3: Lösung der Übungsaufgaben]] *[[CPRT.I.99|Literatur]] *[[CPRT.I.619e|Literatur]] == Freie Unterverzeichnisse == *[[PCRT/I/d88f| - PCRT/I/d88f]] *[[PCRT/I/aa9d| - PCRT/I/aa9d]] *[[PCRT/I/d3ee| - PCRT/I/d3ee]] *[[PCRT/I/ea1b| - PCRT/I/ea1b]] *[[PCRT/I/a36e| - PCRT/I/a36e]] * [[Chemische Physik --- Reversible Thermodynamik]] * [[Chemische Physik --- Reversible Thermodynamik]] * [[Physikalische Chemie --- Reversible Thermodynamik]] *[[PCRT/I/bc9d| - PCRT/I/bc9d]] *[[PCRT/I/a8bd| - PCRT/I/a8bd]] *[[PCRT/I/d88f| - PCRT/I/d88f]] *[[PCRT/I/aa9d| - PCRT/I/aa9d]] *[[CPRT/185f|02 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,V) - CPRT/185f]] gcppgsr594j3f21tx6voe33ea9d6esu 1091111 1091110 2026-09-19T15:48:02Z Pelikam 111447 /* Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,V) */ 1091111 wikitext text/x-wiki [[PCRT|< Reversible Thermodynamik für die Zusammenarbeit von Mathematik-, Physik-, Chemie-, Ingenieur-Wissenschaften - PCRT]] == 0. Ein Wort an evtl. Co-Autor:innen: == Teil I ist gerade in der Entstehung. Er hat ein bestimmtes Konzept. Dieses Konzept hat sich das Autorenkollektiv Pelikam ausgedacht. Teil A richtet sich an Physiker:innen ist also Mathematik-belastet und erklärt die Reversible Thermodynamik. Teil I ist so gedacht, daß es jeder/jede verstehen kann. Bitte lasst Teil I erstmal soweit wachsen, bis das Konzept fertig ist. Das Konzept ist ab jetzt (07-2026) in ca. 6 Monaten (12-2026) fertig, bzw. Teil I ist nach den Vorstellungen von Autorenkollektiv Pelikam dann zu 80% fertig. SOLANGE BITTE NICHTS REINSCHREIBEN. ANREGUNGEN, GEWÜNSCHTE TEXTBAUSTEINE, FEHLER , GEWÜNSCHTE MITARBEIT, EIGENE ZIELSETZUNGEN etc. BITTE IN DISKUSSION (s.o.) EINTRAGEN. Teil I beruht im wesentlichen auf Formeln, die erklärt werden und anhand im Teil I befindlichen Übungen mit am Ende von Teil I aufgeführten Lösungen. Da es sich bei der Zielgruppe um Physiker:innen handelt, ist Teil I mehr formelbehaftet als das ähnliche Buch Physikalische Chemie: Reversible Thermodynamik DANKE Autorenkollektiv Pelikam (Teil I sticht ca. Ende 2026 in den See, dann können alle Autor:innen, die dazu etwas beitragen möchten hineinschreiben. Auch dann wäre Pelikam dankbar, wenn der Geist von Teil I, das Didaktikkonzept erst aufgenommen wird und dann die eigenen Beiträge hinzugefügt werden. Sollte eigentlich bei Physiker:innen kein Problem sein. Stand: 07-2026 = Formelsammlung - CPRT = = Inhaltsverzeichnis = *[[CPRT/I/b4c9|Einleitung zur 1. Auflage - CPRT/I/b4c9]] = Teil A: Funktionen des Zustands und deren Differentiale in verschiedenen Koordinatensystemen = *[[CPRT/cf51|01 Zustandsfunktionen und ihre Differentiale in ihren (eigenen) natürlichen Variablen - CPRT/cf51]] {{Stage short|50%}} == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,V) == *{{Stage short|100%}}[[CPRT/cef7| Energie E - CPRT/cef7]] *{{Stage short|100%}}[[CPRT/51da| Energie F - CPRT/51da]] *{{Stage short|100%}}[[CPRT/6971| Energie G - CPRT/6971]] *{{Stage short|100%}}[[CPRT/9cdc| Energie H - CPRT/9cdc]] *{{Stage short|100%}}[[CPRT/b380| Energie I - CPRT/b380]] *{{Stage short|25%}}[[CPRT/8dfb| Energie J - CPRT/8dfb]] *{{Stage short|25%}}[[CPRT/e08d| Energie K - CPRT/e08d]] *{{Stage short|25%}}[[CPRT/4576| Energie L - CPRT/4576]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,V) == *[[CPRT.I.A.04|03 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,V) - CPRT.I.A.04]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,p) == *[[CPRT.I.A.05|04 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,p) - CPRT.I.A.05]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,p) == *[[CPRT.I.A.06|05 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,p) - CPRT.I.A.06]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,S,V) == *[[CPRT.I.A.07|06 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,S,V) - CPRT.I.A.07]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,t,V) == *[[CPRT.I.A.08|07 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,t,S) - CPRT.I.A.08]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,t,p) == *[[CPRT.I.A.09|08 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,t,p) - CPRT.I.A.09]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,S,p) == *[[CPRT.I.A.10|09 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,S,p) - CPRT.I.A.10]] = Teil B: = *[[CPRT.I.B|Teil B: Erhaltungssätze und Bilanzgleichungen]] *[[CPRT.I.7a82|Teil B: Erhaltungssätze und Bilanzgleichungen]] *[[CPRT.I.C|Teil C: Entropie, Funktionen des Zustands und Änderungen des Zustands des idealen Gases]] *[[CPRT.I.67de|Teil C: Entropie, Funktionen des Zustands und Änderungen des Zustands des idealen Gases]] *[[CPRT.I.D|Teil D: Kreisprozesse mit einem idealen Gas]] *[[CPRT.I.5521|Teil D: Kreisprozesse mit einem idealen Gas]] *[[CPRT.I.E|Anhang A1: Mathematische Grundlagen]] *[[CPRT.I.677a|Anhang A1: Mathematische Grundlagen]] *[[CPRT.I.F|Anhang A2: Formelsammlung Kreisprozesse]] *[[CPRT.I.29d5|Anhang A2: Formelsammlung Kreisprozesse]] *[[CPRT.I.G|Anhang A3: Lösung der Übungsaufgaben]] *[[CPRT.I.552d|Anhang A3: Lösung der Übungsaufgaben]] *[[CPRT.I.99|Literatur]] *[[CPRT.I.619e|Literatur]] == Freie Unterverzeichnisse == *[[PCRT/I/d88f| - PCRT/I/d88f]] *[[PCRT/I/aa9d| - PCRT/I/aa9d]] *[[PCRT/I/d3ee| - PCRT/I/d3ee]] *[[PCRT/I/ea1b| - PCRT/I/ea1b]] *[[PCRT/I/a36e| - PCRT/I/a36e]] * [[Chemische Physik --- Reversible Thermodynamik]] * [[Chemische Physik --- Reversible Thermodynamik]] * [[Physikalische Chemie --- Reversible Thermodynamik]] *[[PCRT/I/bc9d| - PCRT/I/bc9d]] *[[PCRT/I/a8bd| - PCRT/I/a8bd]] *[[PCRT/I/d88f| - PCRT/I/d88f]] *[[PCRT/I/aa9d| - PCRT/I/aa9d]] *[[CPRT/185f|02 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,V) - CPRT/185f]] 2exu76nrjgovm5oxtvmtsnp30ier5pq 1091112 1091111 2026-09-19T15:49:01Z Pelikam 111447 /* Teil A: Funktionen des Zustands und deren Differentiale in verschiedenen Koordinatensystemen */ 1091112 wikitext text/x-wiki [[PCRT|< Reversible Thermodynamik für die Zusammenarbeit von Mathematik-, Physik-, Chemie-, Ingenieur-Wissenschaften - PCRT]] == 0. Ein Wort an evtl. Co-Autor:innen: == Teil I ist gerade in der Entstehung. Er hat ein bestimmtes Konzept. Dieses Konzept hat sich das Autorenkollektiv Pelikam ausgedacht. Teil A richtet sich an Physiker:innen ist also Mathematik-belastet und erklärt die Reversible Thermodynamik. Teil I ist so gedacht, daß es jeder/jede verstehen kann. Bitte lasst Teil I erstmal soweit wachsen, bis das Konzept fertig ist. Das Konzept ist ab jetzt (07-2026) in ca. 6 Monaten (12-2026) fertig, bzw. Teil I ist nach den Vorstellungen von Autorenkollektiv Pelikam dann zu 80% fertig. SOLANGE BITTE NICHTS REINSCHREIBEN. ANREGUNGEN, GEWÜNSCHTE TEXTBAUSTEINE, FEHLER , GEWÜNSCHTE MITARBEIT, EIGENE ZIELSETZUNGEN etc. BITTE IN DISKUSSION (s.o.) EINTRAGEN. Teil I beruht im wesentlichen auf Formeln, die erklärt werden und anhand im Teil I befindlichen Übungen mit am Ende von Teil I aufgeführten Lösungen. Da es sich bei der Zielgruppe um Physiker:innen handelt, ist Teil I mehr formelbehaftet als das ähnliche Buch Physikalische Chemie: Reversible Thermodynamik DANKE Autorenkollektiv Pelikam (Teil I sticht ca. Ende 2026 in den See, dann können alle Autor:innen, die dazu etwas beitragen möchten hineinschreiben. Auch dann wäre Pelikam dankbar, wenn der Geist von Teil I, das Didaktikkonzept erst aufgenommen wird und dann die eigenen Beiträge hinzugefügt werden. Sollte eigentlich bei Physiker:innen kein Problem sein. Stand: 07-2026 = Formelsammlung - CPRT = = Inhaltsverzeichnis = *[[CPRT/I/b4c9|Einleitung zur 1. Auflage - CPRT/I/b4c9]] = Teil A: Funktionen des Zustands und deren Differentiale in verschiedenen Koordinatensystemen = *[[CPRT/cf51|01 Zustandsfunktionen und ihre Differentiale in ihren (eigenen) natürlichen Variablen - CPRT/cf51]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,V) == *{{Stage short|100%}}[[CPRT/cef7| Energie E - CPRT/cef7]] *{{Stage short|100%}}[[CPRT/51da| Energie F - CPRT/51da]] *{{Stage short|100%}}[[CPRT/6971| Energie G - CPRT/6971]] *{{Stage short|100%}}[[CPRT/9cdc| Energie H - CPRT/9cdc]] *{{Stage short|100%}}[[CPRT/b380| Energie I - CPRT/b380]] *{{Stage short|25%}}[[CPRT/8dfb| Energie J - CPRT/8dfb]] *{{Stage short|25%}}[[CPRT/e08d| Energie K - CPRT/e08d]] *{{Stage short|25%}}[[CPRT/4576| Energie L - CPRT/4576]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,V) == *[[CPRT.I.A.04|03 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,V) - CPRT.I.A.04]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,p) == *[[CPRT.I.A.05|04 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,t,p) - CPRT.I.A.05]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,p) == *[[CPRT.I.A.06|05 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,p) - CPRT.I.A.06]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,S,V) == *[[CPRT.I.A.07|06 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,S,V) - CPRT.I.A.07]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,t,V) == *[[CPRT.I.A.08|07 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,t,S) - CPRT.I.A.08]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,t,p) == *[[CPRT.I.A.09|08 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,t,p) - CPRT.I.A.09]] == Energien E, F, G, H, I, J, K, L im Koordinatensystem (<math>\mu</math>,S,p) == *[[CPRT.I.A.10|09 Energien E, F, G, H, I, J, K, L im Koordinatensystem (mu,S,p) - CPRT.I.A.10]] = Teil B: = *[[CPRT.I.B|Teil B: Erhaltungssätze und Bilanzgleichungen]] *[[CPRT.I.7a82|Teil B: Erhaltungssätze und Bilanzgleichungen]] *[[CPRT.I.C|Teil C: Entropie, Funktionen des Zustands und Änderungen des Zustands des idealen Gases]] *[[CPRT.I.67de|Teil C: Entropie, Funktionen des Zustands und Änderungen des Zustands des idealen Gases]] *[[CPRT.I.D|Teil D: Kreisprozesse mit einem idealen Gas]] *[[CPRT.I.5521|Teil D: Kreisprozesse mit einem idealen Gas]] *[[CPRT.I.E|Anhang A1: Mathematische Grundlagen]] *[[CPRT.I.677a|Anhang A1: Mathematische Grundlagen]] *[[CPRT.I.F|Anhang A2: Formelsammlung Kreisprozesse]] *[[CPRT.I.29d5|Anhang A2: Formelsammlung Kreisprozesse]] *[[CPRT.I.G|Anhang A3: Lösung der Übungsaufgaben]] *[[CPRT.I.552d|Anhang A3: Lösung der Übungsaufgaben]] *[[CPRT.I.99|Literatur]] *[[CPRT.I.619e|Literatur]] == Freie Unterverzeichnisse == *[[PCRT/I/d88f| - PCRT/I/d88f]] *[[PCRT/I/aa9d| - PCRT/I/aa9d]] *[[PCRT/I/d3ee| - PCRT/I/d3ee]] *[[PCRT/I/ea1b| - PCRT/I/ea1b]] *[[PCRT/I/a36e| - PCRT/I/a36e]] * [[Chemische Physik --- Reversible Thermodynamik]] * [[Chemische Physik --- Reversible Thermodynamik]] * [[Physikalische Chemie --- Reversible Thermodynamik]] *[[PCRT/I/bc9d| - PCRT/I/bc9d]] *[[PCRT/I/a8bd| - PCRT/I/a8bd]] *[[PCRT/I/d88f| - PCRT/I/d88f]] *[[PCRT/I/aa9d| - PCRT/I/aa9d]] *[[CPRT/185f|02 Energien E, F, G, H, I, J, K, L im Koordinatensystem (N,S,V) - CPRT/185f]] gcppgsr594j3f21tx6voe33ea9d6esu CPRT/51da 0 119066 1091093 1091050 2026-09-19T15:26:25Z Pelikam 111447 /* Energie F */ 1091093 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie F == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dF(N,t,V) </math>||<math> = </math>||<math> +\,\mu\,dN - S\,dt + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{F}\,dN + t_{E}^{F}\,dS + p_{E}^{F}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> F(N,t,V) </math>||<math> = </math>||<math> +\,\mu\,N + p\,(-V) </math> |- || <math> (03)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{F}\,N + t_{E}^{F}\,S + p_{E}^{F}\,(-V) </math> |} === Variante a) === <math>S</math> kommt, <math>t</math> geht. Eine neue Variable. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,S\,dt(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)} \right] d(-V) </math> |- || <math> (02a)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ p - S\frac{\partial t}{\partial (-V)} \right] d(-V) </math> |- | <math> (03a)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ p - S\frac{\partial t}{\partial (-V)} \right] (-V) </math> |- | <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ 0 - S\frac{\partial t}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial t}{\partial N} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} \right] - (-V)\,d\left[ p - S\frac{\partial t}{\partial (-V)} \right] </math> |} === Variante b) === <math>S</math> kommt, <math>t</math> geht. Eine neue Variable. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V) </math> |- || <math> (02b)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ p - S\frac{\partial p}{\partial S} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ p - S\frac{\partial p}{\partial S} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S}\,\right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S}\,\right] - (-V)\,d\left[ p - S\frac{\partial p}{\partial S}\,\right] </math> |} === Variante c) === <math>S</math> kommt, <math>t</math> geht. Eine neue Variable. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] dS + \left[ p + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] S + \left[ p + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] - (-V)\,d\left[ p + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] </math> |} == Herleitungen Energie F == i02abd5p1hfyemi8wfqktofpz9zeh80 1091096 1091093 2026-09-19T15:29:13Z Pelikam 111447 /* Variante a) */ 1091096 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie F == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dF(N,t,V) </math>||<math> = </math>||<math> +\,\mu\,dN - S\,dt + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{F}\,dN + t_{E}^{F}\,dS + p_{E}^{F}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> F(N,t,V) </math>||<math> = </math>||<math> +\,\mu\,N + p\,(-V) </math> |- || <math> (03)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{F}\,N + t_{E}^{F}\,S + p_{E}^{F}\,(-V) </math> |} === Variante a) === Eine neue Variable: <math>S</math> kommt, <math>t</math> geht. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,S\,dt(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)} \right] d(-V) </math> |- || <math> (02a)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ p - S\frac{\partial t}{\partial (-V)} \right] d(-V) </math> |- | <math> (03a)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ p - S\frac{\partial t}{\partial (-V)} \right] (-V) </math> |- | <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ 0 - S\frac{\partial t}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial t}{\partial N} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} \right] - (-V)\,d\left[ p - S\frac{\partial t}{\partial (-V)} \right] </math> |} === Variante b) === <math>S</math> kommt, <math>t</math> geht. Eine neue Variable. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V) </math> |- || <math> (02b)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ p - S\frac{\partial p}{\partial S} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ p - S\frac{\partial p}{\partial S} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S}\,\right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S}\,\right] - (-V)\,d\left[ p - S\frac{\partial p}{\partial S}\,\right] </math> |} === Variante c) === <math>S</math> kommt, <math>t</math> geht. Eine neue Variable. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] dS + \left[ p + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] S + \left[ p + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] - (-V)\,d\left[ p + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] </math> |} == Herleitungen Energie F == 0o16v71vx2i5bb1eejwekknswyxn7kg 1091097 1091096 2026-09-19T15:29:46Z Pelikam 111447 /* Variante b) */ 1091097 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie F == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dF(N,t,V) </math>||<math> = </math>||<math> +\,\mu\,dN - S\,dt + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{F}\,dN + t_{E}^{F}\,dS + p_{E}^{F}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> F(N,t,V) </math>||<math> = </math>||<math> +\,\mu\,N + p\,(-V) </math> |- || <math> (03)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{F}\,N + t_{E}^{F}\,S + p_{E}^{F}\,(-V) </math> |} === Variante a) === Eine neue Variable: <math>S</math> kommt, <math>t</math> geht. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,S\,dt(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)} \right] d(-V) </math> |- || <math> (02a)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ p - S\frac{\partial t}{\partial (-V)} \right] d(-V) </math> |- | <math> (03a)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ p - S\frac{\partial t}{\partial (-V)} \right] (-V) </math> |- | <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ 0 - S\frac{\partial t}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial t}{\partial N} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} \right] - (-V)\,d\left[ p - S\frac{\partial t}{\partial (-V)} \right] </math> |} === Variante b) === Eine neue Variable: <math>S</math> kommt, <math>t</math> geht. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V) </math> |- || <math> (02b)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ p - S\frac{\partial p}{\partial S} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ p - S\frac{\partial p}{\partial S} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S}\,\right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S}\,\right] - (-V)\,d\left[ p - S\frac{\partial p}{\partial S}\,\right] </math> |} === Variante c) === <math>S</math> kommt, <math>t</math> geht. Eine neue Variable. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] dS + \left[ p + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] S + \left[ p + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] - (-V)\,d\left[ p + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] </math> |} == Herleitungen Energie F == gviushe044ucdoit3eprxgow2vdsfac 1091098 1091097 2026-09-19T15:30:04Z Pelikam 111447 /* Variante c) */ 1091098 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie F == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dF(N,t,V) </math>||<math> = </math>||<math> +\,\mu\,dN - S\,dt + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{F}\,dN + t_{E}^{F}\,dS + p_{E}^{F}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> F(N,t,V) </math>||<math> = </math>||<math> +\,\mu\,N + p\,(-V) </math> |- || <math> (03)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{F}\,N + t_{E}^{F}\,S + p_{E}^{F}\,(-V) </math> |} === Variante a) === Eine neue Variable: <math>S</math> kommt, <math>t</math> geht. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,S\,dt(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)} \right] d(-V) </math> |- || <math> (02a)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ p - S\frac{\partial t}{\partial (-V)} \right] d(-V) </math> |- | <math> (03a)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ p - S\frac{\partial t}{\partial (-V)} \right] (-V) </math> |- | <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ 0 - S\frac{\partial t}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial t}{\partial N} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} \right] - (-V)\,d\left[ p - S\frac{\partial t}{\partial (-V)} \right] </math> |} === Variante b) === Eine neue Variable: <math>S</math> kommt, <math>t</math> geht. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V) </math> |- || <math> (02b)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ p - S\frac{\partial p}{\partial S} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ p - S\frac{\partial p}{\partial S} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S}\,\right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S}\,\right] - (-V)\,d\left[ p - S\frac{\partial p}{\partial S}\,\right] </math> |} === Variante c) === Eine neue Variable: <math>S</math> kommt, <math>t</math> geht. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] dS + \left[ p + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] S + \left[ p + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial t}{\partial V} \right] - (-V)\,d\left[ p + N\frac{\partial p}{\partial N} + V\frac{\partial p}{\partial V} \right] </math> |} == Herleitungen Energie F == mq6rhol7vlm5edit77kxapso5sbp7ih CPRT/6971 0 119123 1091095 1091051 2026-09-19T15:27:37Z Pelikam 111447 /* Energie G */ 1091095 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie G == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dG(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,dN - S\,dt -(-V)\,dp </math> |- || <math> (02)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,dN + t_{E}^{G}\,dS + p_{E}^{G}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> G(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,N </math> |- || <math> (03)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,N + t_{E}^{G}\,S + p_{E}^{G}\,(-V) </math> |} === Variante a) === <math>S, V</math> kommen, <math>t, p</math> gehen. Zwei neue Variable. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (01a)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - (-V)\frac{\partial p}{\partial S} \right] dS + \left[ 0 - (-V)\frac{\partial p}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02a)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] dS </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] d(-V) </math> |- || <math> (03a)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> - (-V)\,d\left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] </math> |} === Variante b) === <math>S, V</math> kommen, <math>t, p</math> gehen. Zwei neue Variable. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V)\quad (N,S,V) </math> |- || <math> (01b)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - V\frac{\partial p}{\partial V}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02b)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] -\,(-V)\,d\left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] </math> |} === Variante c) === <math>S, V</math> kommen, <math>t, p</math> gehen. Zwei neue Variable. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial \mu}{\partial V} \right] d(-V) </math> |- || <math> (01c) </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial \mu}{\partial S} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} \right] -\,(-V)\,d\left[ 0 + N\frac{\partial p}{\partial N} \right] </math> |} == Herleitungen Energie G == nm7racnbk477k1bqcpru7pbbmhl9kq6 1091099 1091095 2026-09-19T15:31:17Z Pelikam 111447 /* Variante a) */ 1091099 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie G == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dG(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,dN - S\,dt -(-V)\,dp </math> |- || <math> (02)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,dN + t_{E}^{G}\,dS + p_{E}^{G}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> G(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,N </math> |- || <math> (03)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,N + t_{E}^{G}\,S + p_{E}^{G}\,(-V) </math> |} === Variante a) === Zwei neue Variable. <math>S, V</math> kommen, <math>t, p</math> gehen. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (01a)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - (-V)\frac{\partial p}{\partial S} \right] dS + \left[ 0 - (-V)\frac{\partial p}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02a)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] dS </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] d(-V) </math> |- || <math> (03a)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> - (-V)\,d\left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] </math> |} === Variante b) === <math>S, V</math> kommen, <math>t, p</math> gehen. Zwei neue Variable. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V)\quad (N,S,V) </math> |- || <math> (01b)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - V\frac{\partial p}{\partial V}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02b)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] -\,(-V)\,d\left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] </math> |} === Variante c) === <math>S, V</math> kommen, <math>t, p</math> gehen. Zwei neue Variable. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial \mu}{\partial V} \right] d(-V) </math> |- || <math> (01c) </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial \mu}{\partial S} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} \right] -\,(-V)\,d\left[ 0 + N\frac{\partial p}{\partial N} \right] </math> |} == Herleitungen Energie G == l84473ege4jfxysc0ncmebpczq9h701 1091100 1091099 2026-09-19T15:31:31Z Pelikam 111447 /* Variante b) */ 1091100 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie G == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dG(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,dN - S\,dt -(-V)\,dp </math> |- || <math> (02)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,dN + t_{E}^{G}\,dS + p_{E}^{G}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> G(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,N </math> |- || <math> (03)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,N + t_{E}^{G}\,S + p_{E}^{G}\,(-V) </math> |} === Variante a) === Zwei neue Variable. <math>S, V</math> kommen, <math>t, p</math> gehen. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (01a)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - (-V)\frac{\partial p}{\partial S} \right] dS + \left[ 0 - (-V)\frac{\partial p}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02a)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] dS </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] d(-V) </math> |- || <math> (03a)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> - (-V)\,d\left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] </math> |} === Variante b) === Zwei neue Variable. <math>S, V</math> kommen, <math>t, p</math> gehen. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V)\quad (N,S,V) </math> |- || <math> (01b)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - V\frac{\partial p}{\partial V}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02b)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] -\,(-V)\,d\left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] </math> |} === Variante c) === <math>S, V</math> kommen, <math>t, p</math> gehen. Zwei neue Variable. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial \mu}{\partial V} \right] d(-V) </math> |- || <math> (01c) </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial \mu}{\partial S} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} \right] -\,(-V)\,d\left[ 0 + N\frac{\partial p}{\partial N} \right] </math> |} == Herleitungen Energie G == j71guvs606s767ljjnd5semcns13l46 1091102 1091100 2026-09-19T15:32:02Z Pelikam 111447 /* Variante a) */ 1091102 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie G == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dG(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,dN - S\,dt -(-V)\,dp </math> |- || <math> (02)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,dN + t_{E}^{G}\,dS + p_{E}^{G}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> G(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,N </math> |- || <math> (03)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,N + t_{E}^{G}\,S + p_{E}^{G}\,(-V) </math> |} === Variante a) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (01a)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - (-V)\frac{\partial p}{\partial S} \right] dS + \left[ 0 - (-V)\frac{\partial p}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02a)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] dS </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] d(-V) </math> |- || <math> (03a)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> - (-V)\,d\left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] </math> |} === Variante b) === Zwei neue Variable. <math>S, V</math> kommen, <math>t, p</math> gehen. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V)\quad (N,S,V) </math> |- || <math> (01b)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - V\frac{\partial p}{\partial V}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02b)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] -\,(-V)\,d\left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] </math> |} === Variante c) === <math>S, V</math> kommen, <math>t, p</math> gehen. Zwei neue Variable. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial \mu}{\partial V} \right] d(-V) </math> |- || <math> (01c) </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial \mu}{\partial S} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} \right] -\,(-V)\,d\left[ 0 + N\frac{\partial p}{\partial N} \right] </math> |} == Herleitungen Energie G == 3zgl2dq71g8nkq6nfgmyt42lstioa2z 1091103 1091102 2026-09-19T15:32:21Z Pelikam 111447 /* Variante b) */ 1091103 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie G == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dG(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,dN - S\,dt -(-V)\,dp </math> |- || <math> (02)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,dN + t_{E}^{G}\,dS + p_{E}^{G}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> G(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,N </math> |- || <math> (03)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,N + t_{E}^{G}\,S + p_{E}^{G}\,(-V) </math> |} === Variante a) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (01a)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - (-V)\frac{\partial p}{\partial S} \right] dS + \left[ 0 - (-V)\frac{\partial p}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02a)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] dS </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] d(-V) </math> |- || <math> (03a)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> - (-V)\,d\left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] </math> |} === Variante b) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V)\quad (N,S,V) </math> |- || <math> (01b)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - V\frac{\partial p}{\partial V}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02b)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] -\,(-V)\,d\left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] </math> |} === Variante c) === <math>S, V</math> kommen, <math>t, p</math> gehen. Zwei neue Variable. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial \mu}{\partial V} \right] d(-V) </math> |- || <math> (01c) </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial \mu}{\partial S} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} \right] -\,(-V)\,d\left[ 0 + N\frac{\partial p}{\partial N} \right] </math> |} == Herleitungen Energie G == njitk97nuisy74ipr8mxmxedccwe4fy 1091104 1091103 2026-09-19T15:33:12Z Pelikam 111447 /* Variante c) */ 1091104 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie G == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dG(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,dN - S\,dt -(-V)\,dp </math> |- || <math> (02)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,dN + t_{E}^{G}\,dS + p_{E}^{G}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> G(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,N </math> |- || <math> (03)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,N + t_{E}^{G}\,S + p_{E}^{G}\,(-V) </math> |} === Variante a) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (01a)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - (-V)\frac{\partial p}{\partial S} \right] dS + \left[ 0 - (-V)\frac{\partial p}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02a)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] dS </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] d(-V) </math> |- || <math> (03a)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> - (-V)\,d\left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] </math> |} === Variante b) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V)\quad (N,S,V) </math> |- || <math> (01b)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - V\frac{\partial p}{\partial V}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02b)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] -\,(-V)\,d\left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] </math> |} === Variante c) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial \mu}{\partial V} \right] d(-V) </math> |- || <math> (01c) </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial \mu}{\partial S} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} \right] -\,(-V)\,d\left[ 0 + N\frac{\partial p}{\partial N} \right] </math> |} == Herleitungen Energie G == my120230ocs655s42myciy7xvybg0p0 CPRT/9cdc 0 119132 1091105 1091052 2026-09-19T15:34:58Z Pelikam 111447 /* Energie H */ 1091105 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie H == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dH(N,S,p) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS -(-V)\,dp </math> |- || <math> (02)\quad </math> || <math> dH(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{H}\,dN + t_{E}^{H}\,dS + p_{E}^{H}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> H(N,S,p) </math>||<math> = </math>||<math> +\,\mu\,N + t\,S </math> |- || <math> (03)\quad </math> || <math> H(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{H}\,N + t_{E}^{H}\,S + p_{E}^{H}\,(-V) </math> |} === Variante a) === Eine neue Variable: <math>V</math> kommt, <math>p</math> geht. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - (-V)\frac{\partial p}{\partial S} \right] dS + \left[ 0 - (-V)\frac{\partial p}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02a)\quad </math> || <math> dH(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ t - (-V)\frac{\partial p}{\partial S} \right] dS + \left[ 0 - (-V)\frac{\partial p}{\partial (-V)} \right] d(-V) </math> |- || <math> (03a)\quad </math> || <math> H(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - (-V)\frac{\partial p}{\partial N} \right] N + \left[ t - (-V)\frac{\partial p}{\partial S} \right] S + \left[ 0 - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - (-V)\frac{\partial p}{\partial S} \right] S + \left[ 0 - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - (-V)\frac{\partial p}{\partial N} \right] - S\,d\left[ t - (-V)\frac{\partial p}{\partial S} \right] - (-V)\,d\left[ 0 - (-V)\frac{\partial p}{\partial (-V)} \right] </math> |} === Variante b) === Eine neue Variable: <math>V</math> kommt, <math>p</math> geht. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - V\frac{\partial p}{\partial V} \right] d(-V)\quad (N,S,V) </math> |- || <math> (02b)\quad </math> || <math> dH(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - V\frac{\partial \mu}{\partial V} \right] dN + \left[ t - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> H(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - V\frac{\partial \mu}{\partial V} \right] N + \left[ t - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ t - V\frac{\partial t}{\partial V} \right] - (-V)\,d\left[ 0 - V\frac{\partial p}{\partial V} \right] </math> |} === Variante c) === Eine neue Variable: <math>V</math> kommt, <math>p</math> geht. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial \mu}{\partial S} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dH(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dN + \left[ t + N\frac{\partial t}{\partial N} + S\frac{\partial t}{\partial S} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial p}{\partial S} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> H(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] N + \left[ t + N\frac{\partial t}{\partial N} + S\frac{\partial t}{\partial S} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial p}{\partial S} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} + S\frac{\partial t}{\partial S} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial p}{\partial S} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] - S\,d\left[ t + N\frac{\partial t}{\partial N} + S\frac{\partial t}{\partial S} \right] - (-V)\,d\left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial p}{\partial S} \right] </math> |} == Herleitungen Energie H == qrwc7v4yk3v3cd4081dgv60bm0klyqj CPRT/8dfb 0 119134 1091107 1091039 2026-09-19T15:40:18Z Pelikam 111447 1091107 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie G == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dG(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,dN - S\,dt -(-V)\,dp </math> |- || <math> (02)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,dN + t_{E}^{G}\,dS + p_{E}^{G}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> G(N,t,p) </math>||<math> = </math>||<math> +\,\mu\,N </math> |- || <math> (03)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{G}\,N + t_{E}^{G}\,S + p_{E}^{G}\,(-V) </math> |} === Variante a) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (01a)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - (-V)\frac{\partial p}{\partial S} \right] dS + \left[ 0 - (-V)\frac{\partial p}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02a)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] dS </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] d(-V) </math> |- || <math> (03a)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> - (-V)\,d\left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] </math> |} === Variante b) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V)\quad (N,S,V) </math> |- || <math> (01b)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - V\frac{\partial p}{\partial V}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02b)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] -\,(-V)\,d\left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] </math> |} === Variante c) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial \mu}{\partial V} \right] d(-V) </math> |- || <math> (01c) </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial \mu}{\partial S} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} \right] -\,(-V)\,d\left[ 0 + N\frac{\partial p}{\partial N} \right] </math> |} b6o42f3ta2pp7ah6um7oaxwjgsbt2cg 1091108 1091107 2026-09-19T15:42:43Z Pelikam 111447 /* Energie G */ 1091108 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie J == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dJ(\mu,t,V) </math>||<math> = </math>||<math> -\,N\,d\mu - S\,dt + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dJ(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{J}\,dN + t_{E}^{J}\,dS + p_{E}^{J}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> J(\mu,t,V) </math>||<math> = </math>||<math> +\,p\,(-V) </math> |- || <math> (03)\quad </math> || <math> J(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{J}\,N + t_{E}^{J}\,S + p_{E}^{J}\,(-V) </math> |} === Variante a) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (01a)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - (-V)\frac{\partial p}{\partial S} \right] dS + \left[ 0 - (-V)\frac{\partial p}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02a)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] dS </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] d(-V) </math> |- || <math> (03a)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial t}{\partial N} - (-V)\frac{\partial p}{\partial N} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - (-V)\frac{\partial p}{\partial S} \right] </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> - (-V)\,d\left[ 0 - S\frac{\partial t}{\partial (-V)} - (-V)\frac{\partial p}{\partial (-V)} \right] </math> |} === Variante b) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V)\quad (N,S,V) </math> |- || <math> (01b)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - V\frac{\partial p}{\partial V}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02b)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] -\,(-V)\,d\left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] </math> |} === Variante c) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial \mu}{\partial V} \right] d(-V) </math> |- || <math> (01c) </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial \mu}{\partial S} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} \right] -\,(-V)\,d\left[ 0 + N\frac{\partial p}{\partial N} \right] </math> |} nmcelwhy9djymi1vxmpbfyd8tqhej07 1091115 1091108 2026-09-19T17:49:19Z Pelikam 111447 /* Variante a) */ 1091115 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie J == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dJ(\mu,t,V) </math>||<math> = </math>||<math> -\,N\,d\mu - S\,dt + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dJ(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{J}\,dN + t_{E}^{J}\,dS + p_{E}^{J}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> J(\mu,t,V) </math>||<math> = </math>||<math> +\,p\,(-V) </math> |- || <math> (03)\quad </math> || <math> J(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{J}\,N + t_{E}^{J}\,S + p_{E}^{J}\,(-V) </math> |} === Variante a) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,N\,d\mu </math>||<math> = </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial N} \right] dN + \left[ 0 - N\frac{\partial \mu}{\partial S} \right] dS + \left[ 0 - N\frac{\partial \mu}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (01a)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial t}{\partial (-V)}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02a)\quad </math> || <math> dJ(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial N} - S\frac{\partial t}{\partial N} \right] dN + \left[ 0 - N\frac{\partial \mu}{\partial S} - S\frac{\partial t}{\partial S} \right] dS </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ p - N\frac{\partial \mu}{\partial (-V)} - S\frac{\partial t}{\partial (-V)} \right] d(-V) </math> |- || <math> (03a)\quad </math> || <math> J(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial N} - S\frac{\partial t}{\partial N} \right] N + \left[ 0 - N\frac{\partial \mu}{\partial S} - S\frac{\partial t}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ p - N\frac{\partial \mu}{\partial (-V)} - S\frac{\partial t}{\partial (-V)} \right] (-V) </math> |- || <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial N} - S\frac{\partial t}{\partial N} \right] N + \left[ 0 - N\frac{\partial \mu}{\partial S} - S\frac{\partial t}{\partial S} \right] S </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial (-V)} - S\frac{\partial t}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ 0 - N\frac{\partial \mu}{\partial N} - S\frac{\partial t}{\partial N} \right] - S\,d\left[ 0 - N\frac{\partial \mu}{\partial S} - S\frac{\partial t}{\partial S} \right] </math> |- || <math> \quad\quad </math> || <math> </math>||<math> </math>||<math> - (-V)\,d\left[ 0 - N\frac{\partial \mu}{\partial (-V)} - S\frac{\partial t}{\partial (-V)} \right] </math> |} === Variante b) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} \right] d(-V)\quad (N,S,V) </math> |- || <math> (01b)\quad </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - V\frac{\partial p}{\partial V}\right] d(-V)\quad (N,S,V) </math> |- || <math> (02b)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] dS + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] S + \left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu - S\frac{\partial \mu}{\partial S} - V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ 0 - S\frac{\partial t}{\partial S} - V\frac{\partial t}{\partial V} \right] -\,(-V)\,d\left[ 0 - S\frac{\partial p}{\partial S} - V\frac{\partial p}{\partial V} \right] </math> |} === Variante c) === Zwei neue Variable: <math>S, V</math> kommen, <math>t, p</math> gehen. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,S\,dt </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + V\frac{\partial \mu}{\partial V} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + V\frac{\partial \mu}{\partial V} \right] d(-V) </math> |- || <math> (01c) </math> || <math> -\,(-V)\,dp </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} + S\frac{\partial \mu}{\partial S} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} + S\frac{\partial \mu}{\partial S} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dG(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] dN + \left[ 0 + N\frac{\partial t}{\partial N} \right] dS + \left[ 0 + N\frac{\partial p}{\partial N} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> G(N,S,V) </math>||<math> = </math>||<math> + \left[ \mu + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 + N\frac{\partial t}{\partial N} \right] S + \left[ 0 + N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ \mu + N\frac{\partial \mu}{\partial N} \right] - S\,d\left[ 0 + N\frac{\partial t}{\partial N} \right] -\,(-V)\,d\left[ 0 + N\frac{\partial p}{\partial N} \right] </math> |} lxlfnwlg5c7m4m0yyu9zrpxa54vof8y CPRT/b380 0 121708 1091106 1091053 2026-09-19T15:36:43Z Pelikam 111447 /* Energie I */ 1091106 wikitext text/x-wiki [[CPRT|< Inhaltsverzeichnis - CPRT]] == Energie I == {| |- || <math> (01)\quad </math> || <math> dE(N,S,V) </math>||<math> = </math>||<math> +\,\mu\,dN + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dI(\mu,S,V) </math>||<math> = </math>||<math> -\,N\,d\mu + t\,dS + p\,d(-V) </math> |- || <math> (02)\quad </math> || <math> dI(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{I}\,dN + t_{E}^{I}\,dS + p_{E}^{I}\,d(-V) </math> |- || <math> (03)\quad </math> || <math> I(\mu,S,V) </math>||<math> = </math>||<math> +\,t\,S + p\,(-V) </math> |- || <math> (03)\quad </math> || <math> I(N,S,V) </math>||<math> = </math>||<math> +\,\mu_{E}^{I}\,N + t_{E}^{I}\,S + p_{E}^{I}\,(-V) </math> |} === Variante a) === Eine neue Variable: <math>N</math> kommt, <math>\mu</math> geht. (04a) folgt aus (03) und (03a). (05a) folgt aus (02a) und (03a). {| |- || <math> (01a)\quad </math> || <math> -\,N\,d\mu(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial N} \right] dN + \left[ 0 - N\frac{\partial \mu}{\partial S} \right] dS + \left[ 0 - N\frac{\partial \mu}{\partial (-V)} \right] d(-V) </math> |- || <math> (02a)\quad </math> || <math> dI(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial N} \right] dN + \left[ t - N\frac{\partial \mu}{\partial S} \right] dS + \left[ p - N\frac{\partial \mu}{\partial (-V)} \right] d(-V) </math> |- | <math> (03a)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial N} \right] N + \left[ t - N\frac{\partial \mu}{\partial S} \right] S + \left[ p - N\frac{\partial \mu}{\partial (-V)} \right] (-V) </math> |- | <math> (04a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 - N\frac{\partial \mu}{\partial S} \right] S + \left[ 0 - N\frac{\partial \mu}{\partial (-V)} \right] (-V) </math> |- || <math> (05a)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ 0 - N\frac{\partial \mu}{\partial N} \right] - S\,d\left[ t - N\frac{\partial \mu}{\partial S} \right] - (-V)\,d\left[ p - N\frac{\partial \mu}{\partial (-V)} \right] </math> |} === Variante b) === Eine neue Variable: <math>N</math> kommt, <math>\mu</math> geht. (04b) folgt aus (03) und (03b). (05b) folgt aus (02b) und (03b). {| |- || <math> (01b)\quad </math> || <math> -\,N\,d\mu(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial N} \right] dN + \left[ 0 - N\frac{\partial t}{\partial N} \right] dS + \left[ 0 - N\frac{\partial p}{\partial N} \right] d(-V) </math> |- || <math> (02b)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial N} \right] dN + \left[ t - N\frac{\partial t}{\partial N} \right] dS + \left[ p - N\frac{\partial p}{\partial N} \right] d(-V) </math> |- || <math> (03b)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial N} \right] N + \left[ t - N\frac{\partial t}{\partial N} \right] S + \left[ p - N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (04b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 - N\frac{\partial \mu}{\partial N} \right] N + \left[ 0 - N\frac{\partial t}{\partial N} \right] S + \left[ 0 - N\frac{\partial p}{\partial N} \right] (-V) </math> |- || <math> (05b)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ 0 - N\frac{\partial \mu}{\partial N}\,\right] - S\,d\left[ t - N\frac{\partial t}{\partial N}\,\right] - (-V)\,d\left[ p - N\frac{\partial p}{\partial N}\,\right] </math> |} === Variante c) === Eine neue Variable: <math>N</math> kommt, <math>\mu</math> geht. (04c) folgt aus (03) und (03c). (05c) folgt aus (02c) und (03c). {| |- || <math> (01c)\quad </math> || <math> -\,N\,d\mu(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + S\frac{\partial \mu}{\partial S} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ 0 + S\frac{\partial t}{\partial S} + V\frac{\partial t}{\partial V} \right] dS + \left[ 0 + S\frac{\partial p}{\partial S} + V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (02c)\quad </math> || <math> dF(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + S\frac{\partial \mu}{\partial S} + V\frac{\partial \mu}{\partial V} \right] dN + \left[ t + S\frac{\partial t}{\partial S} + V\frac{\partial t}{\partial V} \right] dS + \left[ p + S\frac{\partial p}{\partial S} + V\frac{\partial p}{\partial V} \right] d(-V) </math> |- || <math> (03c)\quad </math> || <math> F(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + S\frac{\partial \mu}{\partial S} + V\frac{\partial \mu}{\partial V} \right] N + \left[ t + S\frac{\partial t}{\partial S} + V\frac{\partial t}{\partial V} \right] S + \left[ p + S\frac{\partial p}{\partial S} + V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (04c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> + \left[ 0 + S\frac{\partial \mu}{\partial S} + V\frac{\partial \mu}{\partial V} \right] N + \left[ 0 + S\frac{\partial t}{\partial S} + V\frac{\partial t}{\partial V} \right] S + \left[ 0 + S\frac{\partial p}{\partial S} + V\frac{\partial p}{\partial V} \right] (-V) </math> |- || <math> (05c)\quad </math> || <math> 0\,(N,S,V) </math>||<math> = </math>||<math> -\,N\,d\left[ 0 + S\frac{\partial \mu}{\partial S} + V\frac{\partial \mu}{\partial V} \right] - S\,d\left[ t + S\frac{\partial t}{\partial S} + V\frac{\partial t}{\partial V} \right] - (-V)\,d\left[ p + S\frac{\partial p}{\partial S} + V\frac{\partial p}{\partial V} \right] </math> |} == Herleitungen Energie I == 2hmoinqg3fc3cl96skwv5lxt4ri39bb First Responder/ Besondere Situationen und Gefahren 0 123022 1091126 1091066 2026-09-20T08:02:14Z 2ndoptimist 116642 1091126 wikitext text/x-wiki == Infektionen == === Krankheitserreger === Beim Kontakt mit Körperflüssigkeiten (Blut, Speichel, Sekreten) besteht prinzipiell die Gefahr der Übertragung von Krankheitserregern. Die relevantesten Pathogene sind: * '''Hepatitis B (HBV):''' Ein hochinfektiöses Virus, das die Leber befällt. Es ist sehr umweltstabil und kann auch in getrockneten Blutstropfen noch infektiös sein. Das Risiko einer chronischen Erkrankung ist hoch. * '''Hepatitis C (HCV):''' Ebenfalls ein Leber-Virus. Es ist weniger infektiös als HBV, führt aber in einem hohen Prozentsatz zu chronischen Lebererkrankungen. Es gibt keine Impfung. * '''HIV (Humanes Immundefizienzvirus):''' Das Virus schwächt das Immunsystem und führt zu AIDS. Das Infektionsrisiko nach einer Nadelstichverletzung ist vergleichsweise gering (ca. 0,3 %), aber aufgrund der Schwere der Erkrankung existieren strenge Prophylaxe-Regeln. Weitere Erreger: Tuberkulose (Tröpfcheninfektion), MRSA (multiresistente Erreger), diverse bakterielle Erreger (z.B. Tetanus), Noroviren, ... === Übertragungswege im Einsatz === Die Übertragung erfolgt nahezu ausschliesslich über den direkten Kontakt mit Körperflüssigkeiten. * '''Blutkontakt:''' Offene Wunden am Helfer kommen mit Blut des Patienten in Kontakt. * '''Stich- und Schnittverletzungen:''' Das ist die häufigste Gefahr im Einsatz. Verletzung durch Kanülen, Skalpelle oder Glassplitter, die mit Patientenblut kontaminiert sind ("Nadelstichverletzung") ermöglichen eine direkte Übertragung von Erregern in tiefere, oftmals schlecht blutende Verletzungen (kein "Ausspülen" der Wunde durch starke Blutung, schlechte Erreichbarkeit mit Desinfektionsmittel oder Antibiotika). * '''Schleimhautkontakt:''' Spritzer von Blut oder Sekreten gelangen in die Augen (Bindehaut), den Mund oder die Nase. * '''Aerosole (Beatmung):''' Bei der Mund-zu-Mund-Beatmung oder bei der Intubation besteht ein (wenn auch geringes) Risiko der Übertragung über den Luftweg mit Erregern wie Tuberkulose oder COVID. === Persönliche Schutzausrüstung (PSA) === Der beste Schutz ist die Vermeidung von Kontakt. Die Basis-Schutzausrüstung gilt bei jedem Patienten, da man den Infektionsstatus oft nicht sofort erkennen kann. Das einfachste und meistens auch am besten Verfügbare Mittel sind die Einmalhandschuhe diese sind Unverzichtbar bei jeglichem Kontakt mit Körperflüssigkeiten oder offenen Wunden. Wechseln zwischen unterschiedlichen Patienten ist zwingend. Ein Mund-Nasen-Schutz (FFP2-Masken) bieten Schutz vor Tröpfcheninfektionen für den Patienten und Helfer (Schleimhautschutz). Unter keinen Umständen sollte eine direkte Mund-zu-Mund-Beatmung ohne Barriere erfolgen. Die Nutzung von Beatmungsmaske mit Ventil, einer Pocket-Mask oder dem Beatmungsbeutel (Ambu-Beutel) verringert ein Infektionsrisiko für den Helfer enorm. === '''Empfohlene Impfungen''' === Impfungen sind ein effektiver vorbeugende Schutz. Diese Impfungen können beim Hausarzt oder in der Apotheke durchgeführt werden. Folgende Immunisierung werden empfohlen: * '''Hepatitis B:''' Das Impfschema umfasst in der Regel 3 Dosen innerhalb von 6 Monaten. In der Regel ist keine Auffrischimpfung notwendig. * '''Tetanus (Wundstarrkrampf):''' Grundimmunisierung und Auffrischung alle 10 Jahre (bei Verletzungen ggf. früher). Diese Impfung ist in der Regel kombiniert mit Diphterie und Keuchhusten. === Notfallmassnahmen bei Kontamination === Wenn trotz aller Vorsicht doch etwas passiert gilt: Schnelligkeit und korrektes Handeln senken das Infektionsrisiko drastisch. * Bei '''Stich- oder Schnittverletzung''' (Nadelstichverletzung) soll man nicht pressen/reiben. Wenn man die Wunde versucht auszudrücken oder zu massieren fördert dies die Ausbreitung. Die Wunde sollte kurz bluten, um Erreger auszuschwemmen. Anschliessend sofort gründliches Desinfizieren der Wunde mit Wunddesinfektionsmittel. Zudem soll man den Zeitpunkt, Art der Verletzung und Informationen zum Patienten notieren. Verletzungen mit einem Blut-Blut Kontakt sind ein Notfall. Die Entscheidung über eine medikamentöse Prophylaxe (besonders HIV) muss meistens innerhalb von Stunden getroffen werden. * Findet eine '''Kontamination über Schleimhäuten''' (Auge/Nase/Mund) statt, ist erst ausgiebig zu Spülen: Augen und Mund sofort und reichlich mit Wasser oder physiologischer Kochsalzlösung ausspülen (mindestens 5-10 Minuten). Die Augenlider sind dabei offen zu halten. Es gehören keine Desinfektionsmittel ins Auge: Nur Wasser/ Kochsalzlösung verwenden. Keine aggressive Desinfektion an Schleimhäuten anwenden. Auch diese Art der Kontamination gehört in ärztliche Abklärung. * Bei einer '''Kontamination der intakten Haut''' reicht Abwaschen, die gründliche Reinigung mit Wasser und Seife und die anschliessende Desinfektion Verhindert eine Krankheitsübertragung bei einem Helfer mit intaktem Immunsystem zuverlässig. * Gelangen Flüssigkeiten oder andere Ausscheidungsprodukte '''auf die Kleider''', so sind diese mit mindestens 60°C und ggf. desinfizierendem Waschmittel zu waschen. === Post-Expositions-Prophylaxe (PEP) === Wenn ein hohes Risiko besteht (z.B. Nadelstich mit HIV-blutiger Kanüle bei einem HIV-positiven Patienten), kann eine Post-Expositions-Prophylaxe eingeleitet werden. Diese besteht aus einer Kombination antiretroviraler Medikamente, die über ca. 4 Wochen eingenommen werden muüssen. Diese PEP muss so früh wie möglich, idealerweise innerhalb von 2 Stunden, spätestens nach 24-48 Stunden begonnen werden, um wirksam zu sein. Bei fehlendem Impfschutz gegenüber Hepatitis B wird eine passive Immunisierung (Hepatitis-B-Immunoglobulin) vorgenommen. Gegen Hepatitis C gibt es keine wirksame Impfung. Eine medikamentöse Frühbehandlung ist nur in Einzelfällen sinnvoll; regelmässige Blutkontrollen sind notwendig, um eine Infektion frühzeitig zu erkennen. == Tiere == Das Tier ist nicht ein Patient, ein Tier ist eine Gefahrenquelle! Als First Responder kannst du in der Regel nicht beurteilen ob beispielsweise ein Pferd "brav" ist. Ein dem Halter vertrautes Tier ist nicht automatisch gegenüber Fremden ungefährlich. Verletzung, Schmerzen, Angst, Fixierung oder ungewohnte Situationen können das Verhalten eines sonst ruhigen Tieres verändern. Als First Responder sollte man nicht anfangen, ein Pferd zu streicheln oder eine Kuh wegdrücken, nur damit man besser zum Patienten kommt. === Hunde === In der Schweiz werden über 500'000 Hunde gehalten. Dass man im Rahmen eines Einsatzes mit einem kleineren oder grösseren Exemplar in Kontakt kommt ist also sehr wahrscheinlich. Wenn möglich sollte man den Hund sichern lassen, bevor der First Responder zum Patienten geht, sofern die Situation dies zulässt. Bei einem Einsatz, bei dem der Hund nicht durch Anwesende gesichert/betreut werden kann, muss die Notrufzentrale entscheiden, wie mit dem Tier verfahren wird und entsprechende Spezialisten aufbieten. Der First Responder sollte nicht versuchen, das Tier eigenmächtig zu fangen oder zu fixieren. Wenn sich jedoch Haustiere relativ entspannt verhalten und ein Betreten der Wohnung möglich ist, ist darauf zu achten, dass das Tier die Wohnung nicht verlässt. Haustüren sind geschlossen zu halten, bestenfalls kann das Tier in einem anderen Raum gesperrt werden. Die Betreuung des Tieres ist auch nach Ende des Einsatzes (durch Angehörige, Nachbarn, Gemeinde...) sicherzustellen. ==== '''Gefahren''' ==== * Bissverletzungen * Anspringen und Umwerfen * Verteidigung des Halters oder des Territoriums * Angst- und Schmerzreaktionen * unvorhersehbares Verhalten durch Stress, Verletzung oder Krankheit * mehrere Hunde können sich gegenseitig hochschaukeln – Rudelverhalten * Hund kann den Zugang zum Patienten oder Fluchtweg blockieren ==== '''Besonders beachten''' ==== * Abstand halten und Verhalten des Hundes beobachten. * Nicht ungefragt auf den Hund zugehen oder ihn anfassen. * Nicht direkt in die Augen starren und keine hektischen Bewegungen machen. * Halter auffordern, den Hund sicher zu sichern, sofern dies gefahrlos möglich ist. * Auch ein angeleinter Hund kann beissen. * Bei einem verletzten oder bewusstlosen Halter besonders vorsichtig sein: Der Hund kann den Halter beschützen. * Einen unbekannten Hund nicht selbst sichern oder anleinen, wenn dadurch eine Gefährdung entsteht. * Bei aggressivem, freilaufendem oder nicht kontrollierbarem Hund: Abstand halten und Spezialisten anfordern. ==== Warnzeichen ==== Ein Hund muss nicht knurren, um gefährlich zu sein. Achtung insbesondere bei: * Erstarren / sehr steifer Körperhaltung * fixierendem Blick * aufgestelltem Fell * Zurückziehen der Lefzen * Knurren oder Bellen * angelegten oder stark nach hinten gerichteten Ohren * Rückzug in eine Ecke * starkem Hecheln/Zittern unter Stress * hektischen Bewegungen '''Wichtig:''' Schwanzwedeln bedeutet nicht automatisch "freundlich". Ein Hund kann auch unter Anspannung oder Erregung mit dem Schwanz wedeln. === Grosstiere – Herdentiere === Beispiele: Rinder / Kühe, Schafe, Ziegen ==== '''Gefahren''' ==== * Tiere können durch die Anwesenheit von Fremden unruhig werden * Herdenbewegungen können Personen umrennen oder einklemmen * Muttertiere können bei Gefahr für Jungtiere aggressiv reagieren * Eingeschlossene oder bedrängte Tiere können unberechenbar reagieren * Fluchtwege der Tiere können den Zugang zum Patienten versperren. ==== '''Grundregel''' ==== * Nicht in eine Herde hineingehen * Abstand halten und den Besitzer bzw. eine fachkundige Person hinzuziehen === Grosstiere – Fluchttiere === Beispiele: Pferde, Esel und andere grosse Huftiere. ==== '''Gefahren''' ==== * Fluchtreaktion bei ungewohnten Geräuschen, Blaulicht, Sirenen oder hektischen Bewegungen * Ausschlagen mit den Hinterbeinen * Beissen * Umrennen * Aufsteigen oder Niederdrücken * Eingeklemmtwerden zwischen Tier und Hindernis * Panikreaktionen können auch auf andere Tiere übergreifen. ==== '''Besonders beachten''' ==== * Nicht direkt hinter einem Pferd stehen * Sind Muttertiere mit Nachkommen in der Nähe besteht besondere Gefahr durch Mutterinstinkte * Nicht zwischen Tier und Wand, Fahrzeug oder anderem Hindernis geraten * Keine hektischen Bewegungen * Sirenen und Blaulicht wenn möglich auf den letzten Anfahrtsmetern ausschalten * Rettungsmittel nicht ungeordnet in unmittelbarer Nähe des Tieres ablegen * Tier nicht selbst sichern oder bewegen, wenn dafür keine Ausbildung/ Erfahrung besteht ==== '''Grundregel:''' ==== * Eigenschutz * Erst den Patienten sichern, dann das Tier. Bei unklarer oder gefährlicher Tierlage Besitzer, Feuerwehr bzw. entsprechend ausgebildete Einsatzkräfte nachfordern. === Gifttiere === == Giftpflanzen == === Riesenbärklau === == Chemische Gefahrenstoffe == ''„Wenn Du es riechst, schmeckst oder es brennt – Du bist schon zu nah dran! Bei jedem Verdacht auf chemische Gefahren: Rückzug, Absperren, Zugluft schaffen, Feuerwehr nachfordern.“'' === Aufnahmewege für Gifte (Expositionswege) === Es gibt vier Hauptwege, wie chemische Stoffe in den Körper gelangen: # '''Inhalation (Einatmen):''' Aufnahme über die Atemwege (Nase, Mund, Luftröhre, Lunge). Die Lunge bietet eine riesige Oberfläche und führt Gase, Dämpfe und Stäube extrem schnell ins Blut. # '''Dermale Aufnahme (Haut):''' Viele Stoffe dringen durch die Haut (Perkutane Aufnahme) oder greifen sie direkt an. Die Haut ist kein undurchlässiges Paneel! # '''Orale Aufnahme (Verschlucken):''' Aufnahme über den Mund in den Magen-Darm-Trakt. # '''Injektion/Perkutane Verletzung:''' Aufnahme durch die Haut hindurch via Stich oder Schnitt (z. B. verunreinigte Spritzen oder Glassplitter). === Relevanz für den Ersthelfer-Eigenschutz === Für First Responder ist die Reihenfolge der Gefahr völlig anders als bei einem Unfall im Haushalt. Verschlucken spielt für den Helfer praktisch keine Rolle, es sei denn, man leckt sich versehentlich an verunreinigten Handschuhen ab. Die eigenschutzrelevanten Wege in absteigender Reihenfolge: * '''Über die Lunge''' ** Gase und Dämpfe sind unsichtbar, oft geruchlos (z. B. CO) und verbreiten sich rasend schnell. Man kann sie nicht „wegsehen“ oder „wegblockieren“. Ein paar Atemzüge können zum Kollaps oder Tod führen. * '''Über die Haut''' ** Flüssigkeiten (Säuren, Laugen, Lösungsmittel) können auf die Haut spritzen oder durch die Kleidung wandern. Gase können sich an der feuchten Haut oder in Schweiss lösen und in den Körper gelangen. Vielfach bemerkt man Verletzung dieser Art erst verzögert, gerad unter Stress nimmt man zum Beispiel ein Brennen von ätzender Säure auf der Haut erst wahr, wenn die Verletzung schon stark ausgedehnt oder tief ist. * '''In die Blutbahn''' ** Gefahr durch scharfe Gegenstände (Glasscherben von Chemikalienflaschen, Spritzen bei Drogennotfällen). * '''Über den Mund''' ** Nur relevant, wenn Helfer mit kontaminierten Händen essen, oder trinken. Oder beim Beatmen von einem kontaminierten Patienten ohne die Verwendung der Atemmaske. === Typische Gefahren an der Einsatzstelle === ==== Gase aus Verbrennungsprozessen (Motoren, Öfen, Brände) ==== * '''Kohlenmonoxid (CO):''' Geruchlos, farblos, bindet sich an das Hämoglobin viel stärker als der Sauerstoff und blockiert so den lebenswichtigen Gastransport des Sauerstoffs. Entsteht bei unvollständiger Verbrennung (Defekte Heizungen, laufende Motoren in Garagen, Brände). Schon geringe Konzentrationen führen zu Bewusstlosigkeit. * '''Kohlendioxid (CO<sub>2</sub>):''' Schwerer als Luft, sammelt sich in Kellern, Gruben oder Silos an. Verdrängt den Sauerstoff (Erstickungsgefahr), führt zu Atemnot und Herzrhythmusstörungen. ==== Landwirtschaftliche Gefahren (Silos, Güllegruben) ==== * '''Silogase / Gärgase:''' Beim Vergären von Silage entstehen giftige Gase. Besonders gefürchtet ist Stickstoffdioxid (NO<sub>2</sub>), das zu einem toxischen Lungenödem führt (Wirkung oft erst nach Stunden mit tödlichem Ausgang). Dazu kommt hohe CO<sub>2</sub>-Konzentration durch Fermentation. * '''Schwefelwasserstoff (H<sub>2</sub>S):''' Bei Gülle. Riecht anfangs nach faulen Eiern, betäubt aber sofort den Geruchssinn. Der Helfer wundert sich, warum es „nicht mehr stinkt“ – und bricht zusammen. ==== Haushaltschemikalien (Putzmittel, Laugen) ==== * '''Chlorgas (Cl<sub>2</sub>):''' Entsteht lebensgefährlich, wenn säurehaltige Reiniger (z. B. WC-Entkalker) mit chlorhaltigen Putzmitteln (z. B. Dan Klorix, Javellewasser) gemischt werden. Greift Lunge und Schleimhäute massiv an. * '''Laugen (Natronlauge etc.):''' In Abflussreiniger oder Reinigungsmittel in der Landwirtschaft und Nahrungsmittelindustrie. Führen zu schweren, oft schmerzlosen Verätzungen der Haut und Augen (Laugen verflüssigen Gewebe). ==== Industrielle Gefahren (Säuren, Laugen, Lösungsmittel) ==== * '''Säuren (Schwefelsäure, Salzsäure, Flusssäure):''' Schwere Verätzungen. ''Besonderheit Flusssäure:'' Zerstört Calcium im Blut und im Gewebe, kann schon über kleine Hautstellen tödlich wirken, schmerzt anfangs oft kaum. * '''Lösungsmittel (z. B. Benzin, Aceton,''' '''Farbverdünner):''' Entfetten die Haut, machen sie durchlässig für andere Gifte. Wirken narkotisierend (Schwindel, Bewusstlosigkeit) und sind oft schwer entflammbar bis explosiv. === Wie schützt man sich? === Als Firstresponder haben wir keine spezielle Chemikalienschutzausrüstung. Der Schutz muss daher primär über Distanz und das Verhalten erfolgen. ==== Das A-B-C der Gefahrenabwehr ==== * '''A - Abstand halten:''' Unbekannte Substanz? Nicht rangehen! Mindestabstände wahren. * '''B - Blicken und Beobachten:''' Gibt es Nebel, Dämpfe, tote Tiere, Gerüche? Liegen zerbrochene Kanister herum? * '''C - Chemieschutz anfordern:''' Wenn man es nicht eindeutig identifizieren kann, rückt die Feuerwehr an. Ein normaler Rettungsdienst leitet den Einsatz nur bis zum Eintreffen der Spezialisten! ==== Atemschutz ==== * '''FFP2/FFP3-Masken:''' Schützen nur gegen Partikel (Staub, Rauch), aber nicht gegen Gase und Dämpfe! Gegen Chlorgas oder CO ist eine FFP-Maske völlig nutzlos. * '''Atemschutzmaske mit Filter (z.B. ABEK-Filter):''' Ist üblicherweise nicht verfügbar. Schützt gegen bestimmte Gase, aber nicht gegen CO (dafür braucht es spezielle CO-Filter) und nicht vor Sauerstoffmangel. * '''Fazit:''' Der beste Atmungsschutz bei unbekannten Gasen ist Fenster und Türen zu öffnen (Querlüftung) und sich windabwärts zu positionieren. Bei Verdacht auf CO/CO<sub>2</sub> oder Silogase: Niemals ohne umluftunabhängigen Atemschutz (Pressluftatmer) in den Gefahrenbereich gehen! ==== Haut- und Körperschutz ==== * '''Handschuhe:''' Normale medizinische Untersuchungshandschuhe (Nitril) bieten nur minimalen Splitterschutz. Gegen Lösungsmittel oder starke Säuren können sie durchscheuern oder porös werden. Bei industriellen Einsätzen sind dicke Chemikalschutzhandschuhe notwendig. * '''Kleidung:''' Arbeitskleidung bieten keinen Schutz gegen flüssige Chemikalien (sie saugen sich voll und halten den Stoff direkt am Körper). Nassraum- oder Spritzschutzanzüge (aus Kunststoff) sind erforderlich. * '''Augenschutz:''' Schutzbrille zwingend bei allen Einsätzen mit Spritzgefahr (Säuren, Laugen, Chlor). Ein Augentrauma durch Chemikalien ist eine absolute Notfall-Situation. ==== Taktik: Windrichtung nutzen ==== * Gase und Dämpfe verhalten sich wie Rauch. Man muss sich immer windabwärts oder quer zum Wind aufhalten. Niemals im Wind stehen, da der Gefahrenstoff auf einen zugeweht wird. ==== Dekontamination ==== * '''Ausziehen:''' Kontaminierte Kleidung sofort ausziehen (vorsichtig, nicht über den Kopf ziehen, schneiden falls nötig). * '''Verdünnen - Spülen:''' Bei Kontakt mit Säuren, Laugen oder Reizgasen (Chlor) sofort und grossflächig mit viel Wasser spülen während mindestens 15-20 Minuten. * '''Nicht abtrocknen:''' Bei Säuren/Laugen nicht abtupfen, das reibt den Stoff nur tiefer in die Haut == Brandgase == Durch die Verbreitung von Kunststoffen (Isolierungen, Möbel, Kabel, Teppiche) in modernen Gebäuden hat sich das Brandgeschehen drastisch verändert. Der Rauch von heute ist eine hochkomplexe, chemische Todesfalle. Man spricht heute bei Bränden von der "Toxischen Trias" (CO, HCN, Phosgen/HCl). Die Exposition gegenüber Phosgen kann auch nach Stunden noch tödlich wirken. Das Betreten von verrauchten Bereichen ist für First Responder ohne umluftunabhängigen Atemschutz (Pressluftatmer) strengstens untersagt. === Die toxischen Brandgase im Detail === ==== Blausäure (Cyanwasserstoff - HCN) ==== * '''Herkunft:''' Entsteht bei der Verbrennung von stickstoffhaltigen Kunststoffen. Das betrifft fast alle modernen Möbel (Polyurethan-Schaum, wie er in Matratzen, Polstern und Teppichböden verwendet wird), aber auch Seide und Wolle. * '''Wirkung:''' HCN ist ein hochgradiges Zellgift. Es blockiert die Zellatmung. Das bedeutet: Der Sauerstoff ist zwar im Blut vorhanden (die Haut ist oft leuchtend rot!), kann aber von den Organen nicht mehr verwertet werden. Der Patient erstickt innerlich. * '''Gefahr:''' Blausäure ist extrem flüchtig, leichter als Luft und breitet sich rasend schnell aus. Schon geringe Konzentrationen führen bei ungeschützten Personen zu Schwindel, Bewusstlosigkeit und Herzstillstand. * '''Wichtig:''' Der typische Geruch nach "Bittermandeln" ist unzuverlässig! Etwa 20 bis 40 % der Menschen können Blausäure genetisch bedingt gar nicht riechen. ==== 2. Phosgen (Kohlenstoffchlorid - COCl<sub>2</sub>) ==== * '''Herkunft:''' Entsteht, wenn chlorhaltige Kunststoffe verbrennen. Der Klassiker ist '''PVC''' (Kabelisolierungen, Rohre, Fensterprofile, Bodenbeläge). Auch Kältemittel (Frigene) oder Lösungsmittel können unter Hitzeeinwirkung Phosgen bilden. * '''Wirkung:''' Phosgen ist ein Lungengift, es wurde im Ersten Weltkrieg als Giftgas eingesetzt. Es führt zu einem massiven, toxischen Lungenödem (Wasser in der Lunge). * '''Gefahr:''' Phosgen riecht bei niedrigen Dosen leicht nach "heuig" oder faulig, reizt anfangs aber kaum. Die tödliche Wirkung setzt oft mit einer Latenzzeit von 2 bis 24 Stunden ein. Der Helfer atmet es ein, hilft bei der Patientenversorgung, fühlt sich völlig fit, geht nach dem Einsatz nach Hause und bekommt nachts plötzlich keine Luft mehr und erstickt (vielleicht sogar im Schlaf). ==== Salzsäuregas (Chlorwasserstoff - HCl) ==== * '''Herkunft:''' Ebenfalls aus der Verbrennung von PVC und anderen chlorhaltigen Materialien. Es ist meist der Begleiter von Phosgen. * '''Wirkung:''' HCl ist ein stark ätzendes Gas. Es greift Schleimhäute, Augen und die Atemwege an. Es bildet in der Lunge Salzsäure, die das Gewebe zerstört. * '''Gefahr:''' Im Gegensatz zu Phosgen warnt HCl sich selbst. Es reizt extrem, führt zu heftigem Hustenreiz, Augenbrennen und Würgen. Die Gefahr hier ist, dass der Helfer durch den Schmerz panisch flieht, sich dabei verletzt oder – wenn er die Reizung ignoriert – schwere, dauerhafte Atemwegsschäden davonträgt. === Was bedeutet das für den Eigenschutz bei Bränden? === '''Der Mythos vom "nassen Tuch"''': Das in Filmen oft gezeigte Einatmen durch ein feuchtes Tuch schützt nicht vor Blausäure und Phosgen! Es filtert höchsts grobe Russpartikel. Gegen gasförmige Gifte ist es nutzlos, es vermittelt eine falsche Sicherheit. '''FFP-Masken sind bei Bränden wertlos:''' Eine FFP2- oder FFP3-Maske filtert Partikel (Russ). Sie hat keinen Aktivkohlefilter und bietet keinen Schutz gegen CO, HCN, Phosgen oder HCl. Wer mit einer FFP-Maske in verrauchten Räumen geht, vergiftet sich genauso wie ohne. '''Die einzige Schutzmöglichkeit - Pressluftatmer (PA):''' Jeder Eindringen in eine verrauchte Umgebung (auch "nur" um schnell eine Person zu ziehen) erfordert einen umluftunabhängigen Atemschutz (Pressluftatmer). Das Finden und Evakuieren von Personen aus Bereichen mit Atemgiften ist Aufgabe der Feuerwehr. '''Eigenschutz bei der Patientenversorgung:''' Selbst wenn der Patient schon aus dem Rauch gerettet wurde und im Freien liegt, ist er eine Gefahrenquelle. In seinen Kleidern, Haaren und vor allem in seinem Atem (er atmet die Gifte wieder aus) befinden sich HCN, Phosgen und CO. * '''Massnahme:''' Grosser Abstand zum Gesicht des Patienten beim ersten Ansprechen. Patient zügig entkleiden (Kleidung in Plastiksack werfen) und den Patienten selbst mit Sauerstoff beatmen/versorgen, damit er die Gifte ausatmet und die Umgebung nicht weiter belastet. == Elektrizität == == Explosive / brennbare Stoffe == === Treibstoffe === === Gas === liwiouwcpmjw2p3toby3r1wap2w95p8 Gitarre: CAGED-Stammtöne - Zweiter Fingersatz 0 123115 1091116 1091000 2026-09-19T17:54:01Z Mjchael 2222 /* Sascha (Dm-Form) */ 1091116 wikitext text/x-wiki [[Gitarre: CAGED-Stammtöne - Erster Fingersatz]] Verkleinern einer übergroßen Seite == Zweiter Fingersatz == :[[Datei:Scala 6_71-2_34.svg]] Zuerst suchen wir uns in der C-Dur-Tonleiter überall den zweiten Fingersatz heraus. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] Zur leichteren Orientierung wird die Grafik bei jeder neuen Melodie wiederholt. === Rondeau (Auszug) === Die eintaktige Sequenzen wurde aus einem Rondeau von J.S. Bach entnommen. Der Grundton C, welcher im letzten Takt rot eingefärbt wurde, wird mit dem kleinen Finger gegriffen. Am Anfang des Griffbrettes brauchen wir den zweiten Fingersatz nicht vollständig. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> In der A-(Bb-)Form müssen wir den Lagewechsel zwischen der G- und H-Saite beachten. Übrigens werden hier die Töne in der englischen Form angegeben. (Bb-Form und der Ton B statt des deutschen H.) <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (A-, Bb-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-3 d e f e d c e-4 d-2 c d e d c b d c b c d c b a c b a b c d-1 b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Leite dir den Grundton C vom Barré im 8. Bund ab, oder suche das A im 5. Bund (hier grün hervorgehoben). <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (G-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b \once \override NoteHead #'color = #green a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Der kleine Finger des C-Barré im 8. Bund in der E- bzw. F-Form gibt gleichzeitig das C des zweiten Fingersatz an. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (E- F-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Für den Grundton C müssen wir uns die D-Form gar nicht so genau ins Gedächtnis rufen, wenn uns die C-Form viel vertrauter ist. Diese hohe Lage ist für E-Gitarristen oder Gitarren mit Cutaway gedacht. Auf der Konzertgitarre ist die sehr hohe Lage schlecht zu spielen. Gehe ggf. einen Kompromiss ein, und spiele diese hohe Saitenlage ein paar Bünde tiefer als Übung nur für den Fingersatz aber nicht für die Notennamen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Noten über dem hohen C (der mit zwei Hilfslinien) wird dir seltener begegnen, da in dem Fall bevorzugt die Noten nach unten oktaviert werden. (Beachte die 8 im Notensystem.) Bei den weiteren Übungen werden jedoch die Versionen mit den vielen Hilfslinien angezeigt. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { \ottava #1 e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Mit der C-Form in den ersten drei Bünden im Hinterkopf ist der 12. Bund leicht zu bewältigen. Wieder eine Übung, die weniger für Konzertgitarren geeignet ist. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> === "Das häßliche Entlein" oder "Alle meine Entchen"<ref>Anspielung auf ein Märchen der Gebrüder Grimm nebst einem bekannten deutschen Kinderlied.</ref> in A-Moll === Die vorherige Übung war in Dur, und hier verwenden wir ein und den selben Fingersatz in Moll. Wie du siehst und hörst, lässt sich ein Fingersatz oder ein Pattern nicht eindeutig einer einzigen Tonart zuordnen. Der Schlusston oder der Schlussakkord (hier der Ton A bzw. der Akkord Am) bestimmt die Tonart. Der Grundton A ist hier die Sexte (6) des zugrunde liegenden C-Major-Pattern. Es bleibt dir überlassen, ob du zur Orientierung lieber den Grundton A (grün) bestimmst, oder das C aus dem Karré (rot). Wenn in einer Tabulatur über einer Ziffer zwei Notenhälse stehen, so ist das ein Zeichen für eine halbe Note, die zwei Schläge dauert. Da dieses für viele Gitarristen sehr ungewöhnlich aussieht, verzichtet man oft auf Taktstriche in der Tabulatur. In dem Fall lässt sich die Tondauer allein an den Notenwerten ablesen. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-/Am-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Der Lagewechsel zwischen der G- und H-Saite ist hier leicht zu bewältigen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Gm-/Bb-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d-1 e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2-4 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Auch hier ist es wieder einfacher das A (grün) zu suchen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Em-/G-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (E- / F-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Statt lange nach dem Grundton der D-Form zu suchen, erinneren wir uns kurz, wo der Grundton C auf der H- (B-)Saite sein muß (13. Bund). <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Die Moldau (Hauptmotiv) === Die Abfolge der Töne der folgenden Übung unterscheidet sich kaum von der vorhergehenden. Doch mit dem anderen Rhythmus haben wir das Hauptmotiv von der Komposition {{Youtube-Suche|Smetana+Die+Moldau|"Die Moldau" von Bedrich Smetana}} (ohne Auftakt und rhythmisch vereinfacht). Auch wenn es hier (wie in der 7. Übung) nur die Molltonleiter rauf und runter geht, merkst du hoffentlich, wieviel der Takt und Rhythmus an der Wirkung ausmacht. Wenn du später mal meinst, deine Improvisationen hören sich langweilig an, dann solltest du dich mehr mit Rhythmus beschäftigen. Dazu kannst du dich auch ein wenig mit Schlagmustern beschäftigen. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Am-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #2 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Warum die Form hier Gm-Form genannt wird, das wird dir in den nachfolgenden Lektionen klarer werden. Auf Fingersatzangaben können wir hier verzichten, wenn du vorher "Alle meine Entchen in Am" gespielt hast. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Bb- /Gm-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Hier bietet sich besonders an, den Am-Barré zur Orientierung zu verwenden. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Em-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Auch hier gibt dir der kleine Finger des Am-Barrés den Grundton an. Du kannst dir die Dm-Form aber auch über die F-Form (C im 8. Bund) ableiten. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (F- /Dm-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Zähle vom C (H-Saite, 13. Bund) rückwärts zum A. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D- /Bm7-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Hier wird die erste Übung in den 12. Bund verschoben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Sascha (vereinfacht) === [[Liederbuch/ Sascha|Sascha]] (auch bekannt unter "Sascha geizte mit den Worten" oder "Sascha liebt nicht große Worte") ist in beliebtes Kinder-, Jugend- und Pfadfinderlied. ==== Sascha (Am-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 0 "2" darkgreen ) (place-fret 4 2 "3" darkgrey ) (place-fret 4 3 "4" yellow3 ) (place-fret 5 0 "6" darkgreen ) (place-fret 5 2 "j7" yellow3 ) (place-fret 5 3 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Das Lied startet mit dem Ton E. Man könntetheoretisch in der zweiten Lage spielen und mit dem Zeigefinger starten. Doch üblicher ist Zeigefinger erster Bund, Mittelfinger zweiter Bund, Ringfinger 3. Bund. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #2 % \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-2 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Gm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 2 3 2 darkgreen ) (place-fret 2 5 3 darkgrey ) (place-fret 2 6 4 yellow3 ) (place-fret 3 2 6 darkgreen ) (place-fret 3 4 "j7" yellow3 ) (place-fret 3 5 1 black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Das Lied "Sascha" wird hier auf der G- und H-Saite gespielt. Wir müssen uns Strategien zurechtlegen, welchen Fingersatz wir am besten für die Lagewechsel verwenden. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Bb- /Gm7-Form) in Am" subtitle="Sascha (vereinfacht)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-4 e e c-3 e e e c | b d-3 c-4 b c a a a | } \repeat volta 2 { f'-4 f f r e e e r | e d c-4 b a a a r | } \set TabStaff.minimumFret = #5 <c e a>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 80 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> Auf den anderen Saitenlagen geht die Melodie einfacher von der Hand. ==== Sascha (Em-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 5 5 "2" darkgreen ) (place-fret 5 7 "3" darkgrey ) (place-fret 5 8 "4" yellow3 ) (place-fret 6 5 "6" darkgreen ) (place-fret 6 7 "j7" yellow3 ) (place-fret 6 8 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Den Grundton A leiten wir wieder vom Am-Barré im 5. Bund ab. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (G- /Em-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a c e a>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Dm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 3 7 "2" darkgreen ) (place-fret 3 9 "3" darkgrey ) (place-fret 3 10 "4" yellow3 ) (place-fret 4 7 "6" darkgreen ) (place-fret 4 9 "j7" yellow3 ) (place-fret 4 10 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Den Grundton A leiten wir wieder vom kleinen Finger des Am-Barré im 5. Bund ab. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (F- /Dm-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a' c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Dm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 1 10 "2" darkgreen ) (place-fret 1 12 "3" darkgrey ) (place-fret 1 13 "4" yellow3 ) (place-fret 2 10 "6" darkgreen ) (place-fret 2 12 "j7" yellow3 ) (place-fret 2 13 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Wenn im 12. Bund der B-Saite der Ton B ist, dann ist 2 Bünde vorher das A. Das Lied beginnt mit E, also 12. Bund E-Saite <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D- /Bm7-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #10 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a, e' a c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Am-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 4) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 12 "2" darkgreen ) (place-fret 4 14 "3" darkgrey ) (place-fret 4 15 "4" yellow3 ) (place-fret 5 12 "6" darkgreen ) (place-fret 5 14 "j7" yellow3 ) (place-fret 5 15 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Die erste Übung wird in den 12. Bund verschoben. Grundton A = A-Saite 12. Bund. Von da aus zählst du bis zum E. ;A B C D E Klassik-Gitarristen rücken ggf. ein paar Bünde zurück. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a >1^\markup { \bold {(A5)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Baustelle ==== === Asturias (Ausschnitt) === <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 1 5 2 darkgreen ) (place-fret 1 7 3 darkgrey ) (place-fret 1 8 4 yellow3 ) (place-fret 2 5 6 darkgreen ) (place-fret 2 7 "j7" yellow3 ) (place-fret 2 8 1 black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Das ganze Stück Asturias ist ein Meisterstück. Doch es mag dich vielleicht freuen, dass es gar nicht mehr lange dauert, bis du zumindest ein kleines Vorzeigestück mit den ersten Takten des Stückes kannst. Dies hier ist schon einmal eine Vorübung. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Dur bzw. Bm-Form) in Em" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key e \minor \repeat volta 2 \relative c'{ e8 b' c a b g | e8 b' c a b g | e8 b' c a b g | a fis g a fis g^\markup {2x} | } \set TabStaff.minimumFret = #0 <e, b, e g b e'>2.^\markup { \bold {(Em)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> 7jp99oz26wqqljvt2r1p2deop93azad 1091127 1091116 2026-09-20T10:55:31Z Mjchael 2222 /* Asturias (Ausschnitt) */ 1091127 wikitext text/x-wiki [[Gitarre: CAGED-Stammtöne - Erster Fingersatz]] Verkleinern einer übergroßen Seite == Zweiter Fingersatz == :[[Datei:Scala 6_71-2_34.svg]] Zuerst suchen wir uns in der C-Dur-Tonleiter überall den zweiten Fingersatz heraus. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] Zur leichteren Orientierung wird die Grafik bei jeder neuen Melodie wiederholt. === Rondeau (Auszug) === Die eintaktige Sequenzen wurde aus einem Rondeau von J.S. Bach entnommen. Der Grundton C, welcher im letzten Takt rot eingefärbt wurde, wird mit dem kleinen Finger gegriffen. Am Anfang des Griffbrettes brauchen wir den zweiten Fingersatz nicht vollständig. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> In der A-(Bb-)Form müssen wir den Lagewechsel zwischen der G- und H-Saite beachten. Übrigens werden hier die Töne in der englischen Form angegeben. (Bb-Form und der Ton B statt des deutschen H.) <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (A-, Bb-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-3 d e f e d c e-4 d-2 c d e d c b d c b c d c b a c b a b c d-1 b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Leite dir den Grundton C vom Barré im 8. Bund ab, oder suche das A im 5. Bund (hier grün hervorgehoben). <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (G-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b \once \override NoteHead #'color = #green a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Der kleine Finger des C-Barré im 8. Bund in der E- bzw. F-Form gibt gleichzeitig das C des zweiten Fingersatz an. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (E- F-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Für den Grundton C müssen wir uns die D-Form gar nicht so genau ins Gedächtnis rufen, wenn uns die C-Form viel vertrauter ist. Diese hohe Lage ist für E-Gitarristen oder Gitarren mit Cutaway gedacht. Auf der Konzertgitarre ist die sehr hohe Lage schlecht zu spielen. Gehe ggf. einen Kompromiss ein, und spiele diese hohe Saitenlage ein paar Bünde tiefer als Übung nur für den Fingersatz aber nicht für die Notennamen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Noten über dem hohen C (der mit zwei Hilfslinien) wird dir seltener begegnen, da in dem Fall bevorzugt die Noten nach unten oktaviert werden. (Beachte die 8 im Notensystem.) Bei den weiteren Übungen werden jedoch die Versionen mit den vielen Hilfslinien angezeigt. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { \ottava #1 e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Mit der C-Form in den ersten drei Bünden im Hinterkopf ist der 12. Bund leicht zu bewältigen. Wieder eine Übung, die weniger für Konzertgitarren geeignet ist. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> === "Das häßliche Entlein" oder "Alle meine Entchen"<ref>Anspielung auf ein Märchen der Gebrüder Grimm nebst einem bekannten deutschen Kinderlied.</ref> in A-Moll === Die vorherige Übung war in Dur, und hier verwenden wir ein und den selben Fingersatz in Moll. Wie du siehst und hörst, lässt sich ein Fingersatz oder ein Pattern nicht eindeutig einer einzigen Tonart zuordnen. Der Schlusston oder der Schlussakkord (hier der Ton A bzw. der Akkord Am) bestimmt die Tonart. Der Grundton A ist hier die Sexte (6) des zugrunde liegenden C-Major-Pattern. Es bleibt dir überlassen, ob du zur Orientierung lieber den Grundton A (grün) bestimmst, oder das C aus dem Karré (rot). Wenn in einer Tabulatur über einer Ziffer zwei Notenhälse stehen, so ist das ein Zeichen für eine halbe Note, die zwei Schläge dauert. Da dieses für viele Gitarristen sehr ungewöhnlich aussieht, verzichtet man oft auf Taktstriche in der Tabulatur. In dem Fall lässt sich die Tondauer allein an den Notenwerten ablesen. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-/Am-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Der Lagewechsel zwischen der G- und H-Saite ist hier leicht zu bewältigen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Gm-/Bb-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d-1 e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2-4 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Auch hier ist es wieder einfacher das A (grün) zu suchen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Em-/G-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (E- / F-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Statt lange nach dem Grundton der D-Form zu suchen, erinneren wir uns kurz, wo der Grundton C auf der H- (B-)Saite sein muß (13. Bund). <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Die Moldau (Hauptmotiv) === Die Abfolge der Töne der folgenden Übung unterscheidet sich kaum von der vorhergehenden. Doch mit dem anderen Rhythmus haben wir das Hauptmotiv von der Komposition {{Youtube-Suche|Smetana+Die+Moldau|"Die Moldau" von Bedrich Smetana}} (ohne Auftakt und rhythmisch vereinfacht). Auch wenn es hier (wie in der 7. Übung) nur die Molltonleiter rauf und runter geht, merkst du hoffentlich, wieviel der Takt und Rhythmus an der Wirkung ausmacht. Wenn du später mal meinst, deine Improvisationen hören sich langweilig an, dann solltest du dich mehr mit Rhythmus beschäftigen. Dazu kannst du dich auch ein wenig mit Schlagmustern beschäftigen. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Am-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #2 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Warum die Form hier Gm-Form genannt wird, das wird dir in den nachfolgenden Lektionen klarer werden. Auf Fingersatzangaben können wir hier verzichten, wenn du vorher "Alle meine Entchen in Am" gespielt hast. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Bb- /Gm-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Hier bietet sich besonders an, den Am-Barré zur Orientierung zu verwenden. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Em-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Auch hier gibt dir der kleine Finger des Am-Barrés den Grundton an. Du kannst dir die Dm-Form aber auch über die F-Form (C im 8. Bund) ableiten. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (F- /Dm-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Zähle vom C (H-Saite, 13. Bund) rückwärts zum A. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D- /Bm7-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Hier wird die erste Übung in den 12. Bund verschoben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Sascha (vereinfacht) === [[Liederbuch/ Sascha|Sascha]] (auch bekannt unter "Sascha geizte mit den Worten" oder "Sascha liebt nicht große Worte") ist in beliebtes Kinder-, Jugend- und Pfadfinderlied. ==== Sascha (Am-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 0 "2" darkgreen ) (place-fret 4 2 "3" darkgrey ) (place-fret 4 3 "4" yellow3 ) (place-fret 5 0 "6" darkgreen ) (place-fret 5 2 "j7" yellow3 ) (place-fret 5 3 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Das Lied startet mit dem Ton E. Man könntetheoretisch in der zweiten Lage spielen und mit dem Zeigefinger starten. Doch üblicher ist Zeigefinger erster Bund, Mittelfinger zweiter Bund, Ringfinger 3. Bund. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #2 % \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-2 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Gm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 2 3 2 darkgreen ) (place-fret 2 5 3 darkgrey ) (place-fret 2 6 4 yellow3 ) (place-fret 3 2 6 darkgreen ) (place-fret 3 4 "j7" yellow3 ) (place-fret 3 5 1 black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Das Lied "Sascha" wird hier auf der G- und H-Saite gespielt. Wir müssen uns Strategien zurechtlegen, welchen Fingersatz wir am besten für die Lagewechsel verwenden. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Bb- /Gm7-Form) in Am" subtitle="Sascha (vereinfacht)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-4 e e c-3 e e e c | b d-3 c-4 b c a a a | } \repeat volta 2 { f'-4 f f r e e e r | e d c-4 b a a a r | } \set TabStaff.minimumFret = #5 <c e a>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 80 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> Auf den anderen Saitenlagen geht die Melodie einfacher von der Hand. ==== Sascha (Em-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 5 5 "2" darkgreen ) (place-fret 5 7 "3" darkgrey ) (place-fret 5 8 "4" yellow3 ) (place-fret 6 5 "6" darkgreen ) (place-fret 6 7 "j7" yellow3 ) (place-fret 6 8 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Den Grundton A leiten wir wieder vom Am-Barré im 5. Bund ab. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (G- /Em-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a c e a>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Dm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 3 7 "2" darkgreen ) (place-fret 3 9 "3" darkgrey ) (place-fret 3 10 "4" yellow3 ) (place-fret 4 7 "6" darkgreen ) (place-fret 4 9 "j7" yellow3 ) (place-fret 4 10 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Den Grundton A leiten wir wieder vom kleinen Finger des Am-Barré im 5. Bund ab. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (F- /Dm-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a' c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Dm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 1 10 "2" darkgreen ) (place-fret 1 12 "3" darkgrey ) (place-fret 1 13 "4" yellow3 ) (place-fret 2 10 "6" darkgreen ) (place-fret 2 12 "j7" yellow3 ) (place-fret 2 13 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Wenn im 12. Bund der B-Saite der Ton B ist, dann ist 2 Bünde vorher das A. Das Lied beginnt mit E, also 12. Bund E-Saite <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D- /Bm7-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #10 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a, e' a c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Am-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 4) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 12 "2" darkgreen ) (place-fret 4 14 "3" darkgrey ) (place-fret 4 15 "4" yellow3 ) (place-fret 5 12 "6" darkgreen ) (place-fret 5 14 "j7" yellow3 ) (place-fret 5 15 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Die erste Übung wird in den 12. Bund verschoben. Grundton A = A-Saite 12. Bund. Von da aus zählst du bis zum E. ;A B C D E Klassik-Gitarristen rücken ggf. ein paar Bünde zurück. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a >1^\markup { \bold {(A5)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Baustelle ==== === Asturias (Ausschnitt) === Das ganze Stück Asturias ist ein Meisterstück. Doch es mag dich vielleicht freuen, dass es gar nicht mehr lange dauert, bis du zumindest die ersten Takte als kleines Vorzeigestück spielen kannst. Dies hier ist schon einmal eine Vorübung. Es gibt auch eine einfache Version für Anfänger im Notenlesen. • [[Gitarre: Notenlesen - Asturias-einfach|Asturias - vereinfacht]] (incl. Tabs) ==== Asturias - Am-Form (offen) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 0 "D" darkgreen ) (place-fret 4 2 "E" darkgrey ) (place-fret 4 3 "F" yellow3 ) (place-fret 5 0 "A" darkgreen ) (place-fret 5 2 "B" yellow3 ) (place-fret 5 3 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Vergiss nicht, neben dem Fingersatz auch die Notennamen zu üben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Am-Form - offen) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c{ a8 e'-2 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 <a, e' a c' e >2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Asturias - Gm-Form ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 2 3 "D" darkgreen ) (place-fret 2 5 "E" darkgrey ) (place-fret 2 6 "F" yellow3 ) (place-fret 3 2 "A" darkgreen ) (place-fret 3 4 "B" yellow3 ) (place-fret 3 5 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Vergiss nicht, neben dem Fingersatz auch die Notennamen zu üben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Gm-Form) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c'{ a8 e'-3 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 < c' e' a'>2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Baustelle=== fgb9upnq4nvtvewevz9dwjfkp4tithk 1091128 1091127 2026-09-20T10:59:37Z Mjchael 2222 /* Baustelle */ 1091128 wikitext text/x-wiki [[Gitarre: CAGED-Stammtöne - Erster Fingersatz]] Verkleinern einer übergroßen Seite == Zweiter Fingersatz == :[[Datei:Scala 6_71-2_34.svg]] Zuerst suchen wir uns in der C-Dur-Tonleiter überall den zweiten Fingersatz heraus. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] Zur leichteren Orientierung wird die Grafik bei jeder neuen Melodie wiederholt. === Rondeau (Auszug) === Die eintaktige Sequenzen wurde aus einem Rondeau von J.S. Bach entnommen. Der Grundton C, welcher im letzten Takt rot eingefärbt wurde, wird mit dem kleinen Finger gegriffen. Am Anfang des Griffbrettes brauchen wir den zweiten Fingersatz nicht vollständig. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> In der A-(Bb-)Form müssen wir den Lagewechsel zwischen der G- und H-Saite beachten. Übrigens werden hier die Töne in der englischen Form angegeben. (Bb-Form und der Ton B statt des deutschen H.) <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (A-, Bb-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-3 d e f e d c e-4 d-2 c d e d c b d c b c d c b a c b a b c d-1 b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Leite dir den Grundton C vom Barré im 8. Bund ab, oder suche das A im 5. Bund (hier grün hervorgehoben). <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (G-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b \once \override NoteHead #'color = #green a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Der kleine Finger des C-Barré im 8. Bund in der E- bzw. F-Form gibt gleichzeitig das C des zweiten Fingersatz an. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (E- F-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Für den Grundton C müssen wir uns die D-Form gar nicht so genau ins Gedächtnis rufen, wenn uns die C-Form viel vertrauter ist. Diese hohe Lage ist für E-Gitarristen oder Gitarren mit Cutaway gedacht. Auf der Konzertgitarre ist die sehr hohe Lage schlecht zu spielen. Gehe ggf. einen Kompromiss ein, und spiele diese hohe Saitenlage ein paar Bünde tiefer als Übung nur für den Fingersatz aber nicht für die Notennamen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Noten über dem hohen C (der mit zwei Hilfslinien) wird dir seltener begegnen, da in dem Fall bevorzugt die Noten nach unten oktaviert werden. (Beachte die 8 im Notensystem.) Bei den weiteren Übungen werden jedoch die Versionen mit den vielen Hilfslinien angezeigt. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { \ottava #1 e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Mit der C-Form in den ersten drei Bünden im Hinterkopf ist der 12. Bund leicht zu bewältigen. Wieder eine Übung, die weniger für Konzertgitarren geeignet ist. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> === "Das häßliche Entlein" oder "Alle meine Entchen"<ref>Anspielung auf ein Märchen der Gebrüder Grimm nebst einem bekannten deutschen Kinderlied.</ref> in A-Moll === Die vorherige Übung war in Dur, und hier verwenden wir ein und den selben Fingersatz in Moll. Wie du siehst und hörst, lässt sich ein Fingersatz oder ein Pattern nicht eindeutig einer einzigen Tonart zuordnen. Der Schlusston oder der Schlussakkord (hier der Ton A bzw. der Akkord Am) bestimmt die Tonart. Der Grundton A ist hier die Sexte (6) des zugrunde liegenden C-Major-Pattern. Es bleibt dir überlassen, ob du zur Orientierung lieber den Grundton A (grün) bestimmst, oder das C aus dem Karré (rot). Wenn in einer Tabulatur über einer Ziffer zwei Notenhälse stehen, so ist das ein Zeichen für eine halbe Note, die zwei Schläge dauert. Da dieses für viele Gitarristen sehr ungewöhnlich aussieht, verzichtet man oft auf Taktstriche in der Tabulatur. In dem Fall lässt sich die Tondauer allein an den Notenwerten ablesen. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-/Am-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Der Lagewechsel zwischen der G- und H-Saite ist hier leicht zu bewältigen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Gm-/Bb-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d-1 e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2-4 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Auch hier ist es wieder einfacher das A (grün) zu suchen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Em-/G-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (E- / F-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Statt lange nach dem Grundton der D-Form zu suchen, erinneren wir uns kurz, wo der Grundton C auf der H- (B-)Saite sein muß (13. Bund). <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Die Moldau (Hauptmotiv) === Die Abfolge der Töne der folgenden Übung unterscheidet sich kaum von der vorhergehenden. Doch mit dem anderen Rhythmus haben wir das Hauptmotiv von der Komposition {{Youtube-Suche|Smetana+Die+Moldau|"Die Moldau" von Bedrich Smetana}} (ohne Auftakt und rhythmisch vereinfacht). Auch wenn es hier (wie in der 7. Übung) nur die Molltonleiter rauf und runter geht, merkst du hoffentlich, wieviel der Takt und Rhythmus an der Wirkung ausmacht. Wenn du später mal meinst, deine Improvisationen hören sich langweilig an, dann solltest du dich mehr mit Rhythmus beschäftigen. Dazu kannst du dich auch ein wenig mit Schlagmustern beschäftigen. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Am-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #2 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Warum die Form hier Gm-Form genannt wird, das wird dir in den nachfolgenden Lektionen klarer werden. Auf Fingersatzangaben können wir hier verzichten, wenn du vorher "Alle meine Entchen in Am" gespielt hast. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Bb- /Gm-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Hier bietet sich besonders an, den Am-Barré zur Orientierung zu verwenden. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Em-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Auch hier gibt dir der kleine Finger des Am-Barrés den Grundton an. Du kannst dir die Dm-Form aber auch über die F-Form (C im 8. Bund) ableiten. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (F- /Dm-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Zähle vom C (H-Saite, 13. Bund) rückwärts zum A. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D- /Bm7-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Hier wird die erste Übung in den 12. Bund verschoben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Sascha (vereinfacht) === [[Liederbuch/ Sascha|Sascha]] (auch bekannt unter "Sascha geizte mit den Worten" oder "Sascha liebt nicht große Worte") ist in beliebtes Kinder-, Jugend- und Pfadfinderlied. ==== Sascha (Am-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 0 "2" darkgreen ) (place-fret 4 2 "3" darkgrey ) (place-fret 4 3 "4" yellow3 ) (place-fret 5 0 "6" darkgreen ) (place-fret 5 2 "j7" yellow3 ) (place-fret 5 3 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Das Lied startet mit dem Ton E. Man könntetheoretisch in der zweiten Lage spielen und mit dem Zeigefinger starten. Doch üblicher ist Zeigefinger erster Bund, Mittelfinger zweiter Bund, Ringfinger 3. Bund. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #2 % \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-2 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Gm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 2 3 2 darkgreen ) (place-fret 2 5 3 darkgrey ) (place-fret 2 6 4 yellow3 ) (place-fret 3 2 6 darkgreen ) (place-fret 3 4 "j7" yellow3 ) (place-fret 3 5 1 black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Das Lied "Sascha" wird hier auf der G- und H-Saite gespielt. Wir müssen uns Strategien zurechtlegen, welchen Fingersatz wir am besten für die Lagewechsel verwenden. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Bb- /Gm7-Form) in Am" subtitle="Sascha (vereinfacht)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-4 e e c-3 e e e c | b d-3 c-4 b c a a a | } \repeat volta 2 { f'-4 f f r e e e r | e d c-4 b a a a r | } \set TabStaff.minimumFret = #5 <c e a>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 80 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> Auf den anderen Saitenlagen geht die Melodie einfacher von der Hand. ==== Sascha (Em-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 5 5 "2" darkgreen ) (place-fret 5 7 "3" darkgrey ) (place-fret 5 8 "4" yellow3 ) (place-fret 6 5 "6" darkgreen ) (place-fret 6 7 "j7" yellow3 ) (place-fret 6 8 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Den Grundton A leiten wir wieder vom Am-Barré im 5. Bund ab. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (G- /Em-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a c e a>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Dm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 3 7 "2" darkgreen ) (place-fret 3 9 "3" darkgrey ) (place-fret 3 10 "4" yellow3 ) (place-fret 4 7 "6" darkgreen ) (place-fret 4 9 "j7" yellow3 ) (place-fret 4 10 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Den Grundton A leiten wir wieder vom kleinen Finger des Am-Barré im 5. Bund ab. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (F- /Dm-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a' c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Dm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 1 10 "2" darkgreen ) (place-fret 1 12 "3" darkgrey ) (place-fret 1 13 "4" yellow3 ) (place-fret 2 10 "6" darkgreen ) (place-fret 2 12 "j7" yellow3 ) (place-fret 2 13 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Wenn im 12. Bund der B-Saite der Ton B ist, dann ist 2 Bünde vorher das A. Das Lied beginnt mit E, also 12. Bund E-Saite <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D- /Bm7-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #10 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a, e' a c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Am-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 4) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 12 "2" darkgreen ) (place-fret 4 14 "3" darkgrey ) (place-fret 4 15 "4" yellow3 ) (place-fret 5 12 "6" darkgreen ) (place-fret 5 14 "j7" yellow3 ) (place-fret 5 15 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Die erste Übung wird in den 12. Bund verschoben. Grundton A = A-Saite 12. Bund. Von da aus zählst du bis zum E. ;A B C D E Klassik-Gitarristen rücken ggf. ein paar Bünde zurück. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a >1^\markup { \bold {(A5)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Baustelle ==== === Asturias (Ausschnitt) === Das ganze Stück Asturias ist ein Meisterstück. Doch es mag dich vielleicht freuen, dass es gar nicht mehr lange dauert, bis du zumindest die ersten Takte als kleines Vorzeigestück spielen kannst. Dies hier ist schon einmal eine Vorübung. Es gibt auch eine einfache Version für Anfänger im Notenlesen. • [[Gitarre: Notenlesen - Asturias-einfach|Asturias - vereinfacht]] (incl. Tabs) ==== Asturias - Am-Form (offen) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 0 "D" darkgreen ) (place-fret 4 2 "E" darkgrey ) (place-fret 4 3 "F" yellow3 ) (place-fret 5 0 "A" darkgreen ) (place-fret 5 2 "B" yellow3 ) (place-fret 5 3 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Vergiss nicht, neben dem Fingersatz auch die Notennamen zu üben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Am-Form - offen) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c{ a8 e'-2 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 <a, e' a c' e >2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Asturias - Gm-Form ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 2 3 "D" darkgreen ) (place-fret 2 5 "E" darkgrey ) (place-fret 2 6 "F" yellow3 ) (place-fret 3 2 "A" darkgreen ) (place-fret 3 4 "B" yellow3 ) (place-fret 3 5 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Vergiss nicht, neben dem Fingersatz auch die Notennamen zu üben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Gm-Form) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c'{ a8 e'-3 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 < c' e' a'>2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Asturias - Em-Form ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 5 5 "D" darkgreen ) (place-fret 5 7 "E" darkgrey ) (place-fret 5 8 "F" yellow3 ) (place-fret 6 5 "A" darkgreen ) (place-fret 6 7 "B" yellow3 ) (place-fret 6 8 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Em-Form) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c{ a8 e'-3 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 < a, e a c' e' a'>2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Baustelle=== gdqz8jiiyds8mqu8eovrsnjwh60r565 1091129 1091128 2026-09-20T11:25:14Z Mjchael 2222 /* Baustelle */ 1091129 wikitext text/x-wiki [[Gitarre: CAGED-Stammtöne - Erster Fingersatz]] Verkleinern einer übergroßen Seite == Zweiter Fingersatz == :[[Datei:Scala 6_71-2_34.svg]] Zuerst suchen wir uns in der C-Dur-Tonleiter überall den zweiten Fingersatz heraus. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] Zur leichteren Orientierung wird die Grafik bei jeder neuen Melodie wiederholt. === Rondeau (Auszug) === Die eintaktige Sequenzen wurde aus einem Rondeau von J.S. Bach entnommen. Der Grundton C, welcher im letzten Takt rot eingefärbt wurde, wird mit dem kleinen Finger gegriffen. Am Anfang des Griffbrettes brauchen wir den zweiten Fingersatz nicht vollständig. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> In der A-(Bb-)Form müssen wir den Lagewechsel zwischen der G- und H-Saite beachten. Übrigens werden hier die Töne in der englischen Form angegeben. (Bb-Form und der Ton B statt des deutschen H.) <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (A-, Bb-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-3 d e f e d c e-4 d-2 c d e d c b d c b c d c b a c b a b c d-1 b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Leite dir den Grundton C vom Barré im 8. Bund ab, oder suche das A im 5. Bund (hier grün hervorgehoben). <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (G-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b \once \override NoteHead #'color = #green a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Der kleine Finger des C-Barré im 8. Bund in der E- bzw. F-Form gibt gleichzeitig das C des zweiten Fingersatz an. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (E- F-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Für den Grundton C müssen wir uns die D-Form gar nicht so genau ins Gedächtnis rufen, wenn uns die C-Form viel vertrauter ist. Diese hohe Lage ist für E-Gitarristen oder Gitarren mit Cutaway gedacht. Auf der Konzertgitarre ist die sehr hohe Lage schlecht zu spielen. Gehe ggf. einen Kompromiss ein, und spiele diese hohe Saitenlage ein paar Bünde tiefer als Übung nur für den Fingersatz aber nicht für die Notennamen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Noten über dem hohen C (der mit zwei Hilfslinien) wird dir seltener begegnen, da in dem Fall bevorzugt die Noten nach unten oktaviert werden. (Beachte die 8 im Notensystem.) Bei den weiteren Übungen werden jedoch die Versionen mit den vielen Hilfslinien angezeigt. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { \ottava #1 e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Mit der C-Form in den ersten drei Bünden im Hinterkopf ist der 12. Bund leicht zu bewältigen. Wieder eine Übung, die weniger für Konzertgitarren geeignet ist. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> === "Das häßliche Entlein" oder "Alle meine Entchen"<ref>Anspielung auf ein Märchen der Gebrüder Grimm nebst einem bekannten deutschen Kinderlied.</ref> in A-Moll === Die vorherige Übung war in Dur, und hier verwenden wir ein und den selben Fingersatz in Moll. Wie du siehst und hörst, lässt sich ein Fingersatz oder ein Pattern nicht eindeutig einer einzigen Tonart zuordnen. Der Schlusston oder der Schlussakkord (hier der Ton A bzw. der Akkord Am) bestimmt die Tonart. Der Grundton A ist hier die Sexte (6) des zugrunde liegenden C-Major-Pattern. Es bleibt dir überlassen, ob du zur Orientierung lieber den Grundton A (grün) bestimmst, oder das C aus dem Karré (rot). Wenn in einer Tabulatur über einer Ziffer zwei Notenhälse stehen, so ist das ein Zeichen für eine halbe Note, die zwei Schläge dauert. Da dieses für viele Gitarristen sehr ungewöhnlich aussieht, verzichtet man oft auf Taktstriche in der Tabulatur. In dem Fall lässt sich die Tondauer allein an den Notenwerten ablesen. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-/Am-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Der Lagewechsel zwischen der G- und H-Saite ist hier leicht zu bewältigen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Gm-/Bb-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d-1 e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2-4 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Auch hier ist es wieder einfacher das A (grün) zu suchen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Em-/G-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (E- / F-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Statt lange nach dem Grundton der D-Form zu suchen, erinneren wir uns kurz, wo der Grundton C auf der H- (B-)Saite sein muß (13. Bund). <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Die Moldau (Hauptmotiv) === Die Abfolge der Töne der folgenden Übung unterscheidet sich kaum von der vorhergehenden. Doch mit dem anderen Rhythmus haben wir das Hauptmotiv von der Komposition {{Youtube-Suche|Smetana+Die+Moldau|"Die Moldau" von Bedrich Smetana}} (ohne Auftakt und rhythmisch vereinfacht). Auch wenn es hier (wie in der 7. Übung) nur die Molltonleiter rauf und runter geht, merkst du hoffentlich, wieviel der Takt und Rhythmus an der Wirkung ausmacht. Wenn du später mal meinst, deine Improvisationen hören sich langweilig an, dann solltest du dich mehr mit Rhythmus beschäftigen. Dazu kannst du dich auch ein wenig mit Schlagmustern beschäftigen. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Am-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #2 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Warum die Form hier Gm-Form genannt wird, das wird dir in den nachfolgenden Lektionen klarer werden. Auf Fingersatzangaben können wir hier verzichten, wenn du vorher "Alle meine Entchen in Am" gespielt hast. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Bb- /Gm-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Hier bietet sich besonders an, den Am-Barré zur Orientierung zu verwenden. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Em-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Auch hier gibt dir der kleine Finger des Am-Barrés den Grundton an. Du kannst dir die Dm-Form aber auch über die F-Form (C im 8. Bund) ableiten. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (F- /Dm-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Zähle vom C (H-Saite, 13. Bund) rückwärts zum A. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D- /Bm7-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Hier wird die erste Übung in den 12. Bund verschoben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Sascha (vereinfacht) === [[Liederbuch/ Sascha|Sascha]] (auch bekannt unter "Sascha geizte mit den Worten" oder "Sascha liebt nicht große Worte") ist in beliebtes Kinder-, Jugend- und Pfadfinderlied. ==== Sascha (Am-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 0 "2" darkgreen ) (place-fret 4 2 "3" darkgrey ) (place-fret 4 3 "4" yellow3 ) (place-fret 5 0 "6" darkgreen ) (place-fret 5 2 "j7" yellow3 ) (place-fret 5 3 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Das Lied startet mit dem Ton E. Man könntetheoretisch in der zweiten Lage spielen und mit dem Zeigefinger starten. Doch üblicher ist Zeigefinger erster Bund, Mittelfinger zweiter Bund, Ringfinger 3. Bund. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #2 % \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-2 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Gm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 2 3 2 darkgreen ) (place-fret 2 5 3 darkgrey ) (place-fret 2 6 4 yellow3 ) (place-fret 3 2 6 darkgreen ) (place-fret 3 4 "j7" yellow3 ) (place-fret 3 5 1 black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Das Lied "Sascha" wird hier auf der G- und H-Saite gespielt. Wir müssen uns Strategien zurechtlegen, welchen Fingersatz wir am besten für die Lagewechsel verwenden. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Bb- /Gm7-Form) in Am" subtitle="Sascha (vereinfacht)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-4 e e c-3 e e e c | b d-3 c-4 b c a a a | } \repeat volta 2 { f'-4 f f r e e e r | e d c-4 b a a a r | } \set TabStaff.minimumFret = #5 <c e a>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 80 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> Auf den anderen Saitenlagen geht die Melodie einfacher von der Hand. ==== Sascha (Em-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 5 5 "2" darkgreen ) (place-fret 5 7 "3" darkgrey ) (place-fret 5 8 "4" yellow3 ) (place-fret 6 5 "6" darkgreen ) (place-fret 6 7 "j7" yellow3 ) (place-fret 6 8 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Den Grundton A leiten wir wieder vom Am-Barré im 5. Bund ab. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (G- /Em-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a c e a>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Dm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 3 7 "2" darkgreen ) (place-fret 3 9 "3" darkgrey ) (place-fret 3 10 "4" yellow3 ) (place-fret 4 7 "6" darkgreen ) (place-fret 4 9 "j7" yellow3 ) (place-fret 4 10 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Den Grundton A leiten wir wieder vom kleinen Finger des Am-Barré im 5. Bund ab. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (F- /Dm-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a' c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Dm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 1 10 "2" darkgreen ) (place-fret 1 12 "3" darkgrey ) (place-fret 1 13 "4" yellow3 ) (place-fret 2 10 "6" darkgreen ) (place-fret 2 12 "j7" yellow3 ) (place-fret 2 13 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Wenn im 12. Bund der B-Saite der Ton B ist, dann ist 2 Bünde vorher das A. Das Lied beginnt mit E, also 12. Bund E-Saite <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D- /Bm7-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #10 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a, e' a c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Am-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 4) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 12 "2" darkgreen ) (place-fret 4 14 "3" darkgrey ) (place-fret 4 15 "4" yellow3 ) (place-fret 5 12 "6" darkgreen ) (place-fret 5 14 "j7" yellow3 ) (place-fret 5 15 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Die erste Übung wird in den 12. Bund verschoben. Grundton A = A-Saite 12. Bund. Von da aus zählst du bis zum E. ;A B C D E Klassik-Gitarristen rücken ggf. ein paar Bünde zurück. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a >1^\markup { \bold {(A5)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Baustelle ==== === Asturias (Ausschnitt) === Das ganze Stück Asturias ist ein Meisterstück. Doch es mag dich vielleicht freuen, dass es gar nicht mehr lange dauert, bis du zumindest die ersten Takte als kleines Vorzeigestück spielen kannst. Dies hier ist schon einmal eine Vorübung. Es gibt auch eine einfache Version für Anfänger im Notenlesen. • [[Gitarre: Notenlesen - Asturias-einfach|Asturias - vereinfacht]] (incl. Tabs) ==== Asturias - Am-Form (offen) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 0 "D" darkgreen ) (place-fret 4 2 "E" darkgrey ) (place-fret 4 3 "F" yellow3 ) (place-fret 5 0 "A" darkgreen ) (place-fret 5 2 "B" yellow3 ) (place-fret 5 3 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Vergiss nicht, neben dem Fingersatz auch die Notennamen zu üben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Am-Form - offen) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c{ a8 e'-2 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 <a, e' a c' e >2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Asturias - Gm-Form ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 2 3 "D" darkgreen ) (place-fret 2 5 "E" darkgrey ) (place-fret 2 6 "F" yellow3 ) (place-fret 3 2 "A" darkgreen ) (place-fret 3 4 "B" yellow3 ) (place-fret 3 5 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Vergiss nicht, neben dem Fingersatz auch die Notennamen zu üben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Gm-Form) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c'{ a8 e'-3 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 < c' e' a'>2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Asturias - Em-Form ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 5 5 "D" darkgreen ) (place-fret 5 7 "E" darkgrey ) (place-fret 5 8 "F" yellow3 ) (place-fret 6 5 "A" darkgreen ) (place-fret 6 7 "B" yellow3 ) (place-fret 6 8 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Em-Form) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c{ a8 e'-3 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 < a, e a c' e' a'>2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Asturias - Em-Form ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 3 7 "D" darkgreen ) (place-fret 3 9 "E" darkgrey ) (place-fret 3 10 "F" yellow3 ) (place-fret 4 7 "A" darkgreen ) (place-fret 4 9 "B" yellow3 ) (place-fret 4 10 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Dm-Form) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c' { a8 e'-3 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 < a, e a c' e' a'>2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Baustelle=== 4adf2on2gyf216klucfr28nui6vj6n2 1091130 1091129 2026-09-20T11:55:08Z Mjchael 2222 /* Asturias - Em-Form */ 1091130 wikitext text/x-wiki [[Gitarre: CAGED-Stammtöne - Erster Fingersatz]] Verkleinern einer übergroßen Seite == Zweiter Fingersatz == :[[Datei:Scala 6_71-2_34.svg]] Zuerst suchen wir uns in der C-Dur-Tonleiter überall den zweiten Fingersatz heraus. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] Zur leichteren Orientierung wird die Grafik bei jeder neuen Melodie wiederholt. === Rondeau (Auszug) === Die eintaktige Sequenzen wurde aus einem Rondeau von J.S. Bach entnommen. Der Grundton C, welcher im letzten Takt rot eingefärbt wurde, wird mit dem kleinen Finger gegriffen. Am Anfang des Griffbrettes brauchen wir den zweiten Fingersatz nicht vollständig. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> In der A-(Bb-)Form müssen wir den Lagewechsel zwischen der G- und H-Saite beachten. Übrigens werden hier die Töne in der englischen Form angegeben. (Bb-Form und der Ton B statt des deutschen H.) <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (A-, Bb-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-3 d e f e d c e-4 d-2 c d e d c b d c b c d c b a c b a b c d-1 b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Leite dir den Grundton C vom Barré im 8. Bund ab, oder suche das A im 5. Bund (hier grün hervorgehoben). <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (G-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b \once \override NoteHead #'color = #green a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Der kleine Finger des C-Barré im 8. Bund in der E- bzw. F-Form gibt gleichzeitig das C des zweiten Fingersatz an. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (E- F-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Für den Grundton C müssen wir uns die D-Form gar nicht so genau ins Gedächtnis rufen, wenn uns die C-Form viel vertrauter ist. Diese hohe Lage ist für E-Gitarristen oder Gitarren mit Cutaway gedacht. Auf der Konzertgitarre ist die sehr hohe Lage schlecht zu spielen. Gehe ggf. einen Kompromiss ein, und spiele diese hohe Saitenlage ein paar Bünde tiefer als Übung nur für den Fingersatz aber nicht für die Notennamen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Noten über dem hohen C (der mit zwei Hilfslinien) wird dir seltener begegnen, da in dem Fall bevorzugt die Noten nach unten oktaviert werden. (Beachte die 8 im Notensystem.) Bei den weiteren Übungen werden jedoch die Versionen mit den vielen Hilfslinien angezeigt. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { \ottava #1 e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Mit der C-Form in den ersten drei Bünden im Hinterkopf ist der 12. Bund leicht zu bewältigen. Wieder eine Übung, die weniger für Konzertgitarren geeignet ist. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in C-Dur" subtitle="Rondeau (Auszug)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-2 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d } \once \override NoteHead #'color = #red c1^\markup { \bold {(C)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { e8 d e f e d c e d c d e d c b d c b c d c b a c b a b c d b c d c } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> === "Das häßliche Entlein" oder "Alle meine Entchen"<ref>Anspielung auf ein Märchen der Gebrüder Grimm nebst einem bekannten deutschen Kinderlied.</ref> in A-Moll === Die vorherige Übung war in Dur, und hier verwenden wir ein und den selben Fingersatz in Moll. Wie du siehst und hörst, lässt sich ein Fingersatz oder ein Pattern nicht eindeutig einer einzigen Tonart zuordnen. Der Schlusston oder der Schlussakkord (hier der Ton A bzw. der Akkord Am) bestimmt die Tonart. Der Grundton A ist hier die Sexte (6) des zugrunde liegenden C-Major-Pattern. Es bleibt dir überlassen, ob du zur Orientierung lieber den Grundton A (grün) bestimmst, oder das C aus dem Karré (rot). Wenn in einer Tabulatur über einer Ziffer zwei Notenhälse stehen, so ist das ein Zeichen für eine halbe Note, die zwei Schläge dauert. Da dieses für viele Gitarristen sehr ungewöhnlich aussieht, verzichtet man oft auf Taktstriche in der Tabulatur. In dem Fall lässt sich die Tondauer allein an den Notenwerten ablesen. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-/Am-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Der Lagewechsel zwischen der G- und H-Saite ist hier leicht zu bewältigen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Gm-/Bb-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d-1 e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2-4 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Auch hier ist es wieder einfacher das A (grün) zu suchen. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Em-/G-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (E- / F-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Statt lange nach dem Grundton der D-Form zu suchen, erinneren wir uns kurz, wo der Grundton C auf der H- (B-)Saite sein muß (13. Bund). <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C-Form) in Am" subtitle="Das häßliche Entlein" subsubtitle="oder: Alle meine Entchen in Moll" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4-1 b \once \override NoteHead #'color = #red c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b c d e2 e f4 f f f e1 f4 f f f e1 d4 d d d c2 c b4 b b b a1 } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Die Moldau (Hauptmotiv) === Die Abfolge der Töne der folgenden Übung unterscheidet sich kaum von der vorhergehenden. Doch mit dem anderen Rhythmus haben wir das Hauptmotiv von der Komposition {{Youtube-Suche|Smetana+Die+Moldau|"Die Moldau" von Bedrich Smetana}} (ohne Auftakt und rhythmisch vereinfacht). Auch wenn es hier (wie in der 7. Übung) nur die Molltonleiter rauf und runter geht, merkst du hoffentlich, wieviel der Takt und Rhythmus an der Wirkung ausmacht. Wenn du später mal meinst, deine Improvisationen hören sich langweilig an, dann solltest du dich mehr mit Rhythmus beschäftigen. Dazu kannst du dich auch ein wenig mit Schlagmustern beschäftigen. :[[Datei:C-Major-Scale_on_the_fretboard_second_fingering.svg]] <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Am-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #2 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Warum die Form hier Gm-Form genannt wird, das wird dir in den nachfolgenden Lektionen klarer werden. Auf Fingersatzangaben können wir hier verzichten, wenn du vorher "Alle meine Entchen in Am" gespielt hast. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Bb- /Gm-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Hier bietet sich besonders an, den Am-Barré zur Orientierung zu verwenden. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Em-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Auch hier gibt dir der kleine Finger des Am-Barrés den Grundton an. Du kannst dir die Dm-Form aber auch über die F-Form (C im 8. Bund) ableiten. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (F- /Dm-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Zähle vom C (H-Saite, 13. Bund) rückwärts zum A. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D- /Bm7-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #9 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> <br> Hier wird die erste Übung in den 12. Bund verschoben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Die Moldau (Hauptmotiv)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \key a \minor \once \override NoteHead #'color = #green a4 b8 \once \override NoteHead #'color = #red c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant \addlyrics { a4 b8 c4 d8 e4. e4. f4. f4. e2. d4. d4. c4 d8 c4. b4. b4. a2. } } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Sascha (vereinfacht) === [[Liederbuch/ Sascha|Sascha]] (auch bekannt unter "Sascha geizte mit den Worten" oder "Sascha liebt nicht große Worte") ist in beliebtes Kinder-, Jugend- und Pfadfinderlied. ==== Sascha (Am-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 0 "2" darkgreen ) (place-fret 4 2 "3" darkgrey ) (place-fret 4 3 "4" yellow3 ) (place-fret 5 0 "6" darkgreen ) (place-fret 5 2 "j7" yellow3 ) (place-fret 5 3 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Das Lied startet mit dem Ton E. Man könntetheoretisch in der zweiten Lage spielen und mit dem Zeigefinger starten. Doch üblicher ist Zeigefinger erster Bund, Mittelfinger zweiter Bund, Ringfinger 3. Bund. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { % \set TabStaff.minimumFret = #2 % \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-2 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Gm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 2 3 2 darkgreen ) (place-fret 2 5 3 darkgrey ) (place-fret 2 6 4 yellow3 ) (place-fret 3 2 6 darkgreen ) (place-fret 3 4 "j7" yellow3 ) (place-fret 3 5 1 black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Das Lied "Sascha" wird hier auf der G- und H-Saite gespielt. Wir müssen uns Strategien zurechtlegen, welchen Fingersatz wir am besten für die Lagewechsel verwenden. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (Bb- /Gm7-Form) in Am" subtitle="Sascha (vereinfacht)" } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key c \major \repeat volta 2 { e8-4 e e c-3 e e e c | b d-3 c-4 b c a a a | } \repeat volta 2 { f'-4 f f r e e e r | e d c-4 b a a a r | } \set TabStaff.minimumFret = #5 <c e a>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 80 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> Auf den anderen Saitenlagen geht die Melodie einfacher von der Hand. ==== Sascha (Em-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 5 5 "2" darkgreen ) (place-fret 5 7 "3" darkgrey ) (place-fret 5 8 "4" yellow3 ) (place-fret 6 5 "6" darkgreen ) (place-fret 6 7 "j7" yellow3 ) (place-fret 6 8 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Den Grundton A leiten wir wieder vom Am-Barré im 5. Bund ab. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (G- /Em-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a c e a>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Dm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 3 7 "2" darkgreen ) (place-fret 3 9 "3" darkgrey ) (place-fret 3 10 "4" yellow3 ) (place-fret 4 7 "6" darkgreen ) (place-fret 4 9 "j7" yellow3 ) (place-fret 4 10 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Den Grundton A leiten wir wieder vom kleinen Finger des Am-Barré im 5. Bund ab. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (F- /Dm-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a' c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Dm-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 1 10 "2" darkgreen ) (place-fret 1 12 "3" darkgrey ) (place-fret 1 13 "4" yellow3 ) (place-fret 2 10 "6" darkgreen ) (place-fret 2 12 "j7" yellow3 ) (place-fret 2 13 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Wenn im 12. Bund der B-Saite der Ton B ist, dann ist 2 Bünde vorher das A. Das Lied beginnt mit E, also 12. Bund E-Saite <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (D- /Bm7-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c'' { \set TabStaff.minimumFret = #10 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a, e' a c e>1^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Sascha (Am-Form) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 4) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 12 "2" darkgreen ) (place-fret 4 14 "3" darkgrey ) (place-fret 4 15 "4" yellow3 ) (place-fret 5 12 "6" darkgreen ) (place-fret 5 14 "j7" yellow3 ) (place-fret 5 15 "1" black ) ) }} \paper{ indent=0\mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Die erste Übung wird in den 12. Bund verschoben. Grundton A = A-Saite 12. Bund. Von da aus zählst du bis zum E. ;A B C D E Klassik-Gitarristen rücken ggf. ein paar Bünde zurück. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz (C- /Am-Form) in Am" subtitle="Sascha (vereinfacht)" } myKey = { \time 4/4 \tempo 4 = 80 \set Score.tempoHideNote = ##t \key c \major } %% Diskant- bzw. Melodiesaiten Diskant = \relative c' { \set TabStaff.minimumFret = #12 \set TabStaff.restrainOpenStrings = ##t \myKey \repeat volta 2 { e8-3 e e c e e e c | b d c b c a a a | } \repeat volta 2 { f' f f r e e e r | e d c b a a a r | } <a e' a >1^\markup { \bold {(A5)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \myKey \clef "treble_8" \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \myKey \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=180\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Baustelle ==== === Asturias (Ausschnitt) === Das ganze Stück Asturias ist ein Meisterstück. Doch es mag dich vielleicht freuen, dass es gar nicht mehr lange dauert, bis du zumindest die ersten Takte als kleines Vorzeigestück spielen kannst. Dies hier ist schon einmal eine Vorübung. Es gibt auch eine einfache Version für Anfänger im Notenlesen. • [[Gitarre: Notenlesen - Asturias-einfach|Asturias - vereinfacht]] (incl. Tabs) ==== Asturias - Am-Form (offen) ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 4 0 "D" darkgreen ) (place-fret 4 2 "E" darkgrey ) (place-fret 4 3 "F" yellow3 ) (place-fret 5 0 "A" darkgreen ) (place-fret 5 2 "B" yellow3 ) (place-fret 5 3 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Vergiss nicht, neben dem Fingersatz auch die Notennamen zu üben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Am-Form - offen) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { % \set TabStaff.minimumFret = #5 % \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c{ a8 e'-2 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 <a, e' a c' e >2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Asturias - Gm-Form ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 2 3 "D" darkgreen ) (place-fret 2 5 "E" darkgrey ) (place-fret 2 6 "F" yellow3 ) (place-fret 3 2 "A" darkgreen ) (place-fret 3 4 "B" yellow3 ) (place-fret 3 5 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> Vergiss nicht, neben dem Fingersatz auch die Notennamen zu üben. <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Gm-Form) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { \set TabStaff.minimumFret = #2 \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c'{ a8 e'-3 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 < c' e' a'>2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Asturias - Em-Form ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 5 5 "D" darkgreen ) (place-fret 5 7 "E" darkgrey ) (place-fret 5 8 "F" yellow3 ) (place-fret 6 5 "A" darkgreen ) (place-fret 6 7 "B" yellow3 ) (place-fret 6 8 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Em-Form) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c{ a8 e'-3 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 < a, e a c' e' a'>2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Asturias - Dm-Form ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 3 7 "D" darkgreen ) (place-fret 3 9 "E" darkgrey ) (place-fret 3 10 "F" yellow3 ) (place-fret 4 7 "A" darkgreen ) (place-fret 4 9 "B" yellow3 ) (place-fret 4 10 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( Dm-Form) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { \set TabStaff.minimumFret = #7 \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c' { a8 e'-3 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 < a, e a c' e' a'>2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> ==== Asturias - D-/ Bm7-Form ==== <div style="float:left; padding:5px;margin:5px; border:black solid 1px; "> <score raw="1"> \version "2.14.2" \markup { \override #'(size . 3.0) { \override #'(fret-diagram-details . ( (orientation . landscape) (finger-code . in-dot) (dot-color . #'black) (dot-radius . 0.4) (dot-position . 0.5) (top-fret-thickness . 6) (fret-count . 3) (number-type . roman-upper) )) \fret-diagram-verbose #'( (place-fret 2 10 "D" darkgreen ) (place-fret 1 12 "E" darkgrey ) (place-fret 1 13 "F" yellow3 ) (place-fret 2 10 "A" darkgreen ) (place-fret 2 12 "B" yellow3 ) (place-fret 2 13 "C" black ) ) }} \paper{ indent=0\mm line-width=100\mm oddFooterMarkup=##f oddHeaderMarkup=##f bookTitleMarkup = ##f scoreTitleMarkup = ##f} </score> </div> <score sound="1" raw="1"> \version "2.20.0" \header { title="2. Fingersatz ( D- / Bm7-Form) in Am" subtitle="Asturias (Ausschnitt)" } %% Diskant- bzw. Melodiesaiten Diskant = { \set TabStaff.minimumFret = #10 \set TabStaff.restrainOpenStrings = ##t \key a \minor \repeat volta 2 \relative c'' { a8 e'-3 f d e c | a8 e' f d e c a8 e' f d e c | d b c d b c | ^\markup {2x} | } \set TabStaff.minimumFret = #0 < a, e a c' e' a'>2.^\markup { \bold {(Am)} } \bar "|." } %% Layout- bzw. Bildausgabe \score { << \new Voice { \clef "treble_8" \time 6/8 \tempo 4 = 120 \set Score.tempoHideNote = ##t \Diskant } \new TabStaff { \tabFullNotation \Diskant } >> \layout {} } %% Midiausgabe mit Wiederholungen, ohne Akkorde \score { << \unfoldRepeats { \new Staff << \tempo 4 = 120 \time 4/4 \set Staff.midiInstrument = #"acoustic guitar (nylon)" \clef "G_8" \Diskant >> } >> \midi {} } %% unterdrückt im raw="!"-Modus das DinA4-Format. \paper { indent=0\mm %% DinA4 = 210mm - 10mm Rand - 20mm Lochrand = 180mm line-width=140\mm oddFooterMarkup=##f oddHeaderMarkup=##f % bookTitleMarkup=##f scoreTitleMarkup=##f } </score> === Baustelle=== 22rmpa5cjvcdc2cnqc8f1o6xgqmwtim Traktorenlexikon: Allis-Chalmers 6060 0 123135 1091082 2026-09-19T13:01:54Z Baupit 56622 Neue Seite (vgl. [[WB:AZ]]) 1091082 wikitext text/x-wiki {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Allis-Chalmers |HERSTELLER= Allis-Chalmers}} {{:Traktorenlexikon: Modell-Infobox | HERSTELLER = ALLIS-CHALMERS | MODELLREIHE = 6.000 er - Baureihe | MODELL = 6060 | BILD = | BILDBESCHREIBUNG = | BAUWEISE = Blockbauweise | PRODUKTIONSBEGINN = 1980 | PRODUKTIONSENDE = 1984 | STÜCKZAHL = 4.027 | EIGENGEWICHT = 2.585 (4 WD: 2.948) | LÄNGE = 3.721 | BREITE = 1.740 | HÖHE = 2.621 | RADSTAND = 2.362 (4 WD: 2.334) | BODENFREIHEIT = 518 (4 WD: 460) | SPURWEITE = | SPURWEITE VORNE = 1.371-2.007 (4 WD: 1.499-1.930) | SPURWEITE HINTEN = 1.448-2.261 | WENDERADIUS MIT LENKBREMSE = 3.340 (4 WD: 4.648) | WENDERADIUS OHNE LENKBREMSE = 3.800 (4 WD: 5.791) | BEREIFUNG VORNE = 7.50-16 ASF (4 WD: 11.2-24 AS) | BEREIFUNG HINTEN = 16.9-28 AS (4 WD: 18.4-28 AS) | LEISTUNG KW = 47,8 | LEISTUNG PS = 65 | NENNDREHZAHL = 2.300 | ZYLINDER = 4 | HUBRAUM = 3.287 | DREHMOMENTANSTIEG = | KRAFTSTOFF = Diesel | KÜHLSYSTEM = Wasserkühlung | ANTRIEBSTYP = Heck- oder Allradantrieb | GETRIEBE = 8 V/2 R | HÖCHSTGESCHWINDIGKEIT = 25 | KATEGORIESORTIERUNG = }} Der ALLIS-CHALMERS 6060 löste im Jahr 1980 den legendären ALLIS-CHALMERS 175 ab und parallel das Einstiegsmodell 6040. Die 6000 er-Serie beruhte auf einer Zusammenarbeit zwischen FIAT und ALLIS-CHALMERS. Das Hinterteil samt Getriebe des 6060 stammte vom FIAT 780, kombiniert mit einem aufgeladenen-hauseigenen Vierzylinderaggregat. Als Triebwerk diente ein teilsynchronisiertes 8/2-Gänge Getriebe. Dabei war er sowohl als Heckantrieb- als auch mit Allradantrieb erhältlich. Nachdem im März 1985 die KLÖCKNER-HUMBOLD-DEUTZ AG den traditionellen Hersteller ALLIS-CHALMERS übernommen hatte, wurden Schlepper beider Hersteller angeboten. Eines dieser Modelle war der ALLIS-CHALMERS 6060, der jetzt als DEUTZ-ALLIS 6060 vermarktet wurde. ==Motor== * ALLIS-CHALMERS, Typ: 433 T, stehender-wassergekühlter Viertakt-Vierzylinder-Reihen-OHC-Saugmotor mit Direkteinspritzverfahren, hängenden Ventilen, zahnradgetriebener Nockenwelle, Reihen-Einspritzpumpe, Leichtmetall-Kolben, Trockenluftfilter, fünffach-gelagerter Kurbelwelle, mechanischer Fliehkraftregler, Turbolader, Druckumlaufschmierung mittels Zahnradpumpe, Motorölkühler, Mehrlochdüse und Lamellenkühler mit Lüfter. * Bohrung = 98,42 mm, Hub = 107,95 mm * Verdichtungsverhältnis = 14,1:1 * Max. Drehmoment = 267 Nm bei 1.400 U/min. * Mittlere Kolbengeschwindigkeit = 8,28 m/s * Geregelter Drehzahlbereich = 775 bis 2.580 U/min ==Kupplung== * Trockene Doppelkupplung Typ: 11/11" Pedal-betätigte Fahrkupplung mit 279,4 mm Scheibendurchmesser * Handhebel-betätigte Zapfwellenkupplung mit 279,4 mm Scheibendurchmesser ==Getriebe== * Im Ölbad laufendes, teilsynchronisiertes Gruppen-Getriebe * Wechselgetriebe mit vier Vorwärts-und einem Rückwärtsgang * Gruppen-Getriebe mit zwei Gruppen, in die Bereiche L und H unterteilt * Die Gänge 3+4 und 7+8 sind synchronisiert 8 Vorwärts- und 2 Rückwärtsgänge ==Geschwindigkeiten vor- und rückwärts== "Geschwindigkeiten mit Bereifung 18.4-28 AS" {| class="wikitable" |- ! bei Motordrehzahl (U/min) !! 2.300 |- ! Gruppe - L || |- | 1.Gang || 2,25 km/h |- | 2.Gang || 3,22 km/h |- | 3.Gang || 4,83 km/h |- | 4.Gang || 6,28 km/h |- | 1.Rückwärtsgang || 2,90 km/h |- ! Gruppe - H !! |- | 1.Gang || 8,05 km/h |- | 2.Gang || 11,59 km/h |- | 3.Gang || 17,22 km/h |- | 4.Gang || 22,37 km/h |- | 2.Rückwärtsgang || 10,46 km/h |- |} ==Zapfwelle== * Mechanisch-betätigte, kupplungsunabhängige Motorzapfwelle * Stummel = 1 3/8"- 6 Keile * Einfach schaltbar, 540 U/min. * 540 U/min. mit 2.226 U/min.- Motordrehzahl Übertragbare Leistung = 65,8 DIN-PS * Oder 558 U/min. mit Nenndrehzahl Übertragbare Leistung = 64,7 DIN-PS ==Bremsen== * Pedal-betätigte, hydraulisch-nasse Scheibenbremse auf die Differentialseitenwellen wirkend, als Einzelrad-Bremse ausgebildet * Handhebel-betätigte Feststellbremse auf die Getriebe-Zwischenwelle wirkend ==Achsen== * Pendelnd-aufgehängte Stahlvorderachse Verstellbare Spurweite = 1.371 bis 2.007 mm (Optional = 1.676 bis 2.540 mm) * Pendelnd-gelagerte Lenktriebvorderachse mit zentraler Gelenkwelle Verstellbare Spurweite = 1.499 bis 1.930 mm * Hinterachse mit Kegelradgetriebe und Endantrieb als Stirnradübersetzung * Mechanisch-betätigte Differentialsperre Verstellbare Spurweite = 1.448 bis 2.261 mm (Optional = 1.626 bis 2.438 mm) * Vordere Achslast = 971 kg * Hintere Achslast = 1.962 kg ==Lenkung== * Hydrostatische Lenkung Förderleistung = 28,7 l/min. ==Hydrauliksystem und Kraftheber== * Hydraulischer Blockkraftheber mit Unterlenkerregelung * Einfachwirkender Hubzylinder * Dreipunktkupplung der Kategorie II "Funktionen:" * Heben, Senken, Schwimmstellung, Zugkraft- und Lageregelung * Zahnradpumpe mit 71,9 l/min bei 175 bar und Nenndrehzahl Max. Hubkraft 610 mm hinter den Koppelpunkten = 1.588 kg ==Steuergeräte== * Ein einfach- oder doppelt-wirkendes Steuergerät * Auf Wunsch bis zu drei einfach- oder doppelt-wirkende Steuergeräte ==Elektrische Ausrüstung== "12 Volt-Einrichtung" * Lichtmaschine, 14 V-72 A ==Maße und Abmessungen== * Länge über alles = 3.721 mm * Breite bei kleinster Spurweite = 1.740 mm * Höhe über Motorhaube = 1.763 mm * Höhe über Kabine = 2.621 mm * Höhe über Auspuff = 2.799 mm * Radstand = 2.362 mm (4 WD = 2.334 mm) * Bodenfreiheit unter der Vorderachse = 518 mm (4 WD = 460 mm) * Betriebsgewicht = 2.933 kg (4 WD = 3.296 kg) ==Bereifung== "Standardbereifung:" * Vorne = 7.50-16 AS Front (4 WD = 11.2-24 AS) * Hinten = 16.9-28 AS (4 WD = 18.4-28 AS) "Optional:" * Vorne = 6.50-16 und 9.5 L-15 AS Front (4 WD = 11.2-28 AS) * Hinten = 15.5-38 und 13.6-38 AS ==Füllmengen== * Tankinhalt = 121,0 l * Motoröl mit Filter = 9,5 l * Kühlsystem = 16,0 l * Getriebe = 11,4 l * Differential = 35,0 l ==Verbrauch== * Kraftstoffverbrauch = 15,3 l/h bei 47,6 kW und Nenndrehzahl ==Kabine== * Fahrerstand mit seitlichem Aufstieg, Schutzrahmen, gefederten Sitz, Öldruck- und Batterieanzeige, Motortemperaturanzeige, Blinker und Luftfilteranzeige, Traktormeter mit Anzeige der Motor- und Zapfwellendrehzahlen und der Betriebsstunden. "Optional:" * Kabine mit Komfort-Sitz, Heizung, Klimaanlage und Arbeitsscheinwerfer ==Sonderausrüstung== * Kabine * Zusatzgewichte * Arbeitsscheinwerfer * Heizung ==Literatur & Weblinks== * tractordata.com * Brochure Deutz-Allis Corporation * digitalcommons.unl.edu (Test-Nr. 1397/81) <references /> {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Allis-Chalmers |HERSTELLER= Allis-Chalmers}} 1k3cdusvno9vwwgp2mzjm0dh6u8mujm Traktorenlexikon: Allis-Chalmers 6070 0 123136 1091083 2026-09-19T13:40:21Z Baupit 56622 Neue Seite (vgl. [[WB:AZ]]) 1091083 wikitext text/x-wiki {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Allis-Chalmers |HERSTELLER= Allis-Chalmers}} {{:Traktorenlexikon: Modell-Infobox | HERSTELLER = ALLIS-CHALMERS | MODELLREIHE = 6.000 er - Baureihe | MODELL = 6070 | BILD = | BILDBESCHREIBUNG = | BAUWEISE = Blockbauweise | PRODUKTIONSBEGINN = 1984 | PRODUKTIONSENDE = 1985 | STÜCKZAHL = | EIGENGEWICHT = 2.767 (4 WD: 2.948) | LÄNGE = 3.721 | BREITE = 1.740 | HÖHE = 2.621 | RADSTAND = 2.362 (4 WD: 2.334) | BODENFREIHEIT = 518 (4 WD: 459) | SPURWEITE = | SPURWEITE VORNE = 1.442-2.007 (4 WD: 1.524-1.981) | SPURWEITE HINTEN = 1.524-2.184 (4 WD: 1.499-2.184) | WENDERADIUS MIT LENKBREMSE = 3.170 (4 WD: 4.648) | WENDERADIUS OHNE LENKBREMSE = 3.580 (4 WD: 5.791) | BEREIFUNG VORNE = 7.50-16 ASF (4 WD: 11.2-24 AS) | BEREIFUNG HINTEN = 16.9-28 AS (4 WD: 18.4-28 AS) | LEISTUNG KW = 52,2 | LEISTUNG PS = 71 | NENNDREHZAHL = 2.300 | ZYLINDER = 4 | HUBRAUM = 3.287 | DREHMOMENTANSTIEG = | KRAFTSTOFF = Diesel | KÜHLSYSTEM = Wasserkühlung | ANTRIEBSTYP = Heck- oder Allradantrieb | GETRIEBE = 12 V/3 R | HÖCHSTGESCHWINDIGKEIT = 25 | KATEGORIESORTIERUNG = }} Der im Jahr 1984 vorgestellte ALLIS-CHALMERS 6070 löste das kleinere Modell 6060 ab. Neben einer größeren Nennleistung, wurde ihm auch das synchronisierte 12/3-Gänge Triebwerk zu teil. Allerdings nahm er einen einzigartigen und historisch bedeutsamen Platz in der ALLIS-CHALMERS Geschichte ein. Denn am 6. Dezember 1985 war es ein ALLIS-CHALMERS 6070, mit der Seriennummer 1972, der als allerletzter Schlepper von ALLIS-CHALMERS vom Band lief. Nach mehr als einem Jahrhundert waren die traditionsreichen orangefarbenen Schlepper, nur noch Geschichte. Nachdem im März 1985 die KLÖCKNER-HUMBOLD-DEUTZ AG den traditionellen Hersteller ALLIS-CHALMERS übernommen hatte, wurden Schlepper beider Hersteller angeboten. Eines dieser Modelle war der ALLIS-CHALMERS 6070, der jetzt als DEUTZ-ALLIS 6070 vermarktet wurde. ==Motor== * ALLIS-CHALMERS, Typ: 433 T, stehender-wassergekühlter Viertakt-Vierzylinder-Reihen-OHC-Saugmotor mit Direkteinspritzverfahren, hängenden Ventilen, zahnradgetriebener Nockenwelle, Kolbenkühlung, Reihen-Einspritzpumpe, Leichtmetall-Kolben, Trockenluftfilter, fünffach-gelagerter Kurbelwelle, mechanischer Fliehkraftregler, Turbolader, Druckumlaufschmierung mittels Zahnradpumpe, Motorölkühler, Mehrlochdüse und Lamellenkühler mit Lüfter. * Bohrung = 98,2 mm, Hub = 107,9 mm * Verdichtungsverhältnis = 15,1:1 * Max. Drehmoment = 267 Nm bei 1.400 U/min. * Mittlere Kolbengeschwindigkeit = 8,28 m/s * Geregelter Drehzahlbereich = 775 bis 2.580 U/min ==Kupplung== * Trockene Doppelkupplung Typ: 12/12" Pedal-betätigte Fahrkupplung mit 304,8 mm Scheibendurchmesser * Mechanisch-betätigte Zapfwellenkupplung mit 304,8 mm Scheibendurchmesser ==Getriebe== * Im Ölbad laufendes, synchronisiertes Gruppen-Getriebe * Wechselgetriebe mit vier Vorwärts-und einem Rückwärtsgang * Gruppen-Getriebe mit drei Gruppen, in die Bereiche L-M und H unterteilt 12 Vorwärts- und 3 Rückwärtsgänge ==Geschwindigkeiten vor- und rückwärts== "Geschwindigkeiten mit Bereifung 18.4-28 AS" {| class="wikitable" |- ! bei Motordrehzahl (U/min) !! 2.300 |- ! Gruppe - L || |- | 1.Gang || 1,61 km/h |- | 2.Gang || 2,09 km/h |- | 3.Gang || 2,90 km/h |- | 4.Gang || 3,22 km/h |- | 1.Rückwärtsgang || 1,45 km/h |- ! Gruppe - M || |- | 1.Gang || 4,51 km/h |- | 2.Gang || 5,79 km/h |- | 3.Gang || 7,40 km/h |- | 4.Gang || 9,17 km/h |- | 2.Rückwärtsgang || 4,35 km/h |- ! Gruppe - H !! |- | 1.Gang || 13,04 km/h |- | 2.Gang || 17,06 km/h |- | 3.Gang || 21,40 km/h |- | 4.Gang || 26,88 km/h |- | 3.Rückwärtsgang || 12,55 km/h |- |} ==Zapfwelle== * Mechanisch-betätigte, kupplungsunabhängige Motorzapfwelle * Stummel = 1 3/8"- 6 Keile * Einfach schaltbar, 540 U/min. * 540 U/min. mit 2.228 U/min.- Motordrehzahl Übertragbare Leistung = 72,0 DIN-PS * Oder 558 U/min. mit Nenndrehzahl Übertragbare Leistung = 71,8 DIN-PS ==Bremsen== * Pedal-betätigte, hydraulisch-nasse Scheibenbremse auf die Differentialseitenwellen wirkend, als Einzelrad-Bremse ausgebildet * Handhebel-betätigte Feststellbremse auf die Getriebe-Zwischenwelle wirkend ==Achsen== * Pendelnd-aufgehängte Stahlvorderachse Verstellbare Spurweite = 1.442 bis 2.007 mm (Optional = 1.727 bis 2.438 mm) * Pendelnd-gelagerte Lenktriebvorderachse mit zentraler Gelenkwelle Verstellbare Spurweite = 1.524 bis 1.981 mm * Hinterachse mit Kegelradgetriebe und Endantrieb als Stirnradübersetzung * Mechanisch-betätigte Differentialsperre Verstellbare Spurweite = 1.499 bis 2.184 mm (Optional = 1.575 bis 2.464 mm) * Vordere Achslast = 1.034 kg * Hintere Achslast = 2.350 kg ==Lenkung== * Hydrostatische Lenkung Förderleistung = 28,7 l/min. ==Hydrauliksystem und Kraftheber== * Hydraulischer Blockkraftheber mit Unterlenkerregelung * Einfachwirkender Hubzylinder * Dreipunktkupplung der Kategorie II "Funktionen:" * Heben, Senken, Schwimmstellung, Zugkraft- und Lageregelung * Zahnradpumpe mit 71,9 l/min bei 175 bar und Nenndrehzahl Max. Hubkraft 610 mm hinter den Koppelpunkten = 1.588 kg ==Steuergeräte== * Ein einfach- oder doppelt-wirkendes Steuergerät * Auf Wunsch bis zu drei einfach- oder doppelt-wirkende Steuergeräte ==Elektrische Ausrüstung== "12 Volt-Einrichtung" * Lichtmaschine, 14 V-72 A ==Maße und Abmessungen== * Länge über alles = 3.721 mm * Breite bei kleinster Spurweite = 1.740 mm * Höhe über Motorhaube = 1.763 mm * Höhe über Kabine = 2.621 mm * Höhe über Auspuff = 2.799 mm * Radstand = 2.362 mm (4 WD = 2.334 mm) * Bodenfreiheit unter der Vorderachse = 518 mm (4 WD = 459 mm) * Betriebsgewicht = 3.384 kg (4 WD = 3.747 kg) ==Bereifung== "Standardbereifung:" * Vorne = 7.50-16 AS Front (4 WD = 11.2-24 AS) * Hinten = 16.9-28 AS (4 WD = 18.4-28 AS) "Optional:" * Vorne = 6.50-16 und 9.5 L-15 AS Front (4 WD = 11.2-28 AS) * Hinten = 15.5-38 und 13.6-38 AS ==Füllmengen== * Tankinhalt = 121,0 l * Motoröl mit Filter = 9,5 l * Kühlsystem = 16,0 l * Getriebe = 11,4 l * Differential = 35,0 l ==Verbrauch== * Kraftstoffverbrauch = 16,6 l/h bei 52,8 kW und Nenndrehzahl ==Kabine== * Fahrerstand mit seitlichem Aufstieg, Schutzrahmen, gefederten Sitz, Öldruck- und Batterieanzeige, Motortemperaturanzeige, Blinker und Luftfilteranzeige, Traktormeter mit Anzeige der Motor- und Zapfwellendrehzahlen und der Betriebsstunden. "Optional:" * Kabine mit Komfort-Sitz, Heizung, Klimaanlage und Arbeitsscheinwerfer ==Sonderausrüstung== * Kabine * Zusatzgewichte * Arbeitsscheinwerfer * Heizung ==Literatur & Weblinks== * tractordata.com * Allis-Chalmers Agricultural Equipment Brochure * koneviesti.fi * digitalcommons.unl.edu (Test-Nr. 1545/84) <references /> {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Allis-Chalmers |HERSTELLER= Allis-Chalmers}} jxtyz7lgnphtz2rqu9svmqw0pwonk6y A Poem a Day/ 26. September: Herbst (R.M. Rilke) 0 123137 1091101 2026-09-19T15:31:40Z Mjchael 2222 Neue Seite (vgl. [[WB:AZ]]) 1091101 wikitext text/x-wiki =Herbst= [[Datei:Herbst.jpg|mini]] <poem> Die Blätter fallen, fallen wie von weit, als welkten in den Himmeln ferne Gärten; sie fallen mit verneinender Gebärde. Und in den Nächten fällt die schwere Erde aus allen Sternen in die Einsamkeit. Wir alle fallen. Diese Hand da fällt. Und sieh dir andre an: es ist in allen. Und doch ist Einer welcher dieses Fallen unendlich sanft in seinen Händen hält. <small>Rainer Maria Rilke</small> </poem> m5xonwm1plaea2ba41w19go4pl79qj4 Traktorenlexikon: Allis-Chalmers 6080 0 123138 1091114 2026-09-19T17:15:53Z Baupit 56622 Neue Seite (vgl. [[WB:AZ]]) 1091114 wikitext text/x-wiki {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Allis-Chalmers |HERSTELLER= Allis-Chalmers}} {{:Traktorenlexikon: Modell-Infobox | HERSTELLER = ALLIS-CHALMERS | MODELLREIHE = 6.000 er - Baureihe | MODELL = 6080 | BILD = | BILDBESCHREIBUNG = | BAUWEISE = Blockbauweise | PRODUKTIONSBEGINN = 1980 | PRODUKTIONSENDE = 1985 | STÜCKZAHL = 6.698 | EIGENGEWICHT = 2.767 (4 WD: 3.175) | LÄNGE = 3.805 | BREITE = 1.857 | HÖHE = 2.621 | RADSTAND = 2.438 (4 WD: 2.421) | BODENFREIHEIT = 536 (4 WD: 447) | SPURWEITE = | SPURWEITE VORNE = 1.524-2.235 (4 WD: 1.702-2.134) | SPURWEITE HINTEN = 1.448-2.363 | WENDERADIUS MIT LENKBREMSE = 3.630 (4 WD: 4.693) | WENDERADIUS OHNE LENKBREMSE = 3.980 (4 WD: 6.077) | BEREIFUNG VORNE = 7.50-16 ASF (4 WD: 11.2-28 AS) | BEREIFUNG HINTEN = 18.4-34 AS (4 WD: 16.9-34 AS) | LEISTUNG KW = 61,8 | LEISTUNG PS = 84 | NENNDREHZAHL = 2.300 | ZYLINDER = 4 | HUBRAUM = 3.287 | DREHMOMENTANSTIEG = 27 | KRAFTSTOFF = Diesel | KÜHLSYSTEM = Wasserkühlung | ANTRIEBSTYP = Heck- oder Allradantrieb | GETRIEBE = 12 V/3 R | HÖCHSTGESCHWINDIGKEIT = 30 | KATEGORIESORTIERUNG = }} Das Spitzenmodell der 6000 er - Baureihe war der ALLIS-CHALMERS 6080, er sollte die Lücke zwischen den kleineren Kompakttraktoren und der großen 7000 er - Serie schließen. Hinterachsantriebssystem und Triebwerk stammten beim ALLIS-CHALMERS 6080 vom FIAT 980. Die Vorderachse der Allradausführung wurde auch von FIAT bereitgestellt. Die optionale Kabine ähnelte der zur gleichen Zeit vorgestellten 8000 er - Serie. Mit fast 6.700 Exemplaren war er das absolute Erfolgsmodell der Serie. Nachdem im März 1985 die KLÖCKNER-HUMBOLD-DEUTZ AG den traditionellen Hersteller ALLIS-CHALMERS übernommen hatte, wurden Schlepper beider Hersteller angeboten. Eines dieser Modelle war der ALLIS-CHALMERS 6080, der jetzt als DEUTZ-ALLIS 6080 vermarktet wurde. ==Motor== * ALLIS-CHALMERS, Typ: 433 TI, stehender-wassergekühlter Viertakt-Vierzylinder-Reihen-OHC-Saugmotor mit Direkteinspritzverfahren, hängenden Ventilen, zahnradgetriebener Nockenwelle, Kolben-Ölkühlung, Reihen-Einspritzpumpe, Leichtmetall-Kolben, Trockenluftfilter, fünffach-gelagerter Kurbelwelle, mechanischer Fliehkraftregler, Turbolader incl. Ladeluftkühlung, Druckumlaufschmierung mittels Zahnradpumpe, Motorölkühler, Mehrlochdüse und Lamellenkühler mit Lüfter. * Bohrung = 98,2 mm, Hub = 107,9 mm * Verdichtungsverhältnis = 14,1:1 * Max. Drehmoment = 323 Nm bei 1.200 U/min. * Mittlere Kolbengeschwindigkeit = 8,28 m/s * Geregelter Drehzahlbereich = 775 bis 2.580 U/min ==Kupplung== * Trockene Doppelkupplung Typ: 12/12" Pedal-betätigte Fahrkupplung mit 304,8 mm Scheibendurchmesser * Mechanisch-betätigte Zapfwellenkupplung mit 304,8 mm Scheibendurchmesser ==Getriebe== * Im Ölbad laufendes, synchronisiertes Gruppen-Getriebe * Wechselgetriebe mit vier Vorwärts-und einem Rückwärtsgang * Gruppen-Getriebe mit drei Gruppen, in die Bereiche L-M und H unterteilt 12 Vorwärts- und 3 Rückwärtsgänge ==Geschwindigkeiten vor- und rückwärts== "Geschwindigkeiten mit Bereifung 18.4-34 AS" {| class="wikitable" |- ! bei Motordrehzahl (U/min) !! 2.300 |- ! Gruppe - L || |- | 1.Gang || 1,61 km/h |- | 2.Gang || 2,25 km/h |- | 3.Gang || 2,74 km/h |- | 4.Gang || 3,38 km/h |- | 1.Rückwärtsgang || 1,58 km/h |- ! Gruppe - M || |- | 1.Gang || 4,83 km/h |- | 2.Gang || 6,44 km/h |- | 3.Gang || 8,05 km/h |- | 4.Gang || 9,98 km/h |- | 2.Rückwärtsgang || 4,67 km/h |- ! Gruppe - H !! |- | 1.Gang || 14,16 km/h |- | 2.Gang || 18,51 km/h |- | 3.Gang || 23,17 km/h |- | 4.Gang || 28,97 km/h |- | 3.Rückwärtsgang || 13,52 km/h |- |} ==Zapfwelle== * Mechanisch-betätigte, kupplungsunabhängige Motorzapfwelle * Stummel = 1 3/8"- 6 Keile oder 1 3/8"- 20 teilig * Zweifach schaltbar, 540/1.000 U/min. * 540 U/min. mit 2.124 U/min.- Motordrehzahl * 1.000 U/min. mit 2.408 U/min.- Motordrehzahl Übertragbare Leistung = 75,5 DIN-PS * Oder 955 U/min. mit Nenndrehzahl Übertragbare Leistung = 84,8 DIN-PS ==Bremsen== * Pedal-betätigte, hydraulisch-nasse Scheibenbremse auf die Differentialseitenwellen wirkend, als Einzelrad-Bremse ausgebildet * Handhebel-betätigte Feststellbremse auf die Getriebe-Zwischenwelle wirkend ==Achsen== * Pendelnd-aufgehängte Stahlvorderachse Verstellbare Spurweite = 1.524 bis 2.235 mm (Optional = 1.727 bis 2.540 mm) * Pendelnd-gelagerte Lenktriebvorderachse mit zentraler Gelenkwelle Verstellbare Spurweite = 1.702 bis 2.134 mm * Hinterachse mit Kegelradgetriebe und Endantrieb als Stirnradübersetzung * Mechanisch-betätigte Differentialsperre Verstellbare Spurweite = 1.448 bis 2.362 mm (Optional = 1.829 bis 2.438 mm) * Vordere Achslast = 1.052 kg * Hintere Achslast = 2.391 kg ==Lenkung== * Hydrostatische Lenkung Förderleistung = 28,7 l/min. ==Hydrauliksystem und Kraftheber== * Hydraulischer Blockkraftheber mit Unterlenkerregelung * Einfachwirkender Hubzylinder * Dreipunktkupplung der Kategorie II "Funktionen:" * Heben, Senken, Schwimmstellung, Zugkraft- und Lageregelung * Zahnradpumpe mit 71,9 l/min bei 175 bar und Nenndrehzahl Max. Hubkraft 610 mm hinter den Koppelpunkten = 2.041 kg ==Steuergeräte== * Ein einfach- oder doppelt-wirkendes Steuergerät * Auf Wunsch bis zu drei einfach- oder doppelt-wirkende Steuergeräte ==Elektrische Ausrüstung== "12 Volt-Einrichtung" * Lichtmaschine, 14 V-72 A ==Maße und Abmessungen== * Länge über alles = 3.805 mm * Breite bei kleinster Spurweite = 1.857 mm * Höhe über Motorhaube = 1.763 mm * Höhe über Kabine = 2.621 mm * Höhe über Auspuff = 2.799 mm * Radstand = 2.438 mm (4 WD = 2.421 mm) * Bodenfreiheit unter der Vorderachse = 536 mm (4 WD = 447 mm) * Betriebsgewicht = 3.443 kg (4 WD = 3.851 kg) ==Bereifung== "Standardbereifung:" * Vorne = 7.50-16 AS Front (4 WD = 11.2-28 AS) * Hinten = 16.9-34 AS (4 WD = 18.4-34 AS) "Optional:" * Vorne = 7.50-20, 10.00-16 und 9.5 L-15 AS Front (4 WD = 12.4-28 AS) * Hinten = 15.5-38 und 13.6-38 AS ==Füllmengen== * Tankinhalt = 121,0 l * Motoröl mit Filter = 9,5 l * Kühlsystem = 16,0 l * Getriebe = 11,4 l * Differential = 35,0 l ==Verbrauch== * Kraftstoffverbrauch = 19,0 l/h bei 62,4 kW und Nenndrehzahl ==Kabine== * Fahrerstand mit seitlichem Aufstieg, Schutzrahmen, gefederten Sitz, Öldruck- und Batterieanzeige, Motortemperaturanzeige, Blinker und Luftfilteranzeige, Traktormeter mit Anzeige der Motor- und Zapfwellendrehzahlen und der Betriebsstunden. "Optional:" * Kabine mit Komfort-Sitz, Heizung, Klimaanlage und Arbeitsscheinwerfer ==Sonderausrüstung== * Kabine * Zusatzgewichte * Arbeitsscheinwerfer * Heizung ==Literatur & Weblinks== * tractordata.com * Allis-Chalmers Agricultural Equipment Brochure * koneviesti.fi * digitalcommons.unl.edu (Test-Nr. 1398/81) <references /> {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Allis-Chalmers |HERSTELLER= Allis-Chalmers}} iprdalboooq5wck422d4m1xxx54ft8y Traktorenlexikon: Fiatagri 82-94 0 123139 1091117 2026-09-19T19:09:34Z GregorWild 58033 Neue Seite (vgl. [[WB:AZ]]) 1091117 wikitext text/x-wiki {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Fiatagri |HERSTELLER= Fiatagri}} {{:Traktorenlexikon: Modell-Infobox | HERSTELLER = Fiatagri | MODELLREIHE = 94 er-Baureihe | MODELL = 82-94 (DT) | BILD = | BILDBESCHREIBUNG = | BAUWEISE = Blockbauweise | PRODUKTIONSBEGINN = 1993 | PRODUKTIONSENDE = 1996 | STÜCKZAHL = | EIGENGEWICHT = 3.470 (3.800 DT) | LÄNGE = 3.550 (DT: 3.680) | BREITE = 2.100 | HÖHE = 2.615 | RADSTAND = 2.340 (DT: 2.310) | BODENFREIHEIT = 430 | SPURWEITE = | SPURWEITE VORNE = | SPURWEITE HINTEN = | WENDERADIUS MIT LENKBREMSE = | WENDERADIUS OHNE LENKBREMSE = | BEREIFUNG VORNE = 13.6/12-24 | BEREIFUNG HINTEN = 16.9/14-34 | LEISTUNG KW = 59 | LEISTUNG PS = 80 | NENNDREHZAHL = 2.500 | ZYLINDER = 4 | HUBRAUM = 3.908 | DREHMOMENTANSTIEG = | KRAFTSTOFF = Diesel | KÜHLSYSTEM = Wasserkühlung | ANTRIEBSTYP = Heck- oder Allradantrieb | GETRIEBE = 12V/12R, 20V/12R oder 24V/12R | HÖCHSTGESCHWINDIGKEIT = 30 oder 40 | KATEGORIESORTIERUNG = Fiatagri }} Der Fiat 82-90 ersetzte den 80-90 mit der neuen Motorhaube der Winner Serie und den Kabinenversionen Comfort und Supercomfort der vorigen Baureihe. ==Motor== * Fiat-Iveco, Typ: 8045.05 T, stehender wassergekühlter Reihen-Viertakt-Vierzylinder-Saugmotor mit Direkteinspritzung, Druckumlaufschmierung mittels Zahnradpumpe, variabler Zentrifugal-Drehzahlregler, trockene Zylinderlaufbuchsen, Doppel-Kraftstofffilter, hängende Ventile, zahnradgetriebene Nockenwelle, Trockenluftfilter incl. Abscheider, Mehrloch-Einspritzdüse, fünffach-gelagerter Kurbelwelle, FIAT-Schalldämpfer, Verteiler-Einspritzpumpe sowie Kühler mit Thermostat und Lüfter. * Bohrung = 104 mm, Hub = 115 mm * Verdichtungsverhältnis = * Max. Drehmoment = * Kompressionsdruck = * Geregelter Drehzahlbereich = * Max. Einspritzdruck = ==Kupplung== * Trockene Valeo oder LuK-Doppelkupplung Pedal-betätigte Fahrkupplung mit 279 mm Scheiben-Durchmesser * Handhebel-betätigte Zapfwellenkupplung mit 279 mm Scheiben-Durchmesser ==Getriebe== Im Ölbad laufendes, synchronisiertes Fiat-Wendegetriebe Wechselgetriebe mit vier Gängen Dreistufiger Planeten-Untersetzer, in die Bereiche: L-M und S unterteilt Mechanische Wendeschaltung für Vorwärts- und Rückwärtsfahrt 12 Vorwärts- und 12 Rückwärtsgänge Optional als im Ölbad laufendes Lastschaltgetriebe Wechselgetriebe mit vier Gängen Dreistufiger Planeten-Untersetzer, in die Bereiche: L-M und S unterteilt Zweistufige Lastschaltung in die Bereiche: Lo und Hi unterteilt 24 Vorwärts- und 12 Rückwärtsgänge ==Geschwindigkeiten vor- und rückwärts== ==Zapfwelle== Handhebel-betätigte, unabhängige und unter Last schaltbare Motorzapfwelle, als Wegzapfwelle schaltbar Stummel = 1 3/8"- 6 Keile (Form-1) bzw. 1 3/8"- 21 teilig (Form-2) Zweifach schaltbar, 540/1.000 U/min. Optional dreifach schaltbar, 540, 540E und 1.000 U/min. 540 U/min. bei 2.198 U/min.- Motordrehzahl Übertragbare Leistung = kW Oder 614 U/min. mit Nenndrehzahl Übertragbare Leistung = kW 1.000 U/min. bei 2.381 U/min.- Motordrehzahl Oder 1.050 U/min. mit Nenndrehzahl Optional 540 E bei 1.715 U/min.- Motordrehzahl Optional unter Last schaltbare Frontzapfwelle 1.000 U/min. bei 2.222 U/min.- Motordrehzahl ==Bremsen== Pedal-betätigte, hydraulisch-nasse Scheibenbremse auf die Differential-Halbwellen der Hinterachse wirkend, als Einzelradbremse ausgebildet Automatische Allradzuschaltung als Vorderradbremse ausgebildet Handhebel-betätigte, unabhängige Feststellbremse als Scheibenbremse ausgebildet, auf die Nebenwelle wirkend Optional mit Ein- oder Zweikreis-Druckluftbremsanlage ==Achsen== * Pendelnd-gelagerte Teleskop-Vorderachse Verstellbare Spurweite = 1.400 bis 1.900 mm * Wahlweise als pendelnd-aufgehängte Planeten-Vorderachse mit mittiger Gelenkwelle und Kegelrad-Differentialsperre, auf Wunsch mit No Spin-System Verstellbare Spurweite = 1.550 bis 2.000 mm * Starre Hinterachse mit Ritzel, Kegelrad und Planetenendantrieb * Pedal-betätigte Differentialsperre Verstellbare Spurweite = 1.500 bis 2.100 mm * Vordere Achslast = xxx kg (DT = 1.760 kg) Hintere Achslast = xxx kg (DT = 2.200 kg) ==Lenkung== Hydrostatische DANFOSS-Lenkung, Typ: ORBITROL OSPC-100 Doppelt-wirkender Lenkzylinder ==Hydrauliksystem und Kraftheber== Hydraulischer Fiat-Regelkraftheber in Blockbauweise ausgeführt, mit mechanischer Unterlenkerregelung Ein einfachwirkender Hubzylinder Optional mit Zusatz-Hubzylinder Sicherheitsventil des Arbeitszylinder auf 225 bis 235 bar eingestellt Dreipunktaufhängung der Kategorie II mit Walterscheid-Schnellkuppler Funktionen = Heben, Senken, Schwimmstellung, Zugwiderstands-, Misch- und Lageregelung Förderleistung der Hydraulikpumpe = 44,5 l/min. bei 190 bar Max. Hubkraft an den Koppelpunkten = 3.500 kg (Optional 4.200 kg) Optional mit Front-HubwerkDreipunktaufhängung der Kategorie II Max. durchgehende Hubkraft = 1.800 kg ==Steuergeräte== Drei doppelt-wirkende Zusatz-Steuergeräte Optional bis zu fünf einfach- oder doppelt-wirkende Zusatz-Steuergeräte ==Elektrische Ausrüstung== * 12 Volt-Einrichtung * Batterie, 12 V-110 Ah (Optional: 120 Ah) * BOSCH-Anlasser, JD (12 V-3,5 kW) * MARELLI-Lichtmaschine, Typ: AA 125 (14 V-540 W) ==Maße und Abmessungen== * Länge über alles = 3.550 mm (DT = 3.680 mm) * Breite = 2.160 mm * Höhe über Kabine = 2.630 mm * Radstand = 2.340 mm (DT = 2.310 mm) * Bodenfreiheit unter der Vorderachse = 510 mm (DT = 430 mm) * Betriebsgewicht = 3.470 kg (DT = 3.800 kg) * Zul. Gesamtgewicht = 5.500 kg ==Bereifung== Standardbereifung * Vorne = 7.50/18 AS Front (DT = 13.6 R 24 AS) * Hinten = 13.6/12-38 (DT = 16.9/14-34) ==Füllmengen== * Tankinhalt = 93,0 l * Motoröl = 11,7 l * Kühlsystem = 10,0 l * Getriebe, Hinterachse und Hydraulik = 54,5 l * Lenktriebachse = 6,1 l * Endantriebe-Vorderachse je 1,2 l * Ölbadluftfilter = 0,7 l ==Verbrauch== ==Kabine== * Auf Silent-Blöcken gelagerte FIAT-Sicherheitskabine, Typ: CS-16 mit hydraulisch-gefederter GRAMMER-Komfortsitz, Typ: DS 85/H 3 A, Lade- und Öldruckanzeige, Seitenschaltung, Traktormeter, Kraftstoffanzeige, ausstellbare Dachluke, ausstellbare Heckscheibe, Heizungs- und Belüftungssystem und Arbeitsscheinwerfer. Optional mit Klimaanlage und Luftfedersitz ==Sonderausrüstung== * Zugpendel * Zusatz-Steuergeräte * Zusatzgewichte * Frontzapfwelle * Fronthubwerk * Klimaanlage * Lastschaltgetriebe ==Literatur & Weblinks== * Fiat Bedienungsanleitung 94er Serie (Druckschrift N. 603.64.279.00 * tractordata. com * fiatagri-info.com <references /> {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Fiatagri |HERSTELLER= Fiatagri}} 7boefemoi630odq8ri8aoou3img7zu1 1091118 1091117 2026-09-19T19:10:01Z GregorWild 58033 1091118 wikitext text/x-wiki {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Fiatagri |HERSTELLER= Fiatagri}} {{:Traktorenlexikon: Modell-Infobox | HERSTELLER = Fiatagri | MODELLREIHE = 94 er-Baureihe | MODELL = 82-94 (DT) | BILD = | BILDBESCHREIBUNG = | BAUWEISE = Blockbauweise | PRODUKTIONSBEGINN = 1993 | PRODUKTIONSENDE = 1996 | STÜCKZAHL = | EIGENGEWICHT = 3.470 (3.800 DT) | LÄNGE = 3.550 (DT: 3.680) | BREITE = 2.100 | HÖHE = 2.615 | RADSTAND = 2.340 (DT: 2.310) | BODENFREIHEIT = 430 | SPURWEITE = | SPURWEITE VORNE = | SPURWEITE HINTEN = | WENDERADIUS MIT LENKBREMSE = | WENDERADIUS OHNE LENKBREMSE = | BEREIFUNG VORNE = 13.6/12-24 | BEREIFUNG HINTEN = 16.9/14-34 | LEISTUNG KW = 59 | LEISTUNG PS = 80 | NENNDREHZAHL = 2.500 | ZYLINDER = 4 | HUBRAUM = 3.908 | DREHMOMENTANSTIEG = | KRAFTSTOFF = Diesel | KÜHLSYSTEM = Wasserkühlung | ANTRIEBSTYP = Heck- oder Allradantrieb | GETRIEBE = 12V/12R, 20V/12R oder 24V/12R | HÖCHSTGESCHWINDIGKEIT = 30 oder 40 | KATEGORIESORTIERUNG = Fiatagri }} Der Fiat 82-94 ersetzte den 80-90 mit der neuen Motorhaube der Winner Serie und den Kabinenversionen Comfort und Supercomfort der vorigen Baureihe. ==Motor== * Fiat-Iveco, Typ: 8045.05 T, stehender wassergekühlter Reihen-Viertakt-Vierzylinder-Saugmotor mit Direkteinspritzung, Druckumlaufschmierung mittels Zahnradpumpe, variabler Zentrifugal-Drehzahlregler, trockene Zylinderlaufbuchsen, Doppel-Kraftstofffilter, hängende Ventile, zahnradgetriebene Nockenwelle, Trockenluftfilter incl. Abscheider, Mehrloch-Einspritzdüse, fünffach-gelagerter Kurbelwelle, FIAT-Schalldämpfer, Verteiler-Einspritzpumpe sowie Kühler mit Thermostat und Lüfter. * Bohrung = 104 mm, Hub = 115 mm * Verdichtungsverhältnis = * Max. Drehmoment = * Kompressionsdruck = * Geregelter Drehzahlbereich = * Max. Einspritzdruck = ==Kupplung== * Trockene Valeo oder LuK-Doppelkupplung Pedal-betätigte Fahrkupplung mit 279 mm Scheiben-Durchmesser * Handhebel-betätigte Zapfwellenkupplung mit 279 mm Scheiben-Durchmesser ==Getriebe== Im Ölbad laufendes, synchronisiertes Fiat-Wendegetriebe Wechselgetriebe mit vier Gängen Dreistufiger Planeten-Untersetzer, in die Bereiche: L-M und S unterteilt Mechanische Wendeschaltung für Vorwärts- und Rückwärtsfahrt 12 Vorwärts- und 12 Rückwärtsgänge Optional als im Ölbad laufendes Lastschaltgetriebe Wechselgetriebe mit vier Gängen Dreistufiger Planeten-Untersetzer, in die Bereiche: L-M und S unterteilt Zweistufige Lastschaltung in die Bereiche: Lo und Hi unterteilt 24 Vorwärts- und 12 Rückwärtsgänge ==Geschwindigkeiten vor- und rückwärts== ==Zapfwelle== Handhebel-betätigte, unabhängige und unter Last schaltbare Motorzapfwelle, als Wegzapfwelle schaltbar Stummel = 1 3/8"- 6 Keile (Form-1) bzw. 1 3/8"- 21 teilig (Form-2) Zweifach schaltbar, 540/1.000 U/min. Optional dreifach schaltbar, 540, 540E und 1.000 U/min. 540 U/min. bei 2.198 U/min.- Motordrehzahl Übertragbare Leistung = kW Oder 614 U/min. mit Nenndrehzahl Übertragbare Leistung = kW 1.000 U/min. bei 2.381 U/min.- Motordrehzahl Oder 1.050 U/min. mit Nenndrehzahl Optional 540 E bei 1.715 U/min.- Motordrehzahl Optional unter Last schaltbare Frontzapfwelle 1.000 U/min. bei 2.222 U/min.- Motordrehzahl ==Bremsen== Pedal-betätigte, hydraulisch-nasse Scheibenbremse auf die Differential-Halbwellen der Hinterachse wirkend, als Einzelradbremse ausgebildet Automatische Allradzuschaltung als Vorderradbremse ausgebildet Handhebel-betätigte, unabhängige Feststellbremse als Scheibenbremse ausgebildet, auf die Nebenwelle wirkend Optional mit Ein- oder Zweikreis-Druckluftbremsanlage ==Achsen== * Pendelnd-gelagerte Teleskop-Vorderachse Verstellbare Spurweite = 1.400 bis 1.900 mm * Wahlweise als pendelnd-aufgehängte Planeten-Vorderachse mit mittiger Gelenkwelle und Kegelrad-Differentialsperre, auf Wunsch mit No Spin-System Verstellbare Spurweite = 1.550 bis 2.000 mm * Starre Hinterachse mit Ritzel, Kegelrad und Planetenendantrieb * Pedal-betätigte Differentialsperre Verstellbare Spurweite = 1.500 bis 2.100 mm * Vordere Achslast = xxx kg (DT = 1.760 kg) Hintere Achslast = xxx kg (DT = 2.200 kg) ==Lenkung== Hydrostatische DANFOSS-Lenkung, Typ: ORBITROL OSPC-100 Doppelt-wirkender Lenkzylinder ==Hydrauliksystem und Kraftheber== Hydraulischer Fiat-Regelkraftheber in Blockbauweise ausgeführt, mit mechanischer Unterlenkerregelung Ein einfachwirkender Hubzylinder Optional mit Zusatz-Hubzylinder Sicherheitsventil des Arbeitszylinder auf 225 bis 235 bar eingestellt Dreipunktaufhängung der Kategorie II mit Walterscheid-Schnellkuppler Funktionen = Heben, Senken, Schwimmstellung, Zugwiderstands-, Misch- und Lageregelung Förderleistung der Hydraulikpumpe = 44,5 l/min. bei 190 bar Max. Hubkraft an den Koppelpunkten = 3.500 kg (Optional 4.200 kg) Optional mit Front-HubwerkDreipunktaufhängung der Kategorie II Max. durchgehende Hubkraft = 1.800 kg ==Steuergeräte== Drei doppelt-wirkende Zusatz-Steuergeräte Optional bis zu fünf einfach- oder doppelt-wirkende Zusatz-Steuergeräte ==Elektrische Ausrüstung== * 12 Volt-Einrichtung * Batterie, 12 V-110 Ah (Optional: 120 Ah) * BOSCH-Anlasser, JD (12 V-3,5 kW) * MARELLI-Lichtmaschine, Typ: AA 125 (14 V-540 W) ==Maße und Abmessungen== * Länge über alles = 3.550 mm (DT = 3.680 mm) * Breite = 2.160 mm * Höhe über Kabine = 2.630 mm * Radstand = 2.340 mm (DT = 2.310 mm) * Bodenfreiheit unter der Vorderachse = 510 mm (DT = 430 mm) * Betriebsgewicht = 3.470 kg (DT = 3.800 kg) * Zul. Gesamtgewicht = 5.500 kg ==Bereifung== Standardbereifung * Vorne = 7.50/18 AS Front (DT = 13.6 R 24 AS) * Hinten = 13.6/12-38 (DT = 16.9/14-34) ==Füllmengen== * Tankinhalt = 93,0 l * Motoröl = 11,7 l * Kühlsystem = 10,0 l * Getriebe, Hinterachse und Hydraulik = 54,5 l * Lenktriebachse = 6,1 l * Endantriebe-Vorderachse je 1,2 l * Ölbadluftfilter = 0,7 l ==Verbrauch== ==Kabine== * Auf Silent-Blöcken gelagerte FIAT-Sicherheitskabine, Typ: CS-16 mit hydraulisch-gefederter GRAMMER-Komfortsitz, Typ: DS 85/H 3 A, Lade- und Öldruckanzeige, Seitenschaltung, Traktormeter, Kraftstoffanzeige, ausstellbare Dachluke, ausstellbare Heckscheibe, Heizungs- und Belüftungssystem und Arbeitsscheinwerfer. Optional mit Klimaanlage und Luftfedersitz ==Sonderausrüstung== * Zugpendel * Zusatz-Steuergeräte * Zusatzgewichte * Frontzapfwelle * Fronthubwerk * Klimaanlage * Lastschaltgetriebe ==Literatur & Weblinks== * Fiat Bedienungsanleitung 94er Serie (Druckschrift N. 603.64.279.00 * tractordata. com * fiatagri-info.com <references /> {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Fiatagri |HERSTELLER= Fiatagri}} h4a8yva28zjwcuf2chlnr6gb09tmsob Traktorenlexikon: Allis-Chalmers 6140 0 123140 1091119 2026-09-19T19:13:58Z Baupit 56622 Neue Seite (vgl. [[WB:AZ]]) 1091119 wikitext text/x-wiki {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Allis-Chalmers |HERSTELLER= Allis-Chalmers}} {{:Traktorenlexikon: Modell-Infobox | HERSTELLER = ALLIS-CHALMERS | MODELLREIHE = 6.000 er - Baureihe | MODELL = 6140 | BILD = | BILDBESCHREIBUNG = | BAUWEISE = Blockbauweise | PRODUKTIONSBEGINN = 1982 | PRODUKTIONSENDE = 1985 | STÜCKZAHL = | EIGENGEWICHT = 1.818 (4 WD: 2.000) | LÄNGE = 3.340 | BREITE = 1.732 | HÖHE = 1.593 | RADSTAND = 1.980 (4 WD: 1.935) | BODENFREIHEIT = 502 (4 WD: 419) | SPURWEITE = | SPURWEITE VORNE = 1.305-1.897 (4 WD: 1.321-1.524) | SPURWEITE HINTEN = 1.372-2.134 | WENDERADIUS MIT LENKBREMSE = 3.050 | WENDERADIUS OHNE LENKBREMSE = 3.480 | BEREIFUNG VORNE = 7.50-16 ASF (4 WD: 8.00-18 AS) | BEREIFUNG HINTEN = 14.9-28 AS | LEISTUNG KW = 31,6 | LEISTUNG PS = 43 | NENNDREHZAHL = 2.500 | ZYLINDER = 3 | HUBRAUM = 2.335 | DREHMOMENTANSTIEG = | KRAFTSTOFF = Diesel | KÜHLSYSTEM = Wasserkühlung | ANTRIEBSTYP = Heck- oder Allradantrieb | GETRIEBE = 10 V/2 R | HÖCHSTGESCHWINDIGKEIT = 30 | KATEGORIESORTIERUNG = }} Eigentlich gehörte der ALLIS-CHALMERS 6140 nicht zur 6000 er - Baureihe. Er war vielmehr ein kompakter Mehrzwecktraktor, der eine ganz eigene Nische in der ALLIS-CHALMERS Palette besetzte. Dabei war er ein leistungsfähiger aus Japan stammenden Kompaktschlepper, der von einem TOYOSHA-Dreizylinder-Diesel angetrieben wurde. Verblockt mit einem 10/2-Gänge-Synchrongetriebe mit einer breiten Spreizung der Arbeitsgeschwindigkeiten. Die Hinterachse verfügte über eine innenliegende Planetenuntersetzung und der mechanischer Allradantrieb war auf Wunsch erhältlich. ==Motor== * TOYOSHA, Typ: 3 S 233, stehender-wassergekühlter Viertakt-Dreizylinder-Reihen-OHV-Dieselmotor mit Wirbelkammer-Einspritzverfahren, C.A.V.-Fliehkraftregler, Druckumlaufschmierung mittels Zahnradpumpe, Kraftstoffkolbenpumpe, C.A.V.-Einspritzpumpe, KIKI-Mehrlochdüse, Zentrifugalölfilter, KIKI-Düsenhalter, vierfach-gelagerte Kurbelwelle, Trockenluftfilter, Kühlwasser-Kreiselpumpe und Lamellenkühler incl. Lüfter. * Bohrung = 98,04 mm, Hub = 103,12 mm * Verdichtungsverhältnis = 23:1 * Mittlere Kolbengeschwindigkeit = 8,59 m/sec. * Geregelter Drehzahlbereich = 750 bis 2.750 U/min. * Einspritzdruck = 190 bar ==Kupplung== * Pedal-betätigte, zweistufige-trockene Doppelkupplung Typ: 11/11" Erste Stufe Fahrkupplung mit 279,4 mm Scheibendurchmesser * Zweite Stufe Zapfwellenkupplung mit 279,4 mm Scheibendurchmesser ==Getriebe== * Im Ölbad laufendes, synchronisiertes Gruppen-Getriebe * Wechselgetriebe mit fünf Vorwärts-und einem Rückwärtsgang * Gruppen-Getriebe mit zwei Gruppen, in die Bereiche L und H unterteilt 10 Vorwärts- und 2 Rückwärtsgänge ==Geschwindigkeiten vor- und rückwärts== "Geschwindigkeiten mit Bereifung 14.9-28 AS" {| class="wikitable" |- ! bei Motordrehzahl (U/min) !! 2.500 |- ! Gruppe - L || |- | 1.Gang || 1,29 km/h |- | 2.Gang || 1,77 km/h |- | 3.Gang || 2,41 km/h |- | 4.Gang || 3,54 km/h |- | 5.Gang || 5,47 km/h |- | 1.Rückwärtsgang || 2,09 km/h |- ! Gruppe - H !! |- | 1.Gang || 7,08 km/h |- | 2.Gang || 9,50 km/h |- | 3.Gang || 11,59 km/h |- | 4.Gang || 17,22 km/h |- | 5.Gang || 28,49 km/h |- | 2.Rückwärtsgang || 11,43 km/h |- |} ==Zapfwelle== * Pedal-betätigte, unabhängige Motorzapfwelle * Stummel = 1 3/8"- 6 Keile * Einfach schaltbar, 540 U/min. * 540 U/min. mit 2.277 U/min.- Motordrehzahl Übertragbare Leistung = 38,6 DIN-PS * 594 U/min. mit Nenndrehzahl Übertragbare Leistung = 41,6 DIN-PS ==Bremsen== * Pedal-betätigte, nasse Scheibenbremse auf die Differentialseitenwellen wirkend, als Einzelrad-Bremse ausgebildet * Handhebel-betätigte Feststellbremse auf die Getriebe-Zwischenwelle wirkend ==Achsen== * Pendelnd-aufgehängte Stahlvorderachse Verstellbare Spurweite mit Bereifung 7.50-16 = 1.305 bis 1.897 mm (Bereifung 6.00-16 = 1.265 bis 1.937 mm) * Pendelnd-gelagerte Lenktriebvorderachse mit zentraler Gelenkwelle Verstellbare Spurweite = 1.308 bis 1.524 mm * Hinterachse mit Kegelradgetriebe und Endantrieb als Stirnradübersetzung * Mechanisch-betätigte Differentialsperre Verstellbare Spurweite mit Bereifung 14.9-28 = 1.372 bis 2.134 mm (Bereifung 13.6-28 = 1.372 bis 2.057 mm) * Vordere Achslast = 692 kg * Hintere Achslast = 1.331 kg ==Lenkung== * Hydrostatische Lenkung ==Hydrauliksystem und Kraftheber== * Hydraulischer Blockkraftheber mit Oberlenkerregelung * Einfachwirkender Hubzylinder * Dreipunktkupplung der Kategorie I/II "Funktionen:" * Heben, Senken, Schwimmstellung, Zugkraft- und Lageregelung * Open-Center mit Zahnradpumpe mit 37,9 l/min bei 175 bar und Nenndrehzahl Max. Hubkraft 610 mm hinter den Koppelpunkten = 1.447 kg ==Steuergeräte== * Ein einfach- oder doppelt-wirkendes Steuergerät * Auf Wunsch bis zu drei einfach- oder doppelt-wirkende Steuergeräte ==Elektrische Ausrüstung== "12 Volt-Einrichtung" * Batterie, 12 V-100 Ah * Anlasser, 12 V-2,5 kW * Lichtmaschine, 14 V-35 A ==Maße und Abmessungen== * Länge über alles = 3.340 mm * Breite bei kleinster Spurweite = 1.732 mm * Höhe über Motorhaube = 1.283 mm * Höhe über Lenkrad = 1.593 mm * Höhe über Auspuff = 2.235 mm * Radstand = 1.980 mm (4 WD = 1.935 mm) * Bodenfreiheit unter der Vorderachse = 502 mm (4 WD = 419 mm) * Betriebsgewicht = 2.023 kg (4 WD = 2.205 kg) ==Bereifung== "Standardbereifung:" * Vorne = 7.50-16 AS Front (4 WD = 8.00-18 AS) * Hinten = 13.6-28 und 14.9-28 AS ==Füllmengen== * Tankinhalt = 50,0 l * Motoröl mit Filter = 5,0 l * Kühlsystem = 8,0 l * Getriebe = 13,0 bis 15,0 l ==Verbrauch== * Kraftstoffverbrauch = 11,9 l/h bei 30,6 kW und Nenndrehzahl ==Kabine== * Fahrerstand mit Schutzrahmen, gefederten Sitz, Öldruck- und Ladeanzeige, Temperaturanzeige, Blinker, Traktormeter, Betriebsstundenzähler und Tankanzeige ==Sonderausrüstung== * Zusatzgewichte * Arbeitsscheinwerfer * Allradantrieb ==Literatur & Weblinks== * tractordata.com * Allis-Chalmers Agricultural Equipment Brochure * koneviesti.fi * digitalcommons.unl.edu (Test-Nr. 1445/82) <references /> {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Allis-Chalmers |HERSTELLER= Allis-Chalmers}} 196c1tjukg0vycp4ocfug7n1lku7iy4 Talmudisches Aramäisch 0 123141 1091120 2026-09-19T19:24:57Z נתנאל שטרן 104616 Neue Seite (vgl. [[WB:AZ]]) 1091120 wikitext text/x-wiki = Talmudisches Aramäisch = '''Talmudisches Aramäisch''' bezeichnet in diesem Lehrbuch vor allem das '''Jüdisch-Babylonische Aramäisch''' (englisch ''Jewish Babylonian Aramaic'', JBA), die aramäische Sprachform, die einen wesentlichen Teil der sprachlichen Überlieferung des babylonischen Judentums prägt. Sie begegnet besonders im [[w:de:Babylonischer Talmud|Babylonischen Talmud]] sowie in weiteren Texten der spätantiken und frühmittelalterlichen jüdischen Literatur. Der Babylonische Talmud ist sprachlich nicht einheitlich. Hebräische und aramäische Abschnitte stehen nebeneinander, und auch innerhalb des Aramäischen lassen sich Unterschiede zwischen Textschichten, Überlieferungstraditionen und Handschriften beobachten.<ref>Elitzur A. Bar-Asher Siegal: ''Introduction to the Grammar of Jewish Babylonian Aramaic''. 2., überarbeitete und erweiterte Auflage. Ugarit-Verlag, Münster 2016.</ref> Für das Erlernen der Sprache ist es deshalb sinnvoll, nicht nur einzelne häufige Wendungen auswendig zu lernen, sondern sich schrittweise mit Formenlehre, Satzbau und dem charakteristischen Wortschatz vertraut zu machen. Dieses Buch soll eine Einführung in die Sprache geben, wie sie zum Verständnis talmudischer Texte benötigt wird. Es ersetzt weder eine wissenschaftliche Grammatik noch ein Wörterbuch, sondern soll den Einstieg in deren Benutzung erleichtern. == Voraussetzungen == Vorkenntnisse im Aramäischen werden nicht vorausgesetzt. Hilfreich sind jedoch Kenntnisse der hebräischen Schrift. Wer bereits modernes oder biblisches Hebräisch kennt, wird manche Wörter und grammatische Strukturen wiedererkennen; zugleich sollte man sich davor hüten, aramäische Formen automatisch nach hebräischen Mustern zu deuten. == Lernziele == Nach der Arbeit mit den grundlegenden Kapiteln sollen Leserinnen und Leser * häufige aramäische Wörter und Partikeln erkennen, * Nominal- und Pronominalformen unterscheiden, * gebräuchliche Verbformen analysieren, * typische Frage- und Verknüpfungswörter verstehen, * einfache talmudische Sätze selbstständig zerlegen, * Wörterbücher und wissenschaftliche Grammatiken gezielt benutzen können. == Aufbau des Buches == === Schrift und Lautung === * [[Talmudisches Aramäisch/Schrift|Schrift und Orthographie]] * [[Talmudisches Aramäisch/Aussprache|Aussprache und Lesetraditionen]] === Grundwortschatz === * [[Talmudisches Aramäisch/Häufige Wörter|Häufige Wörter]] * [[Talmudisches Aramäisch/Partikeln|Partikeln und Konjunktionen]] * [[Talmudisches Aramäisch/Fragewörter|Fragewörter]] * [[Talmudisches Aramäisch/Präpositionen|Präpositionen]] === Formenlehre === * [[Talmudisches Aramäisch/Substantive|Substantive]] * [[Talmudisches Aramäisch/Adjektive|Adjektive]] * [[Talmudisches Aramäisch/Pronomen|Pronomen]] * [[Talmudisches Aramäisch/Verben|Das Verbalsystem]] === Syntax === * [[Talmudisches Aramäisch/Satzbau|Grundlagen des Satzbaus]] * [[Talmudisches Aramäisch/Nebensätze|Relativ- und Nebensätze]] * [[Talmudisches Aramäisch/Negation|Negation]] * [[Talmudisches Aramäisch/Fragesätze|Fragesätze]] === Sprache des Talmuds === * [[Talmudisches Aramäisch/Diskussionssprache|Sprache talmudischer Diskussionen]] * [[Talmudisches Aramäisch/Zitate und Einleitungen|Zitate und Einleitungsformeln]] * [[Talmudisches Aramäisch/Argumentation|Formeln der Argumentation]] * [[Talmudisches Aramäisch/Textanalyse|Einführung in die Textanalyse]] === Übungen und Lesestücke === * [[Talmudisches Aramäisch/Übungen 1|Grundübungen]] * [[Talmudisches Aramäisch/Übungen 2|Morphologische Übungen]] * [[Talmudisches Aramäisch/Lesestücke|Kommentierte Lesestücke]] * [[Talmudisches Aramäisch/Lösungen|Lösungshinweise]] == Ein erstes Beispiel == Ein sehr häufiges Fragewort ist '''מאי''' (''mai''), „was?“. : מאי טעמא Die Wendung bedeutet wörtlich etwa „Was ist der Grund?“ beziehungsweise im jeweiligen Zusammenhang „Warum?“. Für Anfänger ist es nützlich, einen solchen Ausdruck nicht nur als feste Übersetzung zu lernen. Er lässt sich auch grammatisch betrachten: : '''מאי''' – was? : '''טעמא''' – Grund, Begründung Auf diese Weise verbindet sich Wortschatzlernen mit der Analyse tatsächlicher Sprachstrukturen. Ein weiteres häufiges Wort ist '''מאן''' (''man''), „wer?“. Bereits die sichere Unterscheidung von '''מאי''' und '''מאן''' erleichtert die Orientierung in vielen kurzen talmudischen Fragen. == Zur Textüberlieferung == Beim Studium des Jüdisch-Babylonischen Aramäisch ist zu beachten, dass gedruckte Talmudausgaben nicht in jedem Einzelheit den ältesten erreichbaren Sprachzustand wiedergeben. Wissenschaftliche Untersuchungen berücksichtigen daher Handschriften und unterschiedliche Textzeugen. Moderne Grammatiken können an einzelnen Stellen Formen ansetzen oder bevorzugen, die von der vertrauten Druckfassung abweichen.<ref>Bar-Asher Siegal, ''Introduction to the Grammar of Jewish Babylonian Aramaic'', 2. Auflage, Münster 2016.</ref> Für dieses Lehrbuch bedeutet dies: Beispiele sollen nach Möglichkeit mit genauer Fundstelle angegeben werden. Wo verschiedene Lesarten für die grammatische Erklärung von Bedeutung sind, sollen sie ausdrücklich genannt werden. == Wörterbücher und Grammatiken == Für ein ernsthaftes Studium sind insbesondere folgende Werke hilfreich: * Elitzur A. Bar-Asher Siegal: ''Introduction to the Grammar of Jewish Babylonian Aramaic''. 2., überarbeitete und erweiterte Auflage. Ugarit-Verlag, Münster 2016. * Michael Sokoloff: ''A Dictionary of Jewish Babylonian Aramaic of the Talmudic and Geonic Periods''. 2., überarbeitete und erweiterte Auflage. Bar-Ilan University Press, 2020. Sokoloffs Wörterbuch ist besonders für die lexikalische Arbeit wichtig; Bar-Asher Siegals Grammatik bietet eine systematische Einführung in Laut- und Formenlehre sowie Syntax des Jüdisch-Babylonischen Aramäisch.<ref>Michael Sokoloff: ''A Dictionary of Jewish Babylonian Aramaic of the Talmudic and Geonic Periods''. 2. Auflage. Bar-Ilan University Press, 2020.</ref> == Arbeitsweise == Es empfiehlt sich, kurze Textabschnitte zunächst selbst zu analysieren. Dabei sollte man jedes unbekannte Wort bestimmen, Präfixe und Suffixe abtrennen und erst anschließend eine vollständige Übersetzung formulieren. Eine mögliche Reihenfolge ist: # Satzgrenzen feststellen. # Partikeln und Präpositionen markieren. # Verben bestimmen. # Pronomen und pronominale Suffixe erkennen. # Unbekannte Lexeme im Wörterbuch nachschlagen. # Erst danach den ganzen Satz übersetzen. Mit zunehmender Erfahrung wird dieser Ablauf weitgehend automatisch. == Literatur == <references /> * Bar-Asher Siegal, Elitzur A.: ''Introduction to the Grammar of Jewish Babylonian Aramaic''. 2., überarbeitete und erweiterte Auflage. Ugarit-Verlag, Münster 2016. * Sokoloff, Michael: ''A Dictionary of Jewish Babylonian Aramaic of the Talmudic and Geonic Periods''. 2., überarbeitete und erweiterte Auflage. Bar-Ilan University Press, 2020. == Siehe auch == * [[w:de:Aramäische Sprachen|Aramäische Sprachen]] * [[w:de:Babylonischer Talmud|Babylonischer Talmud]] * [[w:de:Hebräische Sprache|Hebräische Sprache]] [[Kategorie:Sprache]] [[Kategorie:Semitische Sprachen]] gqkpskviao6yvfrxl8a3rtrf2sfzweo Talmudisches Aramäisch/Wörterbuch 0 123142 1091121 2026-09-19T19:31:10Z נתנאל שטרן 104616 Neue Seite (vgl. [[WB:AZ]]) 1091121 wikitext text/x-wiki = Aramäisch–deutsches Wörterbuch = Dieses Wörterbuch enthält häufige Wörter und Wendungen des '''Jüdisch-Babylonischen Aramäisch''', insbesondere der Sprache des [[w:de:Babylonischer Talmud|Babylonischen Talmuds]]. Die Bedeutungsangaben sind bewusst knapp gehalten. Ein aramäisches Wort kann je nach Zusammenhang mehrere Bedeutungen besitzen. Außerdem können Handschriften und gedruckte Talmudausgaben unterschiedliche Schreibweisen überliefern. == Abkürzungen == * ''Adv.'' – Adverb * ''Adj.'' – Adjektiv * ''f.'' – Femininum * ''m.'' – Maskulinum * ''Pl.'' – Plural * ''Pron.'' – Pronomen * ''Präp.'' – Präposition * ''V.'' – Verb * ''wörtl.'' – wörtlich == א == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Wortart ! Deutsch | ! Anmerkung | | | | | | | | | | ----------- | - | ---------------- | - | ---------------- | - | ---------------------------------------- | - | ---------------------------------------------------------------- | | אבא | | ''abbā'' | | m. | | Vater | | Häufige Verwandtschaftsbezeichnung. | | - | | | | | | | | | | אחא | | ''aḥā'' | | m. | | Bruder | | Vgl. hebräisch אח. | | - | | | | | | | | | | אדם | | ''adam'' | | m. | | Mensch | | Vor allem in hebräisch beeinflussten Passagen. | | - | | | | | | | | | | אדרבה | | ''adrabba'' | | Adv. | | im Gegenteil; vielmehr | | Häufig in Argumentationen. | | - | | | | | | | | | | אזל | | ''azal'' | | V. | | gehen; weggehen | | Sehr häufiges Verb. | | - | | | | | | | | | | אי | | ''i'' | | Partikel | | wenn; falls; oder | | Die genaue Bedeutung hängt vom syntaktischen Zusammenhang ab. | | - | | | | | | | | | | איבעיא | | ''ibbaʿya'' | | V./Formel | | es wurde gefragt; die Frage stellte sich | | Besonders in '''איבעיא להו'''. | | - | | | | | | | | | | איבעיא להו | | ''ibbaʿya lehu'' | | Formel | | ihnen stellte sich die Frage | | Leitet eine talmudische Fragestellung ein. | | - | | | | | | | | | | איכא | | ''ikka'' | | Existenzpartikel | | es gibt; es ist vorhanden | | Gegensatz: '''ליכא'''. | | - | | | | | | | | | | איהו | | ''ihu'' | | Pron. | | er | | Personalpronomen der 3. Person Singular. | | - | | | | | | | | | | איהי | | ''ihi'' | | Pron. | | sie | | 3. Person Singular feminin. | | - | | | | | | | | | | אימת | | ''emat'' | | Fragewort | | wann? | | Frage nach einem Zeitpunkt. | | - | | | | | | | | | | איניש | | ''iniš'' | | m. | | Mensch; Person; jemand | | Sehr häufig: '''איניש''' kann auch unbestimmt „jemand“ bedeuten. | | - | | | | | | | | | | אינהו | | ''inhu'' | | Pron. | | sie | | 3. Person Plural. | | - | | | | | | | | | | אית | | ''it'' | | Partikel | | es gibt; vorhanden sein | | Z. B. '''אית ליה''' – „er hat“. | | - | | | | | | | | | | אית ליה | | ''it leh'' | | Wendung | | er hat | | Wörtl. etwa: „es gibt für ihn“. | | - | | | | | | | | | | איתמר | | ''itmar'' | | Formel | | es wurde gesagt; es wurde gelehrt | | Leitet häufig eine Diskussion von Lehrmeinungen ein. | | - | | | | | | | | | | אלא | | ''ella'' | | Konj. | | sondern; vielmehr; außer | | Häufig nach einer Verneinung. | | - | | | | | | | | | | אלמא | | ''alma'' | | Adv. | | daraus folgt; offenbar; also | | Kennzeichnet eine Schlussfolgerung. | | - | | | | | | | | | | אמא | | ''immā'' | | f. | | Mutter | | Verwandtschaftsbezeichnung. | | - | | | | | | | | | | אמאי | | ''ammai'' | | Fragewort | | warum? | | Sehr häufige talmudische Frage. | | - | | | | | | | | | | אמר | | ''amar'' | | V. | | sagen | | Eines der häufigsten Verben im Talmud. | | - | | | | | | | | | | אנא | | ''ana'' | | Pron. | | ich | | 1. Person Singular. | | - | | | | | | | | | | אנן | | ''anan'' | | Pron. | | wir | | 1. Person Plural. | | - | | | | | | | | | | אתא | | ''ata'' | | V. | | kommen | | Vgl. Imperativ '''תא'''. | | - | | | | | | | | | | אתתא | | ''itteta'' | | f. | | Frau; Ehefrau | | Häufige Nominalform. | | } | | | | | | | | | == ב == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | ----------- | - | ------------------------- | - | -------------------------------------------- | | ב | | ''bə-/ba-'' | | in; an; mit | | Präfixpräposition. | | - | | | | | | | | ביני | | ''bene'' | | zwischen; unter | | Häufig in zusammengesetzten Wendungen. | | - | | | | | | | | בישא | | ''biša'' | | schlecht; böse | | Gegensatz: '''טבא'''. | | - | | | | | | | | ביתא | | ''beta'' | | Haus | | Emphatische Nominalform. | | - | | | | | | | | בלא | | ''bəla'' | | ohne | | Präposition. | | - | | | | | | | | בר | | ''bar'' | | Sohn | | Auch Bestandteil vieler Namen. | | - | | | | | | | | בר | | ''bar'' | | außerhalb | | Eigenes Lexem; nicht mit „Sohn“ verwechseln. | | - | | | | | | | | בתר | | ''batar'' | | nach; hinter | | Auch zeitlich: „nachher“. | | - | | | | | | | | בתרא | | ''batra'' | | letzter; späterer | | Gegensatz zu '''קמא'''. | | - | | | | | | | | בהדי | | ''bahade'' | | mit; zusammen mit | | Sehr häufig in erzählenden Passagen. | | - | | | | | | | | בעי | | ''baʿe'' | | wollen; benötigen; fragen | | Bedeutung ist vom Zusammenhang abhängig. | | } | | | | | | | == ג == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | --------- | - | ------------------------ | - | ----------------------------------------------------- | | גבר | | ''gəvar'' | | Mann | | Grundform. | | - | | | | | | | | גברא | | ''gavra'' | | Mann; Person | | Häufige emphatische Form. | | - | | | | | | | | גופא | | ''gufa'' | | selbst; die Sache selbst | | Auch Diskursformel zum Wiederaufgreifen eines Themas. | | - | | | | | | | | גמר | | ''gəmar'' | | lernen; vollenden | | In rabbinischem Kontext häufig „lernen“. | | } | | | | | | | == ד == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | ---------- | - | ------------------------------- | - | ---------------------------------------------- | | ד־ | | ''də-'' | | der/die/das; von; dass; welcher | | Sehr wichtige Relativ- und Genitivpartikel. | | - | | | | | | | | דהבא | | ''dahava'' | | Gold | | Substantiv. | | - | | | | | | | | דידיה | | ''dideh'' | | sein; von ihm | | Wörtl. „das Seine“. | | - | | | | | | | | דידה | | ''didah'' | | ihr; von ihr | | Possessive Wendung. | | - | | | | | | | | דידי | | ''didi'' | | mein; von mir | | Possessiv. | | - | | | | | | | | דידן | | ''didan'' | | unser; von uns | | Possessiv. | | - | | | | | | | | דידהו | | ''didhu'' | | ihr; von ihnen | | 3. Person Plural. | | - | | | | | | | | דידך | | ''didakh'' | | dein; von dir | | Die genaue Form kann nach Genus variieren. | | - | | | | | | | | דילמא | | ''dilma'' | | vielleicht; möglicherweise | | Oft zur Einführung einer möglichen Einwendung. | | } | | | | | | | == ה == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | ----------------- | - | ------------------------- | - | ------------------------------------------------- | | הא | | ''ha'' | | siehe!; dies | | Demonstrative bzw. präsentierende Partikel. | | - | | | | | | | | האי | | ''hai'' | | dieser; diese; dieses | | Singular. | | - | | | | | | | | הכי | | ''hakhi'' | | so; auf diese Weise | | Sehr häufig. | | - | | | | | | | | הכי נמי | | ''hakhi nami'' | | ebenso; genauso auch | | Argumentative Formel. | | - | | | | | | | | הכי קאמר | | ''hakhi ka-amar'' | | so meint/sagt er | | Formel zur Neuinterpretation einer Aussage. | | - | | | | | | | | הכא | | ''hakha'' | | hier | | Gegensatz: dort. | | - | | | | | | | | היכא | | ''hekha'' | | wo? | | Auch in Bedingungs- und Relativkonstruktionen. | | - | | | | | | | | היכי | | ''hekhi'' | | wie? | | Z. B. '''היכי דמי'''. | | - | | | | | | | | היכי דמי | | ''hekhi dame'' | | wie liegt der Fall genau? | | Sehr häufige juristische Frage. | | - | | | | | | | | ההוא | | ''hahu'' | | jener; derjenige | | Demonstrativpronomen. | | - | | | | | | | | הני | | ''hane'' | | diese | | Plural. | | - | | | | | | | | הנך | | ''hanakh'' | | jene | | Demonstrativ, Plural. | | - | | | | | | | | השתא | | ''hašta'' | | jetzt; nun | | Auch logisch: „wenn nun ...“. | | - | | | | | | | | הוה | | ''hava'' | | sein; werden; geschehen | | Häufige Vergangenheitsform bzw. Hilfsverb. | | - | | | | | | | | הדר | | ''hadar'' | | zurückkehren; wieder | | Als Verb oder zur Bezeichnung einer Wiederholung. | | } | | | | | | | == ח == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | --------- | - | ------------ | - | ------------------------------------------------- | | חד | | ''ḥad'' | | eins; einer | | Kardinalzahl. | | - | | | | | | | | חזא | | ''ḥaza'' | | sehen | | In gedruckten Texten häufig Formen wie '''חזי'''. | | - | | | | | | | | חזי | | ''ḥazi'' | | sieh!; sieht | | Form von „sehen“. | | - | | | | | | | | חמרא | | ''ḥamra'' | | Wein | | Kontext beachten. | | - | | | | | | | | חמרא | | ''ḥamra'' | | Esel | | Homonym zu „Wein“. | | - | | | | | | | | חיי | | ''ḥayye'' | | leben; Leben | | Je nach Form Verb oder Substantiv. | | } | | | | | | | == ט == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | --------- | - | ---------------------------- | - | --------------------------------------- | | טבא | | ''ṭava'' | | gut | | Adjektiv. | | - | | | | | | | | טעמא | | ''ṭaʿma'' | | Grund; Begründung; Geschmack | | Besonders häufig in '''מאי טעמא'''. | | - | | | | | | | | טפי | | ''ṭəfe'' | | mehr; stärker | | Komparative bzw. adverbiale Verwendung. | | } | | | | | | | == י == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | ---------- | - | ---------------- | - | ----------------------------------------- | | ידע | | ''yədaʿ'' | | wissen; kennen | | Semitische Wurzel יד״ע. | | - | | | | | | | | יהב | | ''yahav'' | | geben | | Sehr häufig. | | - | | | | | | | | יומא | | ''yoma'' | | Tag | | Vgl. hebräisch יום. | | - | | | | | | | | יתיב | | ''yativ'' | | sitzen; bleiben | | Häufig auch in Erzählungen über Gelehrte. | | - | | | | | | | | יליף | | ''yalef'' | | lernen; ableiten | | Besonders für die Ableitung einer Regel. | | - | | | | | | | | ינוקא | | ''yenoqa'' | | Kind; Junge | | Häufig „Knabe“. | | } | | | | | | | == כ == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | --------- | - | --------------------- | - | ------------------------------ | | כד | | ''kad'' | | als; als gerade; wenn | | Temporale Konjunktion. | | - | | | | | | | | כל | | ''kol'' | | alles; jeder | | Sehr häufig. | | - | | | | | | | | כלבא | | ''kalba'' | | Hund | | Substantiv. | | - | | | | | | | | כמה | | ''kamma'' | | wie viel?; wie viele? | | Auch „einige“ je nach Kontext. | | } | | | | | | | == ל == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | ----------- | - | ------------------------------------- | - | ------------------------------------ | | ל־ | | ''lə-'' | | zu; für | | Präfixpräposition. | | - | | | | | | | | לא | | ''la'' | | nicht; nein | | Allgemeine Negation. | | - | | | | | | | | לאו | | ''lav'' | | nein; nicht | | Besonders in argumentativer Sprache. | | - | | | | | | | | לית | | ''let'' | | es gibt nicht; ist nicht vorhanden | | Negatives Gegenstück zu '''אית'''. | | - | | | | | | | | לית ליה | | ''let leh'' | | er hat nicht | | Wörtl. „es gibt für ihn nicht“. | | - | | | | | | | | ליכא | | ''lekka'' | | es gibt nicht | | Gegensatz zu '''איכא'''. | | - | | | | | | | | ליליא | | ''lelya'' | | Nacht | | Substantiv. | | - | | | | | | | | לגבי | | ''ləgabe'' | | hinsichtlich; gegenüber; in Bezug auf | | Häufige Präposition. | | } | | | | | | | == מ == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ------------ | - | ------------------- | - | ----------------------------- | - | ------------------------------------------------------------ | | מאי | | ''mai'' | | was? | | Eines der wichtigsten Fragewörter. | | - | | | | | | | | מאי טעמא | | ''mai ṭaʿma'' | | warum?; aus welchem Grund? | | Wörtl. „was ist der Grund?“. | | - | | | | | | | | מאן | | ''man'' | | wer? | | Frage nach einer Person. | | - | | | | | | | | מאנא | | ''mana'' | | Gefäß; Gerät; Gegenstand | | Je nach Kontext verschieden. | | - | | | | | | | | מיא | | ''maya'' | | Wasser | | Grammatisch meist als Pluralform behandelt. | | - | | | | | | | | מילתא | | ''milletha'' | | Wort; Sache; Angelegenheit | | Sehr häufig und semantisch breit. | | - | | | | | | | | מן | | ''min'' | | von; aus | | Präposition. | | - | | | | | | | | מנא | | ''mena'' | | woher? | | Nicht mit '''מאנא''' „Gefäß“ verwechseln. | | - | | | | | | | | מנא הני מילי | | ''mena hane mille'' | | woher wissen wir diese Dinge? | | Klassische Frage nach der Belegquelle einer Regel. | | - | | | | | | | | מנלן | | ''menalan'' | | woher wissen wir es? | | Zusammengezogene Frageform. | | - | | | | | | | | מצי | | ''matze'' | | können; imstande sein | | Oft mit folgendem Infinitiv oder Verb. | | - | | | | | | | | מעיקרא | | ''me-iqqara'' | | ursprünglich; zunächst | | Wörtl. etwa „vom Anfang her“. | | - | | | | | | | | מית | | ''mit'' | | sterben; gestorben sein | | Verb. | | - | | | | | | | | מיתיבי | | ''metive'' | | man erhob einen Einwand | | Leitet oft einen Einwand aus einer tannaitischen Quelle ein. | | } | | | | | | | == נ == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | ---------- | - | ------------------------------- | - | ------------------------------------------------------------ | | נהמא | | ''nahama'' | | Brot | | Häufiges Alltagswort. | | - | | | | | | | | נהרא | | ''nahara'' | | Fluss | | Je nach Wurzel und Kontext sind weitere Bedeutungen möglich. | | - | | | | | | | | נמי | | ''nami'' | | auch; ebenfalls | | Eines der häufigsten Adverbien. | | - | | | | | | | | ניחא | | ''niḥa'' | | verständlich; einleuchtend; gut | | Oft: „das ist verständlich, wenn ...“. | | - | | | | | | | | נפק | | ''nafaq'' | | hinausgehen; herauskommen | | Gegensatz zu „hineingehen“. | | - | | | | | | | | נחית | | ''naḥet'' | | hinabsteigen; heruntergehen | | Räumlich und übertragen. | | - | | | | | | | | נסיב | | ''nasiv'' | | nehmen; heiraten | | Kontextabhängig. | | } | | | | | | | == ס == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | ----------------- | - | ---------------------------------- | - | ----------------------------------------------------- | | סבר | | ''səvar'' | | meinen; annehmen; der Ansicht sein | | Besonders bei juristischen Positionen. | | - | | | | | | | | סגי | | ''saggi'' | | viel; genug | | Adjektivisch oder adverbial. | | - | | | | | | | | סליק | | ''saliq'' | | hinaufsteigen; sich ergeben | | Auch übertragen. | | - | | | | | | | | סלקא דעתך | | ''salqa daʿtakh'' | | du könntest meinen | | Wörtl. etwa „es steigt in deinen Sinn“. | | - | | | | | | | | סיפא | | ''sefa'' | | Ende; letzter Teil | | Besonders der zweite Teil einer Mischna oder Baraita. | | } | | | | | | | == ע == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | --------- | - | ----------------------------- | - | ----------------------------------------- | | עבד | | ''ʿavad'' | | tun; machen; arbeiten | | Sehr häufig. | | - | | | | | | | | על | | ''ʿal'' | | auf; über; wegen | | Präposition. | | - | | | | | | | | עלמא | | ''ʿalma'' | | Welt; Menschen; Allgemeinheit | | Z. B. „die Leute“. | | - | | | | | | | | עייל | | ''ʿayel'' | | hineingehen; hineinbringen | | Je nach Stamm transitiv oder intransitiv. | | - | | | | | | | | עובדא | | ''ʿuvda'' | | Tat; Vorfall; Fall | | Häufig bei berichteten Rechtsfällen. | | } | | | | | | | == פ == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | ---------- | - | ------------------------------------------- | - | ----------------------------------------------------------------- | | פליג | | ''palig'' | | widersprechen; anderer Meinung sein; teilen | | In Diskussionen häufig „widersprechen“. | | - | | | | | | | | פריק | | ''pareq'' | | lösen; befreien; beantworten | | Kann die Lösung einer Schwierigkeit bezeichnen. | | - | | | | | | | | פשיטא | | ''pešita'' | | selbstverständlich; offensichtlich | | Leitet oft die Frage ein, warum eine Aussage überhaupt nötig ist. | | } | | | | | | | == ק == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | ----------- | - | ---------------------------------------- | - | -------------------------------------------------------- | | קא | | ''qa'' | | Verlaufs-/Verbpartikel | | Häufig unmittelbar vor einem Verb. | | - | | | | | | | | קאמר | | ''qa-amar'' | | er sagt; er meint | | '''קא''' + Form von אמר. | | - | | | | | | | | קאי | | ''qaʾe'' | | stehen; sich befinden; sich beziehen auf | | Auch zur Erklärung, worauf eine Aussage Bezug nimmt. | | - | | | | | | | | קמא | | ''qamma'' | | erster; früherer | | Gegensatz: '''בתרא'''. | | - | | | | | | | | קמי | | ''qamme'' | | vor; vor jemandem | | Räumlich bzw. „in Gegenwart von“. | | - | | | | | | | | קם | | ''qam'' | | aufstehen; sich erheben | | Verb. | | - | | | | | | | | קרי | | ''qare'' | | lesen; nennen; rufen | | Kontext entscheidet. | | - | | | | | | | | קשיא | | ''qašya'' | | schwierig; Einwand bleibt bestehen | | Häufige Schlussformel nach einem ungelösten Widerspruch. | | } | | | | | | | == ר == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | ------------- | - | ------------------------------- | - | ---------------------------------------------------------------------------------- | | רבא | | ''rabba'' | | groß; bedeutend | | Nicht immer mit dem Eigennamen des Amora Rava zu verwechseln. | | - | | | | | | | | רישא | | ''reša'' | | Kopf; Anfang; erster Teil | | In juristischen Texten oft erster Abschnitt einer Quelle. | | - | | | | | | | | רמי | | ''rami'' | | werfen; legen; gegenüberstellen | | In Diskussionen kann es das Gegenüberstellen widersprüchlicher Quellen bezeichnen. | | - | | | | | | | | ורמינהו | | ''u-reminhu'' | | man stellte dem entgegen | | Formel zur Einführung eines Widerspruchs zwischen Quellen. | | } | | | | | | | == ש == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | ---------------- | - | --------------------------------------- | - | -------------------------------------------------------------------------- | | שבק | | ''šəvaq'' | | verlassen; lassen; erlauben | | Häufiges Verb. | | - | | | | | | | | שדר | | ''šaddar'' | | senden; schicken | | Verb. | | - | | | | | | | | שפיר | | ''šappir'' | | gut; richtig; angemessen | | Oft zustimmend: „zu Recht“. | | - | | | | | | | | שמע | | ''šəmaʿ'' | | hören | | Häufig auch im Sinne von „folgern/vernehmen“. | | - | | | | | | | | שמע מינה | | ''šəmaʿ minnah'' | | folgere daraus; daraus ist zu schließen | | Sehr wichtige Schlussformel. | | - | | | | | | | | שכח | | ''šəkaḥ'' | | finden | | Achtung: nicht automatisch nach neuhebräischem שכח „vergessen“ übersetzen. | | - | | | | | | | | שקיל | | ''šaqel'' | | nehmen; tragen | | Häufig in Paarung mit anderen Bewegungsverben. | | } | | | | | | | == ת == {| class="wikitable sortable" ! Aramäisch ! Umschrift ! Deutsch | ! Anmerkung | | | | | | | | ----------- | - | ------------ | - | ------------------------- | - | ------------------------------------------------------------------ | | תא | | ''ta'' | | komm! | | Imperativ von „kommen“. | | - | | | | | | | | תא שמע | | ''ta šəmaʿ'' | | komm und höre! | | Einführung eines Belegs oder Gegenbelegs. | | - | | | | | | | | תו | | ''tu'' | | wieder; ferner; außerdem | | Häufige verbindende Partikel. | | - | | | | | | | | תורא | | ''tora'' | | Ochse; Rind | | Häufig in Rechtsfällen. | | - | | | | | | | | תלת | | ''telat'' | | drei | | Zahlwort. | | - | | | | | | | | תנן | | ''tənan'' | | wir haben gelernt | | Üblicherweise Einführung eines Mischna-Zitats. | | - | | | | | | | | תניא | | ''tanya'' | | es wurde gelehrt | | Meist Einführung einer Baraita. | | - | | | | | | | | תרי | | ''tere'' | | zwei | | Maskuline Zahlform. | | - | | | | | | | | תיקו | | ''tequ'' | | die Frage bleibt ungelöst | | Talmudische Schlussformel bei einer unentschiedenen Fragestellung. | | } | | | | | | | == Häufige talmudische Wendungen == {| class="wikitable" ! Wendung ! Deutsche Wiedergabe | ! Funktion | | | | | | ------------ | - | --------------------------------- | - | ------------------------------------------- | | מאי טעמא | | Warum? / Aus welchem Grund? | | Frage nach der Begründung | | - | | | | | | מנא הני מילי | | Woher wissen wir dies? | | Frage nach der textlichen Grundlage | | - | | | | | | תא שמע | | Komm und höre | | Einführung eines Belegs | | - | | | | | | שמע מינה | | Daraus ist zu schließen | | Schlussfolgerung | | - | | | | | | פשיטא | | Das ist doch selbstverständlich | | Einleitung einer Schwierigkeit | | - | | | | | | מהו דתימא | | Man hätte meinen können | | Einführung einer verworfenen Möglichkeit | | - | | | | | | סלקא דעתך | | Du könntest meinen | | Hypothetische Annahme | | - | | | | | | איבעיא להו | | Ihnen stellte sich die Frage | | Einführung einer offenen Frage | | - | | | | | | מיתיבי | | Man erhob einen Einwand | | Einwand aus einer autoritativen Quelle | | - | | | | | | ורמינהו | | Man stellte dagegen | | Widerspruch zwischen Quellen | | - | | | | | | קשיא | | Es bleibt schwierig | | Widerspruch nicht vollständig gelöst | | - | | | | | | תיקו | | Die Frage bleibt offen | | Abschluss einer ungelösten Fragestellung | | - | | | | | | הכי קאמר | | So ist seine Aussage zu verstehen | | Neuinterpretation | | - | | | | | | הכי נמי | | Ebenso auch hier | | Analogie oder Zustimmung | | - | | | | | | אלמא | | Daraus folgt also | | Schlussfolgerung | | - | | | | | | דילמא | | Vielleicht aber ... | | Einführung einer Alternative | | - | | | | | | אמר מר | | Der Meister sagte | | Wiederaufnahme eines zuvor zitierten Textes | | - | | | | | | גופא | | Zur Sache selbst | | Rückkehr zu einem zuvor erwähnten Thema | | } | | | | | == Zahlen == {| class="wikitable" ! Zahl ! Aramäisch ! Umschrift | ! Deutsch | | | | | | | | --------- | - | ---- | - | ---------- | - | ------ | | 1 | | חד | | ''ḥad'' | | eins | | - | | | | | | | | 2 | | תרי | | ''tere'' | | zwei | | - | | | | | | | | 3 | | תלת | | ''telat'' | | drei | | - | | | | | | | | 4 | | ארבע | | ''arbaʿ'' | | vier | | - | | | | | | | | 5 | | חמש | | ''ḥameš'' | | fünf | | - | | | | | | | | 6 | | שית | | ''šet'' | | sechs | | - | | | | | | | | 7 | | שבע | | ''šəvaʿ'' | | sieben | | - | | | | | | | | 8 | | תמני | | ''temane'' | | acht | | - | | | | | | | | 9 | | תשע | | ''təšaʿ'' | | neun | | - | | | | | | | | 10 | | עשר | | ''ʿasar'' | | zehn | | } | | | | | | | == Personalpronomen == {| class="wikitable" ! Person ! Aramäisch | ! Deutsch | | | | | | --------- | - | -------- | - | --- | | 1. Sg. | | אנא | | ich | | - | | | | | | 2. Sg. | | את / אנת | | du | | - | | | | | | 3. Sg. m. | | איהו | | er | | - | | | | | | 3. Sg. f. | | איהי | | sie | | - | | | | | | 1. Pl. | | אנן | | wir | | - | | | | | | 2. Pl. | | אתון | | ihr | | - | | | | | | 3. Pl. | | אינהו | | sie | | } | | | | | == Wichtige Fragewörter == {| class="wikitable" ! Aramäisch ! Deutsch | ! Beispiel | | | | | | ---------- | - | --------- | - | ------------------------------ | | מאי | | was? | | מאי טעמא – warum? | | - | | | | | | מאן | | wer? | | מאן אמר – wer sagte? | | - | | | | | | אמאי | | warum? | | אמאי – warum? | | - | | | | | | היכא | | wo? | | היכא – wo? | | - | | | | | | היכי | | wie? | | היכי דמי – wie liegt der Fall? | | - | | | | | | אימת | | wann? | | Frage nach dem Zeitpunkt | | - | | | | | | כמה | | wie viel? | | Frage nach Menge oder Zahl | | - | | | | | | מנא | | woher? | | מנא הני מילי | | } | | | | | == Falsche Freunde und leicht zu verwechselnde Wörter == ; שכח : Im Jüdisch-Babylonischen Aramäisch häufig „finden“. Dies darf nicht ohne Weiteres mit dem neuhebräischen '''שכח''' „vergessen“ gleichgesetzt werden. ; חמרא : Kann je nach Kontext „Wein“ oder „Esel“ bedeuten. ; בר : Kann „Sohn“ bedeuten, aber eine formal gleiche bzw. ähnliche Form kann auch mit der Bedeutung „außerhalb“ auftreten. ; מילתא : Bedeutet nicht nur „Wort“, sondern sehr häufig auch „Sache“, „Angelegenheit“ oder „Aussage“. ; טעמא : Kann „Geschmack“ bedeuten, im argumentativen Sprachgebrauch des Talmuds jedoch häufig „Grund“ oder „Begründung“. ; קאי : Bedeutet ursprünglich „stehen“, wird aber sehr häufig abstrakter gebraucht, etwa „sich befinden“, „gelten“ oder „sich auf etwas beziehen“. == Benutzung des Wörterbuchs == Beim Übersetzen sollte nicht automatisch die erste deutsche Bedeutung gewählt werden. Sinnvoll ist folgende Reihenfolge: # die grammatische Form bestimmen, # Präfixe wie ב־, ל־, כ־ und ד־ erkennen, # pronominale Suffixe abtrennen, # die Grundform bestimmen, # den Satzkontext berücksichtigen, # anschließend ein wissenschaftliches Wörterbuch konsultieren. Besonders wichtig ist dies beim Babylonischen Talmud, da sich die Sprache der mittelalterlichen und modernen Druckausgaben teilweise von den in älteren Handschriften überlieferten Formen unterscheidet. == Weiterführende Wörterbücher == * Michael Sokoloff: ''A Dictionary of Jewish Babylonian Aramaic of the Talmudic and Geonic Periods''. 2., überarbeitete und erweiterte Auflage. Bar-Ilan University Press, Ramat Gan 2020. * Marcus Jastrow: ''A Dictionary of the Targumim, the Talmud Babli and Yerushalmi, and the Midrashic Literature''. London/New York 1903. * Elitzur A. Bar-Asher Siegal: ''Introduction to the Grammar of Jewish Babylonian Aramaic''. 2., überarbeitete und erweiterte Auflage. Ugarit-Verlag, Münster 2016. == Siehe auch == * [[Talmudisches Aramäisch/Grammatik|Grammatik]] * [[Talmudisches Aramäisch/Verben|Verben]] * [[Talmudisches Aramäisch/Partikeln|Partikeln]] * [[Talmudisches Aramäisch/Übungen|Übungen]] * [[Talmudisches Aramäisch/Lesestücke|Lesestücke]] [[Kategorie:Aramäische Sprache]] [[Kategorie:Wörterbuch]] cmnjm0svrgpsvbxaymovvrce5ajyih6 Traktorenlexikon: Allis-Chalmers 7000 0 123143 1091122 2026-09-19T20:54:03Z Baupit 56622 Neue Seite (vgl. [[WB:AZ]]) 1091122 wikitext text/x-wiki {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Allis-Chalmers |HERSTELLER= Allis-Chalmers}} {{:Traktorenlexikon: Modell-Infobox | HERSTELLER = ALLIS-CHALMERS | MODELLREIHE = 7.000 er - Baureihe | MODELL = 7000 | BILD = | BILDBESCHREIBUNG = | BAUWEISE = Blockbauweise | PRODUKTIONSBEGINN = 1975 | PRODUKTIONSENDE = 1979 | STÜCKZAHL = 7.264 | EIGENGEWICHT = 3.869 | LÄNGE = 4.648 | BREITE = 2.248 | HÖHE = 2.235 | RADSTAND = 2.692 | BODENFREIHEIT = 610 | SPURWEITE = | SPURWEITE VORNE = 1.524-2.235 | SPURWEITE HINTEN = 1.575-2.159 | WENDERADIUS MIT LENKBREMSE = 3.645 | WENDERADIUS OHNE LENKBREMSE = 4.191 | BEREIFUNG VORNE = 10.00-16 ASF | BEREIFUNG HINTEN = 18.4-38 AS | LEISTUNG KW = 79,4 | LEISTUNG PS = 108 | NENNDREHZAHL = 2.200 | ZYLINDER = 6 | HUBRAUM = 4.929 | DREHMOMENTANSTIEG = | KRAFTSTOFF = Diesel | KÜHLSYSTEM = Wasserkühlung | ANTRIEBSTYP = Heckantrieb | GETRIEBE = 12 V/3 R | HÖCHSTGESCHWINDIGKEIT = 30 | KATEGORIESORTIERUNG = }} Die 7000 er - Baureihe wurde komplett neu konstruiert. Auch ein kleines Modell war geplant, allerdings zeigte Kostenkalkulationen dass es zu teuer wäre. In der Folge wurde der ALLIS-CHALMERS 200 überarbeitet und als ALLIS-CHALMERS 7000 vorgestellt. Er wurde in zwei optisch unterschiedlichen Versionen angeboten, mit einem frühen kastanienbraunen Fahrgestell und einem späteren schwarzen Fahrgestell, jeweils mit unterschiedlichen Kabinen- und Getriebespezifikationen. Die Variante mit schwarzem Rahmen erhielt eine verbesserte ACOUSTA-Kabine und eine ölbadgekühlte Fahrkupplung. ==Motor== * ALLIS-CHALMERS, Typ: 649 T, stehender-wassergekühlter Viertakt-Sechszylinder-Reihen-OHC-Saugmotor mit Direkteinspritzverfahren, hängenden Ventilen, zahnradgetriebener Nockenwelle, Kolben-Ölkühlung, ROOSA-MASTER-Einspritzpumpe, Leichtmetall-Kolben, Trockenluftfilter, siebenfach-gelagerter Kurbelwelle, mechanischer Fliehkraftregler, Turbolader, Druckumlaufschmierung mittels Zahnradpumpe, Motorölkühler, Mehrlochdüse und Lamellenkühler mit Lüfter. * Bohrung = 98,43 mm, Hub = 107,95 mm * Verdichtungsverhältnis = 16,25:1 * Max. Drehmoment = 420 Nm bei 1.800 U/min. * Mittlere Kolbengeschwindigkeit = 7,92 m/s * Geregelter Drehzahlbereich = 775 bis 2.420 U/min * Max. Einspritzdruck = 245 bar ==Kupplung== * Pedal-betätigte, trockene Einscheibenkupplung Typ: 12" Fahrkupplung mit 304,8 mm Scheibendurchmesser * Interne-nasse Lamellenkupplung als Zapfwellenkupplung ausgebildet Lamellendurchmesser = 177,8 mm ==Getriebe== * Im Ölbad laufendes, synchronisiertes POWER-DIRECTOR-Getriebe * Wechselgetriebe mit vier Vorwärts-und einem Rückwärtsgang * Dreistufige hydraulische Lastschaltung, sie teilt jeden der mechanischen Gänge in drei hydraulische Stufen (LOW / DIRECT / OVERDRIVE) 12 Vorwärts- und 3 Rückwärtsgänge ==Geschwindigkeiten vor- und rückwärts== "Geschwindigkeiten mit Bereifung 18.4-38 AS" {| class="wikitable" |- ! bei Motordrehzahl (U/min) !! 2.200 |- ! STUFE - LOW || |- | 1.Gang || 3,06 km/h |- | 2.Gang || 6,28 km/h |- | 3.Gang || 8,53 km/h |- | 4.Gang || 19,79 km/h |- | 1.Rückwärtsgang || 5,79 km/h |- ! STUFE - DIRECT || |- | 1.Gang || 3,86 km/h |- | 2.Gang || 8,05 km/h |- | 3.Gang || 10,78 km/h |- | 4.Gang || 24,94 km/h |- | 2.Rückwärtsgang || 7,24 km/h |- ! STUFE - OVERDRIVE !! |- | 1.Gang || 4,99 km/h |- | 2.Gang || 9,98 km/h |- | 3.Gang || 13,52 km/h |- | 4.Gang || 31,06 km/h |- | 3.Rückwärtsgang || 9,01 km/h |- |} ==Zapfwelle== * Mechanisch-betätigte, unabhängige und lastschaltbare Motorzapfwelle * Stummel = 1 3/8"- 6 Keile oder 1 3/8"- 20 teilig * Zweifach schaltbar, 540/1.000 U/min. * 540 U/min. mit 2.121 U/min.- Motordrehzahl * 1.000 U/min. mit 2.159 U/min.- Motordrehzahl Übertragbare Leistung = 107,3 DIN-PS * Oder 1.019 U/min. mit Nenndrehzahl Übertragbare Leistung = 107,9 DIN-PS ==Bremsen== * Pedal-betätigte, Doppel-Scheibenbremse auf die Differentialseitenwellen wirkend, als Einzelrad-Bremse ausgebildet * Handhebel-betätigte Feststellbremse auf die Getriebe-Zwischenwelle wirkend ==Achsen== * Pendelnd-aufgehängte Stahlvorderachse Verstellbare Spurweite = 1.524 bis 2.235 mm * Hinterachse mit Kegelradgetriebe und Endantrieb als Stirnradübersetzung * Mechanisch-betätigte Differentialsperre Verstellbare Spurweite = 1.575 bis 2.159 mm (Optional bis 2.845 mm) * Vordere Achslast = 1.343 kg * Hintere Achslast = 2.989 kg ==Lenkung== * Hydrostatische Lenkung ==Hydrauliksystem und Kraftheber== * Hydraulischer Blockkraftheber mit Unterlenkerregelung * Einfachwirkender Hubzylinder * Dreipunktkupplung der Kategorie II "Funktionen:" * Heben, Senken, Schwimmstellung, Zugkraft- und Lageregelung * OPEN-CENTER mit Zahnradpumpe mit 79,5 l/min bei 175 bar und Nenndrehzahl Max. Hubkraft 610 mm hinter den Koppelpunkten = 2.941 kg ==Steuergeräte== * Ein einfach- oder doppelt-wirkendes Steuergerät * Auf Wunsch bis zu drei einfach- oder doppelt-wirkende Steuergeräte ==Elektrische Ausrüstung== "12 Volt-Einrichtung" ==Maße und Abmessungen== * Länge über alles = 4.648 mm * Breite je nach Spurweite = 2.248 bis 2.946 mm * Höhe über Motorhaube = 1.753 mm * Höhe über Lenkrad = 2.235 mm * Höhe über Auspuff = 2.870 mm * Radstand = 2.692 mm * Bodenfreiheit unter der Vorderachse = 610 mm * Betriebsgewicht = 4.332 kg ==Bereifung== "Standardbereifung:" * Vorne = 10.00-16 AS Front * Hinten = 18.4-38 AS "Optional:" * Vorne = 7.50-20, 11 L-15 und 9.5 L-15 AS Front * Hinten = 16.9-34, 20.8-34, 23.1-30, 16.9-38 und 18.4-34 AS ==Füllmengen== * Tankinhalt = 140,0 l * Motoröl mit Filter = 13,2 l * Kühlsystem = 21,3 l * Getriebe = 11,4 l * Differential = 30,3 l * Getriebe und Hydraulik = 34,0 l * Endantrieb je 5,7 l ==Verbrauch== * Kraftstoffverbrauch = 25,8 l/h bei 79,4 kW und Nenndrehzahl ==Kabine== * Fahrerstand mit seitlichem Aufstieg, Schutzrahmen, gefederten Sitz, Öldruck- und Batterieanzeige, Motortemperaturanzeige, Blinker und Luftfilteranzeige, Traktormeter mit Anzeige der Motor- und Zapfwellendrehzahlen und der Betriebsstunden. "Optional bzw. ab 1978 serienmäßig" * Kabine mit Komfort-Sitz, Heizung, Klimaanlage und Arbeitsscheinwerfer ==Sonderausrüstung== * Kabine * Zusatzgewichte * Arbeitsscheinwerfer * Heizung ==Literatur & Weblinks== * tractordata.com * Allis-Chalmers Agricultural Equipment Brochure * koneviesti.fi * digitalcommons.unl.edu (Test-Nr. 1195/75) <references /> {{:Traktorenlexikon: Navigation |HERSTELLER-LINK=Traktorenlexikon: Allis-Chalmers |HERSTELLER= Allis-Chalmers}} m6ea7i7d1hsc2gmxo1xnl930z00sbmr