MathCAD-Reihe. Mayer R.V.

Trigonometrische Fourier-Reihe mit Mathcad.

Ziel der Arbeit

Erfahren Sie, wie Sie mit Mathcad periodische Funktionen in trigonometrische Fourier-Reihen erweitern und Diagramme von Teilsummen von Fourier-Reihen erstellen.

Ausrüstung

MathCAD-Softwarepaket.

Fortschritt

Möglichkeit

1) Erweitern Sie die Funktion in eine trigonometrische Fourier-Reihe

2) Erweitern Sie die Funktion zu einer trigonometrischen Fourier-Reihe in Kosinuswerten

3) Erweitern Sie die Funktion in eine trigonometrische Fourier-Reihe anhand von Sinuswerten

Arbeitserlaubnis

3.2.1 Die trigonometrische Fourier-Reihe einer Funktion ist eine Funktionsreihe der Form

3.2.4 Fourier-Koeffizienten wurden für die Funktion f(x) berechnet (bei Entwicklung in Kosinuswerten)

a 1 = 5, a 2 = 6, a 3 = 7

Schreiben Sie die trigonometrische Fourier-Reihe

3.2.5 Die Funktion f(x) wird dann in eine Fourier-Reihe in Form von Sinuswerten (ungerade) entwickelt

Blatt
Dokument Nr. Nr.
Unterschrift
Blatt
Dokument Nr.
Unterschrift
Datum
Blatt

3.1.2. Finden Sie die numerischen Eigenschaften der Zufallsvariablen x (x ist der Gewinn des Besitzers eines Lottoscheins).

____ Lose werden im Lotto gezogen.

Davon gewinnen sie ____ Rubel

Davon gewinnen sie jeweils ____ Rubel.

3.1.3. Finden Sie die numerischen Eigenschaften der Zufallsvariablen „x“

A). 0,15 b) -0,35 c) 0,35 d) 0,25 e) nicht bestimmbar.

3.2.3 Es gibt 200 Lotterielose. Es gibt 30 Gewinnlose. Wie groß ist die Wahrscheinlichkeit, dass es sich bei dem Los nicht um einen Gewinn handelt?

A). 1,7 b) 0,7 c) 0,17 d) 0,85 d) 0,15

3.2.4 Schreiben Sie eine Formel zur Berechnung der Varianz einer diskreten Zufallsvariablen.

3.2.5 Schreiben Sie eine Formel zur Berechnung der Standardabweichung einer diskreten Zufallsvariablen.

________________________________________________________________________________

3.2.6. D (y) = 25. Was ist die Standardabweichung?

A). ± 5 b) 5 c) -5 d) nicht bestimmbar.

3.2.7 Wie können Sie eine Gleichung in MathCAD lösen?

______________________________________________________________________________

______________ darf arbeiten

Arbeitsergebnisse

4.1. M(x) = ____________ D(x) = ____________ σ (x) = ___________

Blatt
Dokument Nr.
Unterschrift
Datum
Blatt
PR.140448.00.00
PRAKTISCHE ARBEIT 12

Finden von Punkt- und Intervallschätzungen

unbekannte Verteilungsparameter in Excel

1. Zweck der Arbeit

Lernen Sie, anhand einer bestimmten Stichprobe die numerischen Eigenschaften der Stichprobe zu bestimmen, die unbekannten Parameter der Gesamtbevölkerung abzuschätzen und die mathematischen Erwartungen der Gesamtbevölkerung mit einer bestimmten Konfidenzwahrscheinlichkeit abzuschätzen.

2.Ausrüstung:

IBM PC, Microsoft Excel-Shell.

Fortschritt

3. 1 Option

Schätzen Sie mit einer gegebenen Konfidenzwahrscheinlichkeit γ = mathematische Erwartung der Allgemeinbevölkerung für eine gegebene Stichprobe

_____________________________________________________________________________________

3. 2 Arbeitserlaubnis

1. Wie wird der Stichprobenmittelwert berechnet?

2. Wie wird die Stichprobenvarianz berechnet?

____________________________________________________________________________________________________________________________________________________________

3. Wie wird die Standardabweichung berechnet?

____________________________________________________________________________________________________________________________________________________________

4. Wie wird die korrigierte Stichprobenvarianz berechnet?

____________________________________________________________________________________________________________________________________________________________

5. Wie unterscheidet sich eine Punktschätzung eines unbekannten Verteilungsparameters von einer Intervallschätzung?

____________________________________________________________________________________________________________________________________________________________

6. Wie wird das Intervall berechnet, um die mathematische Erwartung der Bevölkerung abzuschätzen?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________


7. Was ist der Student-Koeffizient?

Ändern
Blatt
Dokument Nr.
Unterschrift
Datum
Blatt
PR.140448.00.00
____________________________________________________________________________________________________________________________________________________________

8. Wovon hängt der Wert des Student-Koeffizienten ab?

____________________________________________________________________________________________________________________________________________________________

Arbeiten dürfen:_____________________________________________________________

Arbeitsergebnisse

σ in = S in = t γ =

Abschluss

Im Rahmen dieser Arbeit habe ich die Formeln für Punkt- und Intervallschätzungen angewendet____________________________________________________________

_________________________________________________________________



Ändern
Blatt
Dokument Nr.
Unterschrift
Datum
Blatt
PR.140448.00.00

P

Glushach V.S. UIT-44

praktische Arbeit 1.2. Direkte und inverse Fourier-Transformation in MathCad.

Beherrschen der Arbeit in MathCad. Erwerb von Kenntnissen in der Verwendung der Laplace-Transformation zur Analyse der Spektralkomponenten von Signalen. Untersuchung von Zeit- und Frequenzskalen von Zeitreihen und Fourier-Transformation.

1. Erzeugen Sie eine Zeitreihe von drei Sinuskurven. Die Anzahl der Punkte muss 2^n betragen

2. Bestimmen Sie den Mittelwert und die Varianz.

3. Wir führen eine direkte und eine inverse Transformation F durch. Wir überlagern das doppelt umgewandelte Signal auf den Graphen der ursprünglichen Zeitreihe.

4. Finden Sie die Beziehung zwischen der Zeitreihenskala entlang der Zeitachse und der Fourier-Transformation entlang der Frequenzachse.

1. Wählen Sie die Zeitdiskretheit dt und die Anzahl der Punkte in der Zeitreihe in der Form nl:= 2 k

Sei k:= 9 nl:= 2 k nl=512 Abtastlänge in der Zeit T:=512

Sch ag von Or, vorausgesetzt, dass nl-1

Die Zeit ist ungefähr gleich nl. Dann ist i:=0..nl-l t. := i*dt

2. Wir erzeugen das Eingangssignal x als Summe dreier harmonischer Signale und bestimmen seine Grundstatistik.

À1:= 1 f1:= 0,05 xl i:= Al-sin/2*3,14*fl*t i) srl:= mean(xl) srl = 0,012 s1:=stdev(x1) s1=0,706

A2:= 0,5 f2:= 0,1 x2 i:= A2-sin/2*3,14*f2*t i) sr2:= mean(x2) sr2 = 3,792x10 -4 s2:=stdev(x2) s2=0,353

A3:= 0,25 f3:= 0,4 x3 i:= A3-sin/2*3,14*f3*t i) sr3:= mean(x3) sr3 = 3,362x10 -4 s3:=stdev(x3) s3=0,177

x i:= xl i + x2 i + x3 i sry:= Mittelwert(x) sry = 0,013 sy:= stdev(x) sy = 0,809

1. Direkte Fourier-Transformation in MathCad F:= fft(x)

Die maximale Periode der harmonischen Komponente, die in einer Zeitreihe vorhanden sein kann, entspricht der Abtastlänge. Diese harmonische Komponente entspricht der minimal möglichen Frequenz auf der Frequenzskala der Fourier-Transformation frnin und dementsprechend dem Schritt entlang der Frequenzachse der Fourier-Transformation df.

Tmax:= Tfrnin:=
df:= frnin df = 1,953 x 10 -3

Somit sind die minimale Frequenz und der Frequenzschritt der Fourier-Transformation gleich frnin = df = 1/T.

Die Fourier-Transformation hat eine Anzahl von Frequenz-Ordinaten, die halb so groß ist wie die Anzahl von Zeitreihen-Ordinaten in der Zeit n2=nl/2 oder, einschließlich des Nullpunkts (an dem die Fourier-Transformation nicht definiert ist)

n2:= 1 + 2 k -1 n2 = 257 j:= l..n2

Der aktuelle Frequenzindex ändert sich von j=l zu j=n2

In diesem Fall variiert die Frequenz von fmin =df= 1/T Maximalfrequenz finax:= n2*df fmax = 0,502

zu frnax=n2*df Aktuelle Frequenz f i:= i*df

f 1 = 1,953 x 10 -3 f 257 = 0,502

UM Bitte beachten Sie, dass die Fourier-Transformation nur für Frequenzen im Bereich von f=finin bis f=fmax definiert ist.

In diesem Fall entsprechen die Spitzen im Fourier-Spektrumsdiagramm den Frequenzen der ursprünglichen Sinuskurven, d. h. die Fourier-Transformation ermöglicht es Ihnen, die Frequenzkomponenten des Signals zu isolieren. Aber die Amplituden der harmonischen Komponenten spiegeln jetzt nicht die Amplituden der Komponenten der ursprünglichen Zeitreihe wider (wobei A1=1, A2=0,5, A3=0,25)

Beachten wir auch, dass bei dt = 1 die maximale Frequenz im Spektrum der Fourier-Transformation gleich frnax = 0,5 Schwingungen pro Zeiteinheit ist. Bei dt = 1 sec entspricht dies fmax = 0,5 Hz. In diesem Fall beträgt die Periode maximaler Frequenz Tfmax=1/0,5=2. Dies bedeutet, dass es für eine Periode maximaler Häufigkeit zwei Auswahlen der Zeitreihe gibt. Dies entspricht dem Satz von Kotelnikov, wonach zur Wiederherstellung eines harmonischen kontinuierlichen Signals aus einem diskreten Signal ohne Informationsverlust für eine Periode mindestens zwei zeitliche Abtastungen erforderlich sind.

3. Überprüfen wir die Übereinstimmung der Zeitreihen vor und nach der doppelten Fourier-Transformation. Dazu erhalten wir aus der resultierenden direkten Transformation die inverse Fourier-Transformation. Sie sollte mit der ursprünglichen Zeitreihe übereinstimmen, was durch die folgende Grafik FF:= ifft(F) bestätigt wird.

Mathcad enthält Funktionen zur Durchführung einer schnellen diskreten Fourier-Transformation (FFT) und ihrer Inversion. Mathcad PLUS bietet außerdem eine eindimensionale diskrete Wellentransformation und deren Inversion. Alle diese Funktionen haben Vektorargumente. Bei der Bestimmung des Vektors v Um die Wellentransformation oder Fourier-Transformation zu finden, stellen Sie sicher, dass das erste Element des Vektors den Index Null hat: v 0 . Wenn v 0 nicht definiert ist, setzt Mathcad es automatisch auf 0. Dies kann zu verzerrten Ergebnissen führen.

Einführung in die diskrete Fourier-Transformation

Mathcad umfasst zwei Arten diskreter Fourier-Transformationsfunktionen: fft/ifft Und cfft /icfft . Diese Funktionen sind diskret: Sie nehmen Vektoren und Matrizen als Argumente und geben diese zurück. Sie können nicht mit anderen Funktionen verwendet werden fft Und ift , wenn die beiden folgenden Bedingungen erfüllt sind:
  • Die Argumente sind real und
  • Der Datenvektor besteht aus 2 m Elementen.

Nutzen Sie die Funktionen cfft Und icfft in allen anderen Fällen.
Die erste Bedingung ist wegen der Funktionen notwendig fft/ifft Nutzen Sie die Tatsache, dass für reale Daten die zweite Hälfte der Fourier-Transformation die komplexe Konjugierte der ersten ist. Mathcad verwirft die zweite Hälfte des Ergebnisvektors. Dies spart sowohl Zeit als auch Speicherplatz bei den Berechnungen.

Funktionspaar cfft/icfft verwendet bei der Transformation keine Symmetrie. Aus diesem Grund ist es notwendig, sie für komplexe Daten zu verwenden. Da reelle Zahlen eine Teilmenge komplexer Zahlen sind, können Sie auch das Paar verwenden cfft/icfft für reelle Zahlen.

Die zweite Bedingung ist aufgrund des Funktionspaares erforderlich fft/ifft verwendet einen hocheffizienten schnellen Fourier-Transformationsalgorithmus. Dazu wird der Vektor des Arguments mit verwendet fft, muss 2 m Elemente haben. In Funktionen сfft/icfft Es wird ein Algorithmus verwendet, der als Argumente sowohl Matrizen als auch Vektoren beliebiger Größe akzeptiert. Wenn dieses Funktionspaar mit einer Matrix als Argument verwendet wird, wird eine zweidimensionale Fourier-Transformation berechnet.

Bitte beachten Sie, dass die Funktion nicht genutzt wird fft Für die direkte Konvertierung müssen Sie die Funktion verwenden ift für das Gegenteil. Ebenso, wenn Sie für die direkte Konvertierung verwenden cfft, dann ist es für die Umkehrung notwendig, zu verwenden icfft.

Unterschiedliche Formulierungen der Definition der Fourier-Transformation verwenden unterschiedliche Normalisierungskoeffizienten und Konventionen über das Vorzeichen der imaginären Einheit im Exponenten der Vorwärts- und Umkehrtransformation. Funktionen fft, ifft, cfft Und icfft Verwenden Sie 1/ als Normalisierungsfaktor und einen positiven Exponenten bei der direkten Umrechnung. Funktionen FFT , IFFT , CFFT Und ICFFT Verwenden Sie 1/N als Normalisierungsfaktor und einen negativen Exponenten bei der direkten Umrechnung. Diese Funktionen müssen paarweise verwendet werden. Zum Beispiel, wenn verwendet CFFT bei der direkten Konvertierung, notwendig verwenden ICFFT im Gegenteil.

Fourier-Transformation im Realbereich

Für reellwertige Vektoren mit 2 m Elementen können Sie einige Funktionen verwenden fft/ifft. Der Algorithmus zur Berechnung dieser Funktionen nutzt die Symmetrie, die nur für reale Daten besteht. Dies spart sowohl Zeit als auch Speicher für Berechnungen. Vektor v muss 2 m Elemente haben. Das Ergebnis ist ein komplexwertiger Vektor der Dimension 1+2 m-1. Wenn v eine andere Abmessung als 2 m hat, zeigt Mathcad die Fehlermeldung „ falsche Vektorgröße”.

Elemente des zurückgegebenen Vektors fft, nach der Formel berechnet

In dieser Formel N- Anzahl der Elemente in v, ich- imaginäre Einheit.

Elemente im von der Funktion zurückgegebenen Vektor fft, entsprechen unterschiedlichen Frequenzen. Um die tatsächliche Frequenz wiederherzustellen, ist es notwendig, die Messfrequenz des Originalsignals zu kennen. Wenn v Es gibt N-dimensionaler Vektor, der an die Funktion übergeben wird fft und die Messfrequenz des Originalsignals - fs, dann ist die entsprechende Frequenz gleich

Beachten Sie, dass es dadurch unmöglich ist, Frequenzen zu erkennen, die höher als die Messfrequenz des Originalsignals sind. Dies ist eine Einschränkung, die nicht durch Mathcad, sondern durch den eigentlichen Kern des Problems bedingt ist. Um ein Signal aus seiner Fourier-Transformation korrekt zu rekonstruieren, ist es notwendig, das Originalsignal bei einer Frequenz zu messen, die mindestens der doppelten Bandbreite entspricht. Eine umfassende Diskussion dieses Phänomens würde den Rahmen dieses Handbuchs sprengen, ist aber in jedem Lehrbuch zur digitalen Signalverarbeitung zu finden.

Vektor v muss 1+ 2 m Elemente haben, wobei M- ganz. Das Ergebnis ist ein komplexwertiger Vektor der Dimension 2 m+1 . Wenn v eine andere Abmessung als 1+2 m hat, zeigt Mathcad die Fehlermeldung „ falsche Vektorgröße".Streit v- ein Vektor, der dem von der Funktion erstellten ähnelt fft. Um das Ergebnis zu berechnen, erstellt Mathcad zunächst einen neuen Vektor w, komplexes Konjugat v und hängt es an den Vektor an v. Mathcad berechnet dann den Vektor D, deren Elemente nach der Formel berechnet werden:

Dies ist die gleiche Formel wie für fft, mit Ausnahme des Minuszeichens in der Funktion exp. Funktionen fft Und ift- Präzise Appelle. Für alle Echtwertigen v wahr ifft(fft(v))=v.

Fourier-Transformation im komplexen Bereich

Es gibt zwei Gründe, warum Transformationspaare nicht verwendet werden können fft/ifft, im vorherigen Abschnitt besprochen:
  • Daten können komplexwertig sein. Dies bedeutet, dass Mathcad die im realen Fall auftretende Symmetrie nicht mehr ausnutzen kann.
  • Der Datenvektor kann eine andere Dimension als 2 m haben. Dies bedeutet, dass Mathcad den vom Paar verwendeten hocheffizienten FFT-Algorithmus nicht nutzen kann fft/ifft.
Die komplexe Fourier-Transformation erfordert die folgenden Funktionen:
Abbildung 3: Verwendung schneller Fourier-Transformationen in Mathcad.

Ein paar Transformationen cfft/icfft kann mit Arrays jeder Größe arbeiten. Sie arbeiten jedoch viel schneller, wenn die Anzahl der Zeilen und Spalten als Produkt einer großen Anzahl kleinerer Faktoren dargestellt werden kann. Beispielsweise gehören Vektoren mit einer Länge von 2 m zu dieser Klasse, ebenso wie Vektoren mit Längen wie 100 oder 120. Andererseits verlangsamt ein Vektor, dessen Länge eine große Primzahl ist, die Berechnung der Fourier-Transformation.

Funktionen cfft Und icfft- zueinander umgekehrt. Das heißt, icfft(cfft(v))=v. Abbildung 3 zeigt Beispiele für die Verwendung der Fourier-Transformation in Mathcad.

Wenn als Argument cfft Wird eine Matrix verwendet, ist das Ergebnis eine zweidimensionale Fourier-Transformation der ursprünglichen Matrix.

Alternative Formen der Fourier-Transformation

Die oben diskutierten Definitionen der Fourier-Transformation sind nicht die einzig möglichen. Die folgenden Definitionen für die diskrete Fourier-Transformation und ihre Inversion finden sich beispielsweise im Buch von Ronald Bracewells: Die Fourier-Transformation und ihre Anwendungen(McGraw-Hill, 1986): Diese Definitionen sind in der Fachliteratur weit verbreitet. Um diese Definitionen anstelle der im vorherigen Abschnitt besprochenen zu verwenden, verwenden Sie die Funktionen FFT, IFFT, CFFT Und ICFFT. Sie unterscheiden sich wie folgt:

Funktionen FFT, IFFT, CFFT Und ICFFT werden ähnlich wie die im vorherigen Abschnitt besprochenen Funktionen verwendet.

Wellenkonvertierung

Ein Mathcad PLUS umfasst zwei Wellentransformationsfunktionen: zum Durchführen einer direkten eindimensionalen diskreten Wellentransformation und ihrer Inversion. Die Umrechnung erfolgt auf Basis der Daubechi-Welle mit vier Koeffizienten.

Teil 3. Gewöhnliche Differentialgleichungen in Mathcad lösen

Fourier-Reihe auf einem beliebigen Segment

Teil 2. Erweiterung von Funktionen in Fourier-Reihen

Aktionen mit komplexen Zahlen

Teil 1. Berechnungen mit komplexen Zahlen in Mathcad

Vorlesung Nr. 5

Thema: « Komplexe Variablen. Erweiterung von Funktionen in Fourier-Reihen. Differentialgleichungen lösen»

In Mathcad ist die imaginäre Einheit i definiert: und daher sind komplexe Zahlen und Operationen mit ihnen definiert.

Z=a+bi– algebraische Schreibweise einer komplexen Zahl.

a – Realteil, b – Imaginärteil

Exponentielle (exponentielle) Schreibweise einer komplexen Zahl,

A – Modul, φ – Argument (Phase)

Trigonometrische Schreibweise einer komplexen Zahl.

Beziehung zwischen Größen: a=A cos φ b=A sin φ

Z1=a1+j·b1, Z2=a2+j·b2

a) Addition (Subtraktion) Z3=Z1±Z2=(a1±a2)+j·(b1±b2)

b) Multiplikation c·Z1=a·c+j·b·c

Z3=Z1·Z2=(a1·a2-b1·b2)+j·(a1·b2+a2·b1)=A1A2ej(φ1+φ2)

c) Abteilung

d) Potenzierung n (natürlich)

e) Wurzelextraktion: , wobei k =0,1,2…n-1

Die Maschine akzeptiert nur Bogenmaß!!! Bogenmaß=Grad Grad=Bogenmaß

Beispiele:

Die Funktion f(x) ist im Intervall [-p;p] absolut integrierbar, wenn ein Integral existiert. Jede absolut integrierbare Funktion f(x) im Intervall [-p;p] kann ihrer trigonometrischen Fourier-Reihe zugeordnet werden:

Die Koeffizienten der trigonometrischen Fourier-Reihe werden Fourier-Koeffizienten genannt und mit den Euler-Fourier-Formeln berechnet: ,

Bezeichnen wir die n-te Teilsumme der Fourier-Reihe einer stückweise glatten Funktion f(x) im Intervall [-p;p]. Die Standardabweichung wird durch die Formel bestimmt:

Für jede beschränkte Funktion f(x), die auf [-p;p] integrierbar ist, ist die Teilsumme ihrer Fourier-Reihe ein trigonometrisches Polynom der besten Näherung n-ten Grades.

Beispiel:

Die Grafiken zeigen, wie die Teilsummen der Fourier-Reihe konvergieren. In der Nähe der Kontinuitätspunkte der Funktion f(x) tendiert die Differenz zwischen dem Wert der Funktion am Punkt x und dem Wert der Teilsumme der Reihe an diesem Punkt gegen Null als n®¥, was bedeutet völlig im Einklang mit der Theorie, da in diesem Fall. Es ist auch zu erkennen, dass die Differenz umso schneller gegen Null tendiert, je weiter der Punkt x von den Unstetigkeitspunkten der Funktion entfernt liegt.

Beispiel:

Für eine stückweise glatte Funktion im Intervall [-L;L] der Funktion f(x) wird das Problem der Erweiterung der Fourier-Reihe im Intervall [-L;L] durch lineare Ersetzung auf das Problem der Erweiterung der Funktion reduziert auf dem Intervall [-p;p]:

Betrachten wir Vereinfachungen in Fourier-Reihen unter verschiedenen Symmetriebedingungen:

Formel (1) Formel (2)


Lassen Sie es notwendig sein, eine Lösung für die Gleichung zu finden

mit der Anfangsbedingung. Diese Aufgabe heißt Cauchy-Problem . Entwickeln wir die gewünschte Funktion in eine Reihe in der Nähe des Punktes und beschränken wir uns auf die ersten beiden Terme der Entwicklung. Wenn wir Gleichung (1) berücksichtigen und bezeichnen, erhalten wir. Diese Formel kann viele Male angewendet werden, wobei die Werte der Funktion an immer neuen Punkten ermittelt werden.

Diese Methode zur Lösung gewöhnlicher Differentialgleichungen heißt Eulers Methode . Geometrisch bedeutet die Euler-Methode, dass wir bei jedem Schritt die Lösung (Integralkurve) durch ein Tangentensegment annähern, das am Anfang des Intervalls an den Lösungsgraphen gezogen wird. Die Genauigkeit der Methode ist gering und liegt in der Größenordnung von H. Sie sagen, dass die Euler-Methode eine Methode erster Ordnung ist, das heißt, ihre Genauigkeit nimmt linear mit abnehmendem Schritt zu H.

Es gibt verschiedene Modifikationen der Euler-Methode, um ihre Genauigkeit zu erhöhen. Sie alle basieren auf der Tatsache, dass die zu Beginn des Intervalls berechnete Ableitung durch den Durchschnittswert der Ableitung über dieses Intervall ersetzt wird.

Mod(x, y) – Rest der Division von x durch y. Das Ergebnis hat das gleiche Vorzeichen wie x; Winkel(x, y) – Winkel (im Bogenmaß) zwischen der positiven x-Achse und dem Vektor (x, y) in der XY-Ebene. Argumente müssen real sein. Gibt einen Wert zwischen 0 und 2π zurück. ceil(3.25) = 4 floor(3.25) = 3 Mantisse (x) := x − floor(x) Mantisse (3.45) = 0.45 Traditionelle Rundung: Roundoff (x) := if(mantissa (x)< 0.5, floor(x) , ceil(x)) roundoff (3.46) = 3 roundoff (3.56) = 4 Рис. 14. Создание функций округления На рис. 14 показано, как из этих функций могут быть сформированы функции округления. 4.4. Дискретное преобразование Фурье В Mathcad входят два типа функций для дискретного прямого и об- ратного преобразования Фурье: fft/ifft и cfft/icfft. Эти функции дискрет- ны: они берут в качестве аргументов и возвращают векторы и матрицы. Они не могут быть использованы с другими функциями. Используйте функции fft и ifft, если выполнены два следующих ус- ловия: аргументы вещественны, и вектор данных имеет 2m элементов. Первое условие необходимо, потому что функции fft/ifft используют тот факт, что для вещественных данных вторая половина преобразова- ния Фурье является комплексно сопряженной с первой. Mathcad отбра- сывает вторую половину вектора-результата. Это сохраняет время и память при вычислениях. Пара функций cfft/icfft не использует симметрию в преобразова- нии. По этой причине необходимо использовать их для комплексных данных. 41 Второе условие требуется, потому что пара функций fft/ifft исполь- зует высоко эффективный алгоритм быстрого преобразования Фурье. Для этого вектор аргумента, используемого с fft, должен иметь 2m эле- ментов. В функциях cfft/icfft использован алгоритм, который допускает в качестве аргументов как матрицы, так и векторы произвольного раз- мера. Когда эта пара функций используется с матрицей в качестве аргу- мента, вычисляется двумерное преобразование Фурье. Следует иметь в виду, что если для прямого преобразования исполь- зована функция fft, то для обратного преобразования необходимо ис- пользовать функцию ifft. Аналогично используются функции cfft/icfft. 4.5. Преобразование Фурье в вещественной области Для вещественных векторов с 2m элементами предпочтительно ис- пользовать функции fft/ifft. Функция fft(v) возвращает дискретное пре- образование Фурье, векторный аргумент которой можно интерпретиро- вать как результат измерений через равные промежутки времени некоторого сигнала. Вектор v должен содержать 2m элементов. Резуль- тат – комплекснозначный вектор размерности 1 + 2m–1. Если v имеет размерность, отличную от 2m, Mathcad выдает сообщение об ошибке "неверный размер вектора". Элементы вектора, возвращаемого fft, вычисляются по формуле n −1 ∑ vk e 2 πi (j n) k . 1 Cj = n k =0 В этой формуле n – число элементов в v, i – мнимая единица. Эле- менты в векторе, возвращенном функцией fft, соответствуют различ- ным частотам. Чтобы восстановить фактическую частоту, необходимо знать частоту измерения исходного сигнала. Если v есть n-мерный век- тор, переданный функции fft, и частота измерения исходного сигнала – fs, то частота, соответствующая Ck k fk = fs. n Обратите внимание, что это делает невозможным обнаружить часто- ты выше частоты измерения исходного сигнала. Это ограничение, нала- гаемое не Mathcad, а самой сутью проблемы. Чтобы правильно восста- новить сигнал по его преобразованию Фурье, необходимо произвести 42 i:= 0 .. 63 xi:= sin  π⋅  + rnd (1) − 0.5 i Формирование сигнала:    10  Применяется комплексное преобразование Фурье: c:= fft(x) N:= last (c) N = 32 Обращение преобразования Фурье: z:= ifft(c) N2:= last (z) N2 = 63 j:= 0 .. N k:= 0 .. N2 Графическое представление сигнала zk = xj = 2 –0.499 –0.499 2.34·10 –3 2.34·10–3 0.673 0.673 xi 0 0.659 0.659 1.274 1.274 0.674 0.674 –2 0 20 40 60 80 1.162 1.162 i 0.613 0.613 Фурье-образ 0.179 0.179 4 –0.044 –0.044 0.489 0.489 –0.69 –0.69 cj 2 –1.079 –1.079 –0.777 –0.777 –0.849 –0.849 –1.334 –1.334 0 0 10 20 30 40 j Рис. 15. Быстрые пр6еобразования Фурье в Mathcad 43 измерения исходного сигнала с частотой, по крайней мере, вдвое боль- шей, чем ширина полосы частот. Подробное обсуждение этой пробле- мы содержится в специальных курсах. Функция ifft(v) возвращает обратное дискретное преобразование Фурье. Вектор v должен иметь 1 + 2m элементов, где m – целое. Резуль- тат есть вектор размерности 2m+1. Аргумент v – вектор, подобный созданному функцией fft. Чтобы вы- числить результат, Mathcad сначала создает новый вектор w, комплекс- но сопряженный v, и присоединяет его к вектору v. Затем Mathcad вы- числяет вектор d, элементы которого вычисляются по формуле n −1 ∑ wk e−2πi(j n)k . 1 dj = n k =0 Это та же самая формула, что и для fft, кроме знака минус в функции экспоненты. Функции fft и ifft – точные обращения. Для всех веще- ственных v справедливо ifft(fft(v)) = v. Пример использования прямого и обратного преобразований Фурье приведен на рис. 15. 4.6. Альтернативные формы преобразования Фурье Определения преобразования Фурье, рассмотренные выше, не явля- ются единственно возможными. Например, часто используются следу- ющие определения прямого и обратного преобразований Фурье: n n ∑ f (τ)e−2πi(ν n)τ ; f (τ) = ∑ F (ν) e () . 1 2 πi τ / n ν F (ν) = n τ=1 v =1 Эти определения реализованы во встроенных функциях FFT/IFFT и ICFFT. Они отличаются от быстрого преобразования Фурье следующим: вместо коэффициента 1 n перед обеими формулами стоит коэф- фициент 1/n и коэффициент 1 в обратном преобразовании; знак минус появляется в показателе экспоненты прямого преобразо- вания и исчезает в формуле обратного. 4.7. Кусочно-непрерывные функции Кусочно-непрерывные функции полезны для управления ветвлени- ями и остановками вычислительных процессов. Имеются пять функций 44 Использование условных операторов 2 x:= −2 , − 1.8 .. 2 f (x) := x − 1 g (x) := if(f (x) >0 , f (x) , 0) g(x) ist gleich f(x), wenn f(x) > 0, andernfalls 0 4 4 2 f (x) g(x) 2 0 2 0 2 0 2 2 0 2 x x h (x) := if(x ≥ 1 , f (x) , − f (x)) sonst –f(x) 5 h(x) 0 Berechnungen fortsetzen, bis die Bedingung erfüllt ist 5 2 0 2 2 quess − A< err x −2 N:= 100 i:= 0 .. N a:= 1000 quess 0:= 10 err:= 10  quess i + a   quess i  quess i+ 1:= until (quess i) − a − err ,  2  2  N2:= last (quess) − 1 j:= 0 .. N2 j= quess j = (quess j)2 = 0 10 100 Число итераций N2 = 5 1 55 3.025·10 3 answer:= quess N2 2 36.591 1.339·10 3 3 31.96 1.021·10 3 answer = 31.623 4 31.625 1·10 3 5 31.623 1·10 3 Рис. 16. Условные выражения в Mathcad 45 Mathcad, относящихся к этому классу. Функция if полезна для выбора одного из двух значений, определяемого условием. Ступенчатая функ- ция Хевисайда Ф(х) и символ Кронекера δ(m, n) во многом аналогичны функции if. Функция until используется, чтобы управлять процессом итераций. Функция if(cond, tval, fval) возвращает значение tval, если cond отли- чен от 0 (истина) и возвращает fval, если cond равен 0 (ложь). Обычно в качестве аргумента cond выбирается булево выражение вида w = z, x >y, x< y, x ≥ y, x ≤ y, w ≠ z. Можно объединять булевы операторы, чтобы записать более сложные условия. Например, условие (x < 1) ⋅ (x >0) verhält sich wie ein logisches „und“, das nur dann 1 zurückgibt, wenn x zwischen 0 und 1 liegt. Ebenso gilt der Ausdruck (x > 1) + (x< 0) действует подобно логическому "или", возвращающему 1, если x >1 oder x< 0, и 0, если x заключено между 0 и 1. Функция until (x, z) возвращает z, пока выражение x не становится отрицательным; должно содержать дискретный аргумент. Функция until позволяет останавливать вычисления для последовательных значений дискретного аргумента. Функция until полезна в итеративных процес- сах с определенным условием сходимости. На рис. 16 приведены примеры использования функций if и until. Функция Хевисайда эквивалентна следующей функции: Ф (x) := if (x < 0,0,1) Символ Кронекера δ(m, n) возвращает 1, если m = n; иначе 0. Оба аргумента должны быть целочисленными. Символ Кронекера эквива- лентен функции δ (m, n) := if (m = n,1,0) Ступенчатая функция Хевисайда может быть использована для со- здания импульса шириной w: pulse (x, w) := Ф (x) − Ф (x − w) Можно определить также две полезные функции lowpass и highpass. Они обе являются фильтрами – умножение на них какого-либо сигнала 46 вырезает из этого сигнала кусок вокруг точки x, имеющий ширину 2w. Разница состоит в том, что lowpass оставляет только вырезанный ку- сок, highpass – все, кроме вырезанного куска. lowpass (x, w) := pulse (x+w, 2 ⋅ w) highpass (x, w) := 1 − pulse (x+w, 2 ⋅ w) 4.8. Статистические функции Для вычисления статистических оценок случайных совокупностей чисел в Mathcad могут использоваться следующие функции: mean(A) – возвращает среднее значение элементов массива А раз- мерности m × n по формуле m −1 n −1 ∑ ∑ Aij ; 1 mean(A) = mn i =0 j =0 var(A) – возвращает дисперсию элементов массива А размерности m × n согласно формуле m −1 n −1 ∑ ∑ Aij − mean(A) 1 2 var(A) = ; mn i =0 j =0 stdev(A) - возвращает среднеквадратичное отклонение (квадратный корень из дисперсии) элементов m × n массива А stdev(A) = var(A). 4.9. Плотности распределения вероятности Эти функции показывают отношение вероятности того, что случай- ная величина попадает в малый диапазон значений с центром в задан- ной точке, к величине этого диапазона. В Mathcad имеются функции семнадцати плотностей вероятностей. Отметим только некоторые из них: dnorm(x, µ, σ) – возвращает плотность вероятности нормального рас- пределения 1  (x − µ) 2  dnorm(x, µ, σ) = exp  − , 2πσ  2σ 2  47 в котором µ и σ есть среднее значение и среднеквадратичное отклоне- ние, σ >0; dunif(x, a, b) – berechnet die Wahrscheinlichkeitsdichte einer gleichmäßigen Verteilung  1, x ∈ ,  dunif(x, a, b) =  b − a  0,  x ∉, in der a und b Grenzen sind Punkteintervall, a< b. 4.10. Функции распределения Эти функции возвращают вероятность того, что случайная величи- на меньше или равна определенному значению. Функция распределе- ния вероятности – это функция плотности вероятности, проинтегриро- ванная от минус бесконечности до определенного значения. Приведем две из них: pnorm(x, µ, σ) – возвращает функцию нормального распределения со средним µ и среднеквадратическим отклонением σ (σ >0); punif(x, a, b) – gibt die Gleichverteilungsfunktion zurück. a und b sind die Grenzwerte des Intervalls (a< b). Mathcad имеет ряд функций для генерирования случайных чисел, имеющих разнообразные распределения вероятностей. Приведем две из них: rnorm(m, µ, σ) – возвращает вектор m случайных чисел, имеющих нормальное распределение (σ >0); runif(m, a, b) – gibt einen Vektor von m Zufallszahlen mit einer gleichmäßigen Verteilung zurück, in der a und b die Randpunkte des Intervalls (a) sind< b). Остальные встроенные статистические функции и их описания мож- но посмотреть, выбрав команду Функция из меню Вставка. 4.11. Интерполяция и функции предсказания Интерполяция заключается в использовании значений некоторой функции, заданных в ряде точек, чтобы предсказать значения между ними. В Mathcad можно или соединять точки данных прямыми линия- ми (линейная интерполяция) или соединять их отрезками кубического полинома (кубическая сплайн-интерполяция). 48 В отличие от функций регрессии, обсуждаемых в следующем разде- ле, функции интерполяции определяют кривую, точно проходящую че- рез заданные точки. Из-за этого результат очень чувствителен к ошиб- кам данных. Если данные зашумлены, следует рассмотреть возможность использования регрессии вместо интерполяции. Для линейной интерполяции используется функция linterp(vx, vy, x), которая по векторным данным vx и vy возвращает линейно интерполи- руемое значение y, соответствующее третьему аргументу x. Аргументы vx и vy должны быть векторами одинаковой длины. Вектор vx должен содержать вещественные значения, расположенные в порядке возраста- ния. Эта функция соединяет точки данных отрезками прямых, созда- вая, таким образом, ломаную линию. Интерполируемое значение для конкретного x есть ордината y соответствующей точки ломаной. Пример линейной интерполяции показан на рис. 17. Кубическая сплайн-интерполяция позволяет провести кривую через набор точек таким образом, что первые и вторые производные кривой непрерывны в каждой точке. Эта кривая образуется путем создания ряда кубических полиномов, проходящих через наборы из трех смежных то- чек. Кубические полиномы состыковываются друг с другом, чтобы об- разовать одну кривую. Чтобы провести кубический сплайн через набор точек: создайте векторы vx и vy, содержащие координаты x и y, через кото- рые нужно провести кубичный сплайн. Элементы vx должны быть рас- положены в порядке возрастания; вычислите вектор vs:=cspline(vx, vy). Вектор vs содержит вторые про- изводные интерполяционной кривой в рассматриваемых точках. Чтобы найти интерполируемое значение в произвольной точке, ска- жем х0, вычислите interp(vs, vx, vy, x0), где vs, vx и vy – векторы, опи- санные ранее. Обратите внимание, что можно сделать то же самое, вычисляя interp(cspline(vx, vy),vx,vy, x0). Пример использования кубической сплайн-интерполяции приведен на рис. 17 внизу. 49 Линейная интерполяция i:= 0 .. 5 VXi:=i VYi:=vd(1) VXi = VYi = –3 linterp(VX, VY, 1.5) = 0.389 0 1.268·10 1 0.193 linterp(VX, VY, 3.75) = 0.705 2 0.585 linterp(VX, VY, 4.1) = 0.758 3 0.35 4 0.823 x:= 0 , 0.1.. 5 5 0.174 1 linterp(VX , VY , x) 0.5 VYi 0 0 2 4 6 x , VX i Кубическая сплайн-интерполяция i:= 0 .. 5 VXi:= i VYi:= rnd (1) VS:= lspline (VX, VY) interp (VS, VX, VY, 1.5) = 0.188 interp (VS, VX, VY, 3.75) = 0.868 interp (VS, VX, VY, 4.1) = 0.989 1 VYi = 0.71 interp(VS , VX , VY , x) 0.304 0.5 VYi 0.091 0.147 0.989 0 0 2 4 6 0.119 x , VX i Рис. 17. Примеры интерполяции 50