Plot der Funktion sinx/x - Nullstellendivision (Scilab)

kardinalsinus.jpgUm eine Funktion darzustellen, benötigt man einen Wertevorrat, sonst ist das Ergebnis der Funktionsanwendung nur ein Einzelwert. Ein sinnvoller Wertevorrat für den Sinus läuft von -pi bis pi bzw. ein Vielfaches davon. Damit die Darstellung mit ausreichender Werteanzahl aufgelöst ist: Schrittweite von 1/100.

p=3
x=[-p:1/100:p]*%pi;

y=sin(x)/x;
plot2d(x,y)

Wenn jetzt eine Fehlermeldung in der Scilab Konsole auftaucht, liegt es zunächst daran, dass wir mit y eine Vektordivision durchgeführt haben, deren Ergebnis ein Einzelwert ist. Damit kann der Grafikplot nicht durchgeführt werden. Die Durchführung eine Elementdivision wird mit einen . (punkt) codiert, also:

y=sin(x)./x;

Nun ist das Operationsergebnis korrekt. Da dabei aber eine Division durch 0 durchgeführt wird, kommt es zu einer erneuten Fehlermeldung. Diese können wir vermeiden, indem wir z.B. zuvor eine Ausnahme definieren, z. B. durch den Befehle ieee(2). Der sorgt dafür, dass die Werte, die eine Fehlermeldung produzieren auf nan gesetzt werden. Nan steht für not a number. Diese Werte werden dann nicht ausgewertet.

Alternativ können vor der Berechnung die mit find() gefundenen Nullstellen des Wertevorrats als %nan definiert werden.

Nullenstellen=find(x==0);
x(Nullenstellen)=%nan;

Jetzt funktioniert die Darstellung der Funktion problemlos!

Die versierten Mathematiker erkennen in der Funktion sin(x)/x den Kardinalsinus, für den es in Scilab die Funktion sinc() gibt. Hier verkürzt sich unser Darstellungsproblem auf diese Zeilen:

sinusK=sinc([-3:1/100:3]*%pi)
plot2d(sinusK)

-> Scilab Schulungen

Der Kommentarbereich ist geschlossen.