Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » Octave - Fourier - Dreiecksfunktion
Autor
Universität/Hochschule J Octave - Fourier - Dreiecksfunktion
JamesNguyen
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 08.11.2020
Mitteilungen: 300
  Themenstart: 2021-12-12

Hallo, in meiner Aufgabenstellung ist von einer "2\pi-periodischen Dreiecksfunktion" die Rede die definiert ist durch f(x) = x für x < \pi/2 (1/3) (2\pi - x) für x >= \pi/2 Ich soll die Funktion sowie deren erste 5 Partialsummen der Fourierreihe plotten. 1. Problem: In obiger Definition ist eigentlich nicht gesagt wo die Periode anfängt und wo sie aufhört Was meint ihr könnte plausibel sein? 0-2pi 2pi-4pi usw. oder etwas anderes? Außerem wäre wenn man obige Definition exakt nehmen würde die Funktion nicht periodisch: ab pi/2 fällt sie ja nur noch 2. Problem: Ich habe mal angenommen, dass 0-2pi die Perioden sind Davor war meine Funktion so wie die exakte Definition: \sourceon nameDerSprache % Dieses Skript definiert die 2*pi - periodische Dreiecksfunktion. % Signatur der Funktion triangle function y = triangle(x) y = ( x <= pi/2 ) .* x + ( x > pi/2 ) * (1/3) .* (2*pi - x); endfunction \sourceoff Ich habe nun versucht die Perioden mit modulo irgendwie reinzubekommen: \sourceon nameDerSprache % Dieses Skript definiert die 2*pi - periodische Dreiecksfunktion. % Signatur der Funktion triangle function y = triangle(x) y = ( mod(x,2*pi) <= pi/2 ) .* x + ( mod(x,2*pi) > pi/2 ) * (1/3) .* (2*pi - x); endfunction \sourceoff Hier liefert aber Plot nicht das Gewünschte. Kann jemand helfen wie ich die Perioden programmiert bekomme. Wenn ich eine Funktion nur auf innerhalb einer Periode festlege. Vielen Dank, James Nguyen


   Profil
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 4422
  Beitrag No.1, eingetragen 2021-12-13

Du musst natürlich überall x durch mod(x, 2*pi) ersetzen und nicht nur in den Bedingungen. \sourceon matlab function y = triangle(x) m = mod(x, 2*pi); y = (m <= pi/2) .* m + (m > pi/2) .* (2*pi - m) / 3; endfunction \sourceoff --zippy


   Profil
JamesNguyen
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 08.11.2020
Mitteilungen: 300
  Beitrag No.2, vom Themenstarter, eingetragen 2021-12-13

Danke! stimmt nachvollziehbar (für mich vlt nicht ganz so einfach). Da war ich nicht ganz aufmerksam. Schön! Jetzt klappts. Ich gehe auch davon aus das die Perioden mit 0 bis 2pi beginnen.


   Profil
JamesNguyen
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 08.11.2020
Mitteilungen: 300
  Beitrag No.3, vom Themenstarter, eingetragen 2021-12-13

Heyhey. Jetzt weiß ich, was die Leute mit schönem Code meinen. Deiner sieht viel besser aus, danke. Ich übernehm das so. Das klappt also wenn der Parameter x implizit in m verschwindet.


   Profil
JamesNguyen hat die Antworten auf ihre/seine Frage gesehen.
JamesNguyen hat selbst das Ok-Häkchen gesetzt.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]