Hallo zusammen. ich möchte dreieckförmige oder sägezahnförmige Funktion plotten, kann mir jemand weiterhelfen und schreiben wie die mathematische Funktion von Dreieck- und Sägezah- Funktion definiert sind. Danke schönmal im voraus. Grüß Mori
ich habs dummerweise nur als Code :/ ----------------------------------------------------------------
1 | float Funktionen(float w,float t,float p,float Faktor,float Amplitude,int G,int Funktion) |
2 | {
|
3 | |
4 | |
5 | float y=0; // Definition der Variable y, zum aufnehmen des errechneten y Wertes |
6 | |
7 | switch(Funktion) |
8 | {
|
9 | case 1: |
10 | y = cos(w*t+p)*Faktor*Amplitude; //Cosinus-Funktion |
11 | break; |
12 | |
13 | case 2: |
14 | y = sin(w*t+p)*Faktor*Amplitude; //Sinus-Funktion |
15 | break; |
16 | |
17 | case 3: |
18 | y = tan(w*t+p)*Faktor*Amplitude*-1; //Tangens-Funktion |
19 | break; |
20 | |
21 | case 4: |
22 | for (float n=1;n<G;n+=2) //Dreiecks-Funktion |
23 | y = (y*(+1)+((1/pow(n,2))*(cos(n*w*(t+p))*Faktor*Amplitude))); |
24 | y = (8/pow(PI,2))*y; |
25 | break; |
26 | |
27 | case 6: |
28 | |
29 | for (float n=1;n<G;n+=2) //RechtEck-Funktion |
30 | y = (y+(1/n)*sin(n*w*(t+p))*Faktor*Amplitude); |
31 | y = (4/PI)*y; |
32 | break; |
33 | |
34 | case 5: |
35 | for (float n=1;n<G;n++) //Sägezahn-Funktion |
36 | y = (y+(1/n)*sin(n*w*(t+p))*Faktor*Amplitude); |
37 | y = (-2/PI)*y; |
38 | break; |
39 | |
40 | default:; |
41 | }
|
42 | |
43 | |
44 | return y; //Rückgabe des grade errechnenten y wertes, der gewählten Funktion |
45 | }
|
---------------------------------------------- Edit: Hab doch was gefunden :) http://www.ilp.physik.uni-essen.de/vonderLinde/lehrveranstaltungen/PHYSIK_II/Material/fourier_reihen.pdf
danke Alex, die Fourierreihnenvon den beiden könne ich aber wollte eigentlich eine andere mathematische Gleichung für Dreieckfunktion und Sägezahnfunktion
Ich verstehe nicht, was an Dreieick und Sägezahn so kompliziert sein soll und wozu man diese komplexe Formel braucht?
Wie ne andere Formel? was hindert dich daran mit den Gleichungen deine Funktion zu plotten?
ich vergesse mich immer anzumelden.... Wenn Du das reinknallst sollten da lauter Dreiecke rauskommen :D
und x geht von -inf bis +inf. Da kommen aber nur Punkte raus! die musst dann mit einer Spline verbinden, ein Polynom ist mir noch nicht über den Weg gelaufen, das diesen Verlauf hat :D
Mori schrieb: > Funktion von Dreieck- und Sägezah- Funktion definiert sind. Sägezahn: f(x)=1/2 pi * x, x=[0.. 2 * pi) Dreieck mit Maximum bei xp: f(x)=1/xp * x - theta(x-xp) k (x - xp), x=[0.. 2 pi) theta(x)= 0 für x<0, = 1 für x >= 0 k ist passend zu wählen, so dass f(2 pi) = 0 wird.
Das Problem ist wahrscheinlich, dass beide Funktionen nicht stetig sind. Die Umkehrpunkte des Dreiecks und noch schlimmer der theoretisch unendlich schnelle Rücksprung des Sägezahns sind nicht ableitbar.
Differenzierbarkeit ist, soweit ich weiß, keine Voraussetzung für Stetigkeit. Die Dreiecksschwingung ist meiner Meinung nach durchaus stetig.
Stimmt, auf diese Feinheiten hatte ich nicht geachtet http://de.wikipedia.org/wiki/Stetigkeit#Differenzierbarkeit_stetiger_Funktionen "Stetige Funktionen sind nicht notwendig differenzierbar." "Eine Funktion heißt stetig, wenn verschwindend kleine Änderungen des Argumentes (der Argumente) nur zu verschwindend kleinen Änderungen des Funktionswertes führen."
Mori schrieb: > die Fourierreihnenvon den beiden könne ich aber wollte eigentlich > eine andere mathematische Gleichung für Dreieckfunktion und > Sägezahnfunktion Und? War inzwischen was passendes dabei?
Für den Sägezahn kannst du eine Modulo-Operation verwenden. f(x) = (m*x) MODULO n
Einen grossen Vektor nehmen, Bits abschneiden und Multiplizieren ist aber einfacher. Oder man mit nimmt einen noch gröéren Akku und multipliziert gleich die Freuquenz über die Schrittweite rein.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.