WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Sinusfunktion

 

IchbinSinus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.04.2011, 19:35     Titel: Sinusfunktion
  Antworten mit Zitat      
Also folgende Aufgabe bereitet mir etwas Bauchschmerzen:

Es soll die Berechnung und Darstellung der Sinusfunktion für variable Intervalle dargestellt werden.
Dabei soll eine der Intervallgrenze stets den Wert 0 aufweisen und die zweite Intervallgrenze durch den Bernutzer vorgegeben werden können (:O)


Intervalle : a) [-2pi,0]
b) [0,8]

Konkret lautet die Aufgabe: Erstellen Sie einen Funktionskopf (?!?!?) der es erlaubt, die zweite Intervallgrenze als Funktionsparameter vorzugeben.
Funktion soll keinen Rückgabeparameter (!?!?!?!) besitzen.

So jetzt habe ich die datei sinusPlot.m erstellt und folgendes für b) eingetippt

x=[0:0.02:2*pi];
y=sin(x);
plot(x,y);
grid on

soo.. das stimmt ja auch soweit, oder? nur wenn ich meinen Graphen mit dem Graphen auf den Übungsblatt vergleiche sehe ich z.b. dass bei mir die x-achse nur bis 7 geht... auf dem zettel jedoch bis 8 .. wie kann ich das verbessern?

Würde mein lösungsansatz den forderungen schon entsprechen ? nein oder.. bitte helfenn :S


dani
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 03.01.11
Wohnort: Wernberg
Version: ---
     Beitrag Verfasst am: 17.04.2011, 19:49     Titel:
  Antworten mit Zitat      
Hallo,
ein Funktionskopf bedeutet vermutlich, dass du deinen code als funktion aufrufst, und der funktion einen parameter übergibst (in deinem fall bei Aufgabe b ist es der Wert 8.

Die funktion könnte so aussehen:
Code:

function sinus(a)
x=[0:0.02:a];
y=sin(x);
plot(x,y);
grid on
 

diese musst du dann abspeichern unter dem namen sinus.m

wenn du dann in deinem skript oder cammand window folgendes ausrufst:
Code:

sinus(8)
 


führt er dir die funktion aus, plottet sie, gibt aber keinen wert zurück (kein rückgabeparameter).

Das Problem mit dem plotten war: er hat deshalb nicht 8 als letzten Wert auf der x-Achse geschrieben weil du nicht 8 sondern 2pi als intervallgrenze eingegeben hast.

Ich hoffe das hilft, lg dani
Private Nachricht senden Benutzer-Profile anzeigen
 
IchbinSinus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.04.2011, 20:04     Titel:
  Antworten mit Zitat      
okay.. jetzt mal langsam Very Happy


Wir sollten die sinusfunktionen in den intervallen jedoch als sinPlot darstellen...das steht in der Aufgabenstellung...

und das macht bestimmt ein unterschied wenn ich jetzt nur sin.m hab oder sinPlot ?? stimmts?

2. wenn ich dein code eingebe tut sich bei mir nachdem ich sinus(Cool oder nur sinus eingebe gar nichts...

kannst du mir noch weiter helfen?
 
dani
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 03.01.11
Wohnort: Wernberg
Version: ---
     Beitrag Verfasst am: 17.04.2011, 20:28     Titel:
  Antworten mit Zitat      
Hallo,

ich weiß nicht genau was ein sinplot ist.

es ist auch egal unter welchen namen du deine funktion speicherst.

ich hab es eben so gemacht dass ich ein file namens sinus.m gespeichert habe, in welchem genau das drin steht (und sonst nichts!):
Code:

function sinus(a)
x=[0:0.02:a];
y=sin(x);
figure, % so macht er jedesmal eine neue Figure auf
plot(x,y);
grid on
 


und dann kannst du vom commandwindow deine funktion aufrufen indem du
Code:

oder statt 8 auch eine beliebig andere zahl eintippst, diese dann deiner oberen intervallgranze entspricht.

Dann plottet matlab. (vielleicht hast du nur nichts gesehen, da matlab keine neue figure aufgemacht hat, dies kannst du ändern indem du vorher figure schreibst (siehe code).

Ich hoffe du verstehst meine Erläuterung, anders kann ich es momantan nicht erklären, ansonsten musst du bitte deine frage umformulieren

LG dani

PS: vielleicht hilft dir ja die datei weiter

sinus.m
 Beschreibung:

Download
 Dateiname:  sinus.m
 Dateigröße:  74 Bytes
 Heruntergeladen:  544 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
IchbinSinus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.04.2011, 20:54     Titel:
  Antworten mit Zitat      
Vielen dank.. das klappt..

müsste ich für

a) [-2pi,0]

folgendes schreiben?

function sinus(a)
x=[-2*pi:0.02:a];
y=sin(x);
figure,
plot(x,y);
grid on

wäre das so richtig?
 
dani
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 03.01.11
Wohnort: Wernberg
Version: ---
     Beitrag Verfasst am: 17.04.2011, 21:33     Titel:
  Antworten mit Zitat      
Kommt darauf an was du machen willst.

wenn du die obere intervallgranze ändern willst, dann ja.

Willst du aber die untere Intervallgrenze variabel machen, sieht das so aus:

Code:

function sinus(a)
x=[a:0.02:0];
y=sin(x);
figure,
plot(x,y);
grid on
 


wenn du beide Intervallgranzen mit Funktionsaufruf ändern willst, sieht das so aus:
Code:

function sinus(a,b)
x=[a:0.02:b];
y=sin(x);
figure,
plot(x,y);
grid on
 


und dann beim Aufruf der Funktion:

Code:

sinus(-2*pi, 0)
 


Viel Spaß noch!
Private Nachricht senden Benutzer-Profile anzeigen
 
IchbinSinus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.04.2011, 21:54     Titel:
  Antworten mit Zitat      
in der aufgabenstellung stand ja explizit die zweite intervallgrenze, d.h. meins wäre so richtig.. ok vielen dank..
leider ist die aufgabe immer noch nicht fertig und ich wäre weiterhin für jegliche hilfe sehr dankbar..

es solle folgende aufgaben in die funktion implementiert werden:

erstellung eines vektors mit 10.000 elementen, dessen werte im intervall [0,range] bzw. [range,0] liegen, wobei range die vorgegebene intervallgrenze ist

daher dachte ich mir:

x= linspace(0, a, 10000)

y= linspace(a,0,10000)

jedoch bekomme ich aufgrund der variablen a eine fehlermeldung-.-

ich soll jetzt zu diesem vektor dann die zugehörige sinuskurve berechnen

würde es da ausreichen sin (x) z.b. einzugeben?

weiterhin:

Stellen sie die Sinuskurve grafisch dar.

und dann kommt das wieder mit dem Plot -.-

Führen Sie die Funktion sinusPlot unter Verwendung unterschiedlicher negativer und positiver Intervallgrenzen aus dem Command Window aus.
Überprüfen Sie die korrekte FUnktionsweise der Funktion sinusPlot anhand der erstellten Plots.

Wir haben nie was mit diesem Plot gemacht.. ist unsers jetzt falsch Sad
 
dani
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 03.01.11
Wohnort: Wernberg
Version: ---
     Beitrag Verfasst am: 17.04.2011, 22:17     Titel:
  Antworten mit Zitat      
Mit sinusPlot bezeichnet der Auftraggeber der Übung nur die Funktion, die ich sinus genannt habe. Bezeichnung ist ja irrelevant.
Für die Aufgabe b) stimmt diese Variante, denn Intervall soll von Null bis variabel gehen

Code:

x= linspace(0, a, 10000)
 


Und für Aufgabe a) diese (untere Intervallgrenze veränderlich [range 0]):

Code:

x= linspace(a,0,10000) %a muss negativ sein!!!!
 


und der Rest der funktion bis auf die Zeile der Erstellung des x-Vektors ist ident.


Bezüglich der Fehlermeldung, keine Anhnugn welche.
Bitt immer relevanten Code dazu mitschicken.

lg
Private Nachricht senden Benutzer-Profile anzeigen
 
IchbinSinus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.04.2011, 22:45     Titel:
  Antworten mit Zitat      
Also wenn ich das so eintippe

folgt:

x= linspace(0, a, 10000)

??? Undefined function or variable 'a'.


was mach ich denn falsch Sad ...


und wenn a negativ ist kann ich dann einfach -a schreiben?
 
IchbinSinus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.04.2011, 23:05     Titel:
  Antworten mit Zitat      
Ich hab jetzt folgendes gemacht

function sinus(a)

x= linspace (0, a , 10000);
y= sin(x);
figure,
plot(x,y);
grid on


wäre das so richtig?


da steht jedoch dass ich zum vektor x die zugehörige sinuskurve berechnen soll mit dem Befehl sin ?..

was ist damit gemeint? wertetabelle oder wie?

wie tippt man das ein
 
dani
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 03.01.11
Wohnort: Wernberg
Version: ---
     Beitrag Verfasst am: 18.04.2011, 00:09     Titel:
  Antworten mit Zitat      
ja, du kannnst -a schreiben, wenn du dann für a eine positive zahl im funktionsaufrauf eingibst.

y=sin(x)
ist die sinuskurve die zum Vektor x gehört.



für die funktion mit der unteren Intervallgranze variabel und der oberen Intervallgrenze 0 kannst du auch

x= linspace( -a, 0, 10000);

schreiben, wenn du dann beim Funktionsuafruf sinus(a) für a eine positive zahl einsetzt.

lg
Private Nachricht senden Benutzer-Profile anzeigen
 
IchbinSinus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.04.2011, 14:37     Titel:
  Antworten mit Zitat      
irgendwie bin ich nicht weitergekommen Sad

hab jetzt geschrieben
Code:

function sinus(a)
x= linspace(0, a, 10000);
y= sin(a);
figure,
plot(x,y);
grid on
 


dann kommt die fehlermeldung:

??? Undefined function or method sinus for input arguments of type double.

langsam blicke ich bei der aufgabe gar nicht mehr durch ..


es sollte ja noch mit dem befehl sin die sinuskurve berechnet werde?!?!?
wenn ich sin(Cool z.b. eintippe in command window dann liefert der mir ein wert.. aber das ist bestimmt nicht gemeint oder ...

Sad

Edit by _Peter_: Bitte Codeumgebung benutzen. Danke.
 
IchbinSinus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.04.2011, 15:09     Titel:
  Antworten mit Zitat      
Okay ich habs..

jedoch weiß ich immer noch nicht was mit der Berechnung der sinuskurve gemeint ist.., ist das das was ich gemacht habe? :S
Sad
 
dani
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 03.01.11
Wohnort: Wernberg
Version: ---
     Beitrag Verfasst am: 18.04.2011, 19:07     Titel:
  Antworten mit Zitat      
Wenn du den sinus für einen bestimmten Wert berechnest, dann liefert Matlab dir nur einern Wert. Das ist dann die Amplitude die dein sinus hat (wie du's ja im plot siehst) für genau diesen Wert auf der x-Achse (in radiant).
Wenn du der Funktion sin jedoch einen Vektor übergibst (was du ja getan hast), dann bekommst du auch einen Vektor mit Funktionswerten (Y-Achse) , d.h. einen Wert für jeden X-wert den du übergeben hast zurück.
Und somit hast du eine Sinuskurve, die in einem gewissen Bereich definiert sein soll (z.B [0 2*pi]) berechnet.

lg Dani
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.