Seri MathCAD. Mayer R.V.

Deret Trigonometri Fourier menggunakan Mathcad.

Tujuan pekerjaan

Belajar memperluas fungsi periodik menjadi deret Fourier trigonometri menggunakan Mathcad dan membuat grafik jumlah parsial deret Fourier.

Peralatan

Paket perangkat lunak MathCAD.

Kemajuan

Pilihan

1) Perluas fungsi tersebut menjadi deret Fourier trigonometri

2) Perluas fungsi tersebut menjadi deret Fourier trigonometri dalam kosinus

3) Perluas fungsi tersebut menjadi deret Fourier trigonometri dalam bentuk sinus

Izin untuk bekerja

3.2.1 Deret Fourier trigonometri suatu fungsi merupakan deret fungsional yang bentuknya

3.2.4 Koefisien Fourier dihitung untuk fungsi f(x) (bila diperluas dalam kosinus)

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

Tuliskan deret Fourier trigonometri

3.2.5 Fungsi f(x) diperluas menjadi deret Fourier dalam bentuk sinus (ganjil), maka

Lembaran
Nomor Dokumen. Tidak.
Tanda tangan
Lembaran
Dokumen no.
Tanda tangan
tanggal
Lembaran

3.1.2. Temukan karakteristik numerik dari variabel acak x (x adalah kemenangan pemilik satu tiket lotre).

____ tiket diundi dalam lotere.

Dari jumlah tersebut, mereka memenangkan ____ rubel

Dari jumlah tersebut, mereka masing-masing memenangkan ____ rubel.

3.1.3. Temukan karakteristik numerik dari variabel acak “x”

A). 0,15 b) -0,35 c) 0,35 d) 0,25 e) tidak dapat ditentukan.

3.2.3 Ada 200 tiket dalam lotere. Ada 30 tiket yang menang. Berapa peluang bahwa tiket tersebut bukan tiket pemenang?

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

3.2.4 Tuliskan rumus untuk menghitung varians suatu variabel acak diskrit.

3.2.5 Tuliskan rumus untuk menghitung simpangan baku suatu variabel acak diskrit.

________________________________________________________________________________

3.2.6. D (y) = 25. Berapa simpangan bakunya?

A). ± 5 b) 5 c) -5 d) tidak dapat ditentukan.

3.2.7 Bagaimana cara menyelesaikan persamaan di MathCAD

______________________________________________________________________________

______________ diperbolehkan bekerja

Hasil kerja

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

Lembaran
Dokumen no.
Tanda tangan
tanggal
Lembaran
PR.140448.00.00
KERJA PRAKTIS 12

Menemukan perkiraan titik dan interval

parameter distribusi yang tidak diketahui di Excel

1. Tujuan pekerjaan

Dengan menggunakan sampel tertentu, pelajari cara menentukan karakteristik numerik sampel dan memperkirakan parameter populasi umum yang tidak diketahui, dan memperkirakan ekspektasi matematis dari populasi umum dengan probabilitas kepercayaan tertentu.

2.Peralatan:

IBM PC, cangkang Microsoft Excel.

Kemajuan

3. 1 Pilihan

Perkirakan dengan probabilitas keyakinan tertentu γ = ekspektasi matematis dari populasi umum untuk sampel tertentu

_____________________________________________________________________________________

3. 2 Izin untuk bekerja

1. Bagaimana cara menghitung mean sampel?

2. Bagaimana cara menghitung varians sampel?

____________________________________________________________________________________________________________________________________________________________

3. Bagaimana cara menghitung deviasi standar?

____________________________________________________________________________________________________________________________________________________________

4. Bagaimana cara menghitung varians sampel yang dikoreksi?

____________________________________________________________________________________________________________________________________________________________

5. Apa perbedaan estimasi titik dari parameter distribusi yang tidak diketahui dengan estimasi interval?

____________________________________________________________________________________________________________________________________________________________

6. Bagaimana interval dihitung untuk memperkirakan ekspektasi matematis populasi?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________


7. Koefisien Student dilambangkan dengan apa?

Mengubah
Lembaran
Dokumen no.
Tanda tangan
tanggal
Lembaran
PR.140448.00.00
____________________________________________________________________________________________________________________________________________________________

8. Nilai koefisien Student bergantung pada apa?

____________________________________________________________________________________________________________________________________________________________

Berikut ini yang diperbolehkan bekerja:__________________________________

Hasil kerja

σ dalam = S dalam = t γ =

Kesimpulan

Selama pekerjaan ini, saya menerapkan rumus estimasi titik dan interval____________________________________________________________

_________________________________________________________________



Mengubah
Lembaran
Dokumen no.
Tanda tangan
tanggal
Lembaran
PR.140448.00.00

P

Glushach V.S. UIT-44

kerja praktek 1.2. Transformasi Fourier langsung dan terbalik di MathCad.

Menguasai pekerjaan di MathCad. Memperoleh keterampilan dalam menggunakan transformasi Laplace untuk menganalisis komponen spektral sinyal. Studi skala waktu dan frekuensi deret waktu dan transformasi Fourier.

1. Hasilkan deret waktu dari tiga sinusoida. Jumlah poin harus 2^n

2. Tentukan mean dan variansnya.

3. Kami melakukan transformasi langsung dan terbalik F. Kami menempatkan sinyal yang dikonversi dua kali ke grafik deret waktu asli.

4. Temukan hubungan antara skala deret waktu sepanjang sumbu waktu dan transformasi Fourier sepanjang sumbu frekuensi.

1. Pilih keleluasaan waktu dt dan banyaknya titik pada deret waktu dalam bentuk nl:= 2 k

Misalkan k:= 9 nl:= 2 k nl=512 Panjang sampel dalam waktu T:=512

SH ag oleh Atau, mengingat nl-1

waktu kira-kira sama dengan nl Maka i:=0..nl-l t. := i*dt

2. Kami menghasilkan sinyal input x sebagai jumlah dari tiga sinyal harmonik dan menentukan statistik dasarnya.

А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 saya:= xl saya + x2 saya + x3 saya maaf:= mean(x) maaf = 0,013 sy:= stdev(x) sy = 0,809

1. Transformasi Fourier Langsung di MathCad F:= fft(x)

Periode maksimum komponen harmonik yang dapat berada dalam suatu deret waktu sama dengan panjang sampel. Komponen harmonik ini sesuai dengan frekuensi minimum yang mungkin pada skala frekuensi transformasi Fourier frnin dan, karenanya, dengan langkah sepanjang sumbu frekuensi transformasi Fourier df.

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

Jadi, frekuensi minimum dan langkah frekuensi transformasi Fourier sama dengan frnin = df = 1/T.

Transformasi Fourier mempunyai jumlah ordinat frekuensi setengah dari jumlah ordinat deret waktu dalam waktu n2=nl/2 atau, termasuk titik nol (di mana transformasi Fourier tidak terdefinisi)

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

Indeks frekuensi saat ini berubah dari j=l menjadi j=n2

Dalam hal ini, frekuensi bervariasi dari fmin =df= 1/T Frekuensi maksimum finax:= n2*df fmax = 0,502

ke frnax=n2*df Frekuensi saat ini f i:= i*df

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

TENTANG Harap dicatat bahwa transformasi Fourier didefinisikan hanya untuk frekuensi dalam rentang dari f=finin hingga f=fmax.

Dalam hal ini, puncak pada grafik spektrum Fourier sesuai dengan frekuensi sinusoidal asli, yaitu transformasi Fourier memungkinkan Anda mengisolasi komponen frekuensi sinyal. Namun amplitudo komponen harmonik sekarang tidak mencerminkan amplitudo komponen deret waktu asli (dengan A1=1, A2=0,5, A3=0,25)

Perhatikan juga bahwa pada dt = 1 frekuensi maksimum dalam spektrum transformasi Fourier sama dengan frnax = 0,5 osilasi per satuan skala waktu. Pada dt = 1 detik, ini sama dengan fmax = 0,5 Hz. Dalam hal ini periode frekuensi maksimumnya adalah Tfmax=1/0.5=2. Artinya untuk satu periode frekuensi maksimum terdapat dua pilihan deret waktu. Hal ini sesuai dengan teorema Kotelnikov, yang menyatakan bahwa untuk mengembalikan sinyal harmonik kontinu dari sinyal diskrit tanpa kehilangan informasi untuk satu periode, harus ada setidaknya dua sampel dalam waktu.

3. Mari kita periksa kebetulan deret waktu sebelum dan sesudah transformasi Fourier ganda. Untuk melakukan ini, kita memperoleh transformasi Fourier terbalik dari transformasi langsung yang dihasilkan. Ini harus bertepatan dengan deret waktu aslinya, yang dikonfirmasi oleh grafik FF berikut:= ifft(F)

Mathcad berisi fungsi untuk melakukan transformasi Fourier diskrit cepat (FFT) dan inversinya. Mathcad PLUS juga menyediakan transformasi gelombang diskrit satu dimensi dan inversinya. Semua fungsi ini memiliki argumen vektor. Saat menentukan vektor ay untuk mencari transformasi gelombang atau transformasi Fourier, pastikan elemen pertama vektor memiliki indeks nol: v 0 . Jika v 0 tidak ditentukan, Mathcad secara otomatis menyetelnya ke 0. Hal ini dapat mengakibatkan hasil yang menyimpang.

Pengantar Transformasi Fourier Diskrit

Mathcad mencakup dua jenis fungsi transformasi Fourier diskrit: fft/ifft Dan cfft /icfft . Fungsi-fungsi ini bersifat diskrit: mereka mengambil vektor dan matriks sebagai argumen dan mengembalikannya. Fungsi tersebut tidak dapat digunakan dengan fungsi lain fft Dan jika , jika dua kondisi berikut terpenuhi:
  • argumennya nyata, dan
  • vektor data memiliki elemen 2 m.

Gunakan fitur-fiturnya cfft Dan icfft dalam semua kasus lainnya.
Kondisi pertama diperlukan karena fungsinya fft/ifft gunakan fakta bahwa untuk data riil paruh kedua transformasi Fourier adalah konjugat kompleks dari transformasi Fourier pertama. Mathcad membuang paruh kedua dari vektor hasil. Ini menghemat waktu dan memori selama penghitungan.

Sepasang fungsi cfft/icfft tidak menggunakan simetri dalam transformasi. Oleh karena itu, perlu digunakan untuk data yang kompleks. Karena bilangan real adalah bagian dari bilangan kompleks, Anda juga dapat menggunakan pasangannya cfft/icfft untuk bilangan real.

Kondisi kedua diperlukan karena pasangan fungsi fft/ifft menggunakan algoritma transformasi Fourier cepat yang sangat efisien. Untuk melakukan ini, vektor argumen digunakan dengan fft, harus memiliki elemen 2 m. Dalam fungsi сfft/icfft sebuah algoritma digunakan yang menerima matriks dan vektor dengan ukuran sewenang-wenang sebagai argumen. Ketika pasangan fungsi ini digunakan dengan matriks sebagai argumen, transformasi Fourier dua dimensi dihitung.

Harap dicatat bahwa jika fungsi tersebut digunakan fft untuk konversi langsung, Anda perlu menggunakan fungsi tersebut jika untuk sebaliknya. Begitu pula jika untuk konversi langsung Anda menggunakan cfft, maka untuk sebaliknya perlu digunakan icfft.

Rumusan definisi transformasi Fourier yang berbeda menggunakan koefisien dan konvensi normalisasi yang berbeda tentang tanda satuan imajiner pada eksponen transformasi maju dan terbalik. Fungsi fft, jika, cfft Dan icfft gunakan 1/ sebagai faktor normalisasi dan eksponen positif dalam konversi langsung. Fungsi FFT , IFFT , CFFT Dan ICFFT gunakan 1/N sebagai faktor normalisasi dan eksponen negatif dalam konversi langsung. Fungsi-fungsi ini harus digunakan berpasangan. Misalnya saja jika Anda menggunakan CFFT dalam konversi langsung, diperlukan menggunakan ICFFT sebaliknya.

Transformasi Fourier dalam domain nyata

Untuk vektor bernilai riil dengan elemen 2 m, Anda dapat menggunakan beberapa fungsi fft/ifft. Algoritme untuk menghitung fungsi-fungsi ini memanfaatkan simetri yang hanya ada untuk data nyata. Ini menghemat waktu dan memori yang diperlukan untuk penghitungan. Vektor ay harus memiliki elemen 2 m. Hasilnya adalah vektor bernilai kompleks berdimensi 1+2 m-1. Jika ay memiliki dimensi selain 2 m, Mathcad menampilkan pesan error “ ukuran vektor yang salah”.

Elemen vektor dikembalikan fft, dihitung dengan rumus

Dalam rumus ini N- jumlah elemen dalam ay, Saya- satuan imajiner.

Elemen dalam vektor dikembalikan oleh fungsi fft, sesuai dengan frekuensi yang berbeda. Untuk mengembalikan frekuensi sebenarnya, perlu diketahui frekuensi pengukuran sinyal aslinya. Jika ay Ada N vektor -dimensi diteruskan ke fungsi fft, dan frekuensi pengukuran sinyal asli - fs, maka frekuensi yang bersangkutan sama dengan

Perhatikan bahwa hal ini membuat tidak mungkin untuk mendeteksi frekuensi yang lebih tinggi dari frekuensi pengukuran sinyal asli. Ini adalah batasan yang diberlakukan bukan oleh Mathcad, tetapi oleh inti permasalahannya. Untuk merekonstruksi sinyal dari transformasi Fouriernya dengan benar, sinyal asli perlu diukur pada frekuensi setidaknya dua kali bandwidth. Pembahasan lengkap mengenai fenomena ini berada di luar cakupan manual ini, namun dapat ditemukan di buku teks pemrosesan sinyal digital mana pun.

Vektor ay harus mempunyai elemen 1+ 2 m, dimana M- utuh. Hasilnya adalah vektor bernilai kompleks berdimensi 2 m+1 . Jika ay memiliki dimensi selain 1+ 2 m , Mathcad menampilkan pesan kesalahan “ ukuran vektor yang salah".Argumen ay- vektor serupa dengan yang dibuat oleh fungsi fft. Untuk menghitung hasilnya, Mathcad terlebih dahulu membuat vektor baru w, konjugat kompleks ay, dan menambahkannya ke vektor ay. Mathcad kemudian menghitung vektornya D, yang elemennya dihitung dengan rumus:

Ini adalah rumus yang sama dengan untuk fft, kecuali tanda minus pada fungsinya pengalaman. Fungsi fft Dan jika- banding yang tepat. Untuk semua yang bernilai nyata ay benar ifft(fft(v))=v.

Transformasi Fourier dalam domain kompleks

Ada dua alasan mengapa pasangan transformasi tidak dapat digunakan fft/ifft, dibahas pada bagian sebelumnya:
  • Data bisa bernilai kompleks. Artinya Mathcad tidak bisa lagi mengeksploitasi simetri yang terjadi pada kasus nyata.
  • Vektor data mungkin memiliki dimensi selain 2 m. Ini berarti Mathcad tidak dapat memanfaatkan algoritma FFT yang sangat efisien yang digunakan oleh pasangan tersebut fft/ifft.
Transformasi Fourier kompleks memerlukan fungsi berikut:
Gambar 3: Menggunakan Transformasi Fast Fourier di Mathcad.

Beberapa transformasi cfft/icfft dapat bekerja dengan array dengan ukuran berapa pun. Namun, cara ini bekerja jauh lebih cepat jika jumlah baris dan kolom dapat direpresentasikan sebagai hasil kali sejumlah besar faktor yang lebih kecil. Misalnya, vektor dengan panjang 2 m termasuk dalam kelas ini, begitu pula vektor dengan panjang seperti 100 atau 120. Sebaliknya, vektor yang panjangnya merupakan bilangan prima besar akan memperlambat penghitungan transformasi Fourier.

Fungsi cfft Dan icfft- terbalik satu sama lain. Artinya, icfft(cfft(v))=v. Gambar 3 menunjukkan contoh penggunaan transformasi Fourier di Mathcad.

Kapan sebagai argumen cfft matriks yang digunakan, hasilnya adalah transformasi Fourier dua dimensi dari matriks aslinya.

Bentuk alternatif dari transformasi Fourier

Definisi transformasi Fourier yang dibahas di atas bukanlah satu-satunya definisi yang mungkin. Misalnya, definisi transformasi Fourier diskrit dan inversinya berikut dapat ditemukan dalam buku karya Ronald Bracewells, Transformasi Fourier dan Penerapannya(McGraw-Hill, 1986): Definisi-definisi ini cukup umum dalam literatur teknis. Untuk menggunakan definisi ini dan bukan definisi yang dibahas di bagian sebelumnya, gunakan fungsi FFT, IFFT, CFFT Dan ICFFT. Perbedaannya adalah sebagai berikut:

Fungsi FFT, IFFT, CFFT Dan ICFFT digunakan serupa dengan fungsi yang dibahas di bagian sebelumnya.

Konversi gelombang

Mathcad PLUS mencakup dua fungsi transformasi gelombang: untuk melakukan transformasi gelombang diskrit satu dimensi langsung dan inversinya. Konversi dilakukan dengan menggunakan basis gelombang Daubechi empat koefisien.

Bagian 3. Menyelesaikan persamaan diferensial biasa di Mathcad

Deret Fourier pada segmen sembarang

Bagian 2. Perluasan fungsi dalam deret Fourier

Tindakan dengan bilangan kompleks

Bagian 1. Perhitungan dengan bilangan kompleks di Mathcad

Kuliah No.5

Subjek: « Variabel kompleks. Perluasan fungsi dalam deret Fourier. Memecahkan persamaan diferensial»

Di Mathcad, unit imajiner i didefinisikan: dan, oleh karena itu, bilangan kompleks dan operasi dengannya ditentukan.

Z=a+bi– bentuk aljabar penulisan bilangan kompleks.

a – bagian nyata, b – bagian imajiner

Bentuk penulisan bilangan kompleks eksponensial (eksponensial),

A – modul, φ – argumen (fase)

Bentuk trigonometri penulisan bilangan kompleks.

Hubungan antar besaran: a=A cos φ b=A sin φ

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

a) Penjumlahan (pengurangan) Z3=Z1±Z2=(a1±a2)+j·(b1±b2)

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

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

c) Divisi

d) Menaikkan pangkat n (alami)

e) Ekstraksi akar: , dimana k =0,1,2…n-1

Mesin hanya menerima radian!!! radian=derajat derajat=radian

Contoh:

Fungsi f(x) dapat diintegralkan mutlak pada interval [-p;p] jika terdapat integral. Setiap fungsi yang dapat diintegralkan mutlak f(x) pada interval [-p;p] dapat diasosiasikan dengan deret Fourier trigonometrinya:

Koefisien deret Fourier trigonometri disebut koefisien Fourier dan dihitung menggunakan rumus Euler–Fourier: ,

Mari kita nyatakan jumlah parsial ke-n dari deret Fourier dari fungsi mulus sedikit demi sedikit f(x) pada interval [-p;p]. Simpangan baku ditentukan dengan rumus:

Untuk setiap fungsi berbatas f(x) yang dapat diintegralkan pada [-p;p], jumlah parsial deret Fouriernya adalah polinomial trigonometri dengan perkiraan terbaik derajat ke-n.

Contoh:

Grafik menunjukkan bagaimana jumlah parsial deret Fourier bertemu. Di sekitar titik kontinuitas fungsi f(x), selisih antara nilai fungsi di titik x dan nilai jumlah parsial deret pada titik tersebut cenderung nol karena n®¥, yaitu sepenuhnya konsisten dengan teori, karena dalam kasus ini. Terlihat juga bahwa selisihnya cenderung nol, semakin cepat letak titik x dari titik diskontinuitas fungsi tersebut.

Contoh:

Untuk fungsi mulus sepotong-sepotong pada interval [-L;L] dari fungsi f(x), masalah perluasan deret Fourier pada interval [-L;L] dengan penggantian linier direduksi menjadi masalah perluasan fungsi pada interval [-p;p]:

Mari kita perhatikan penyederhanaan deret Fourier dalam berbagai kondisi simetri:

rumus (1) rumus (2)


Biarkan persamaan tersebut perlu dicari solusinya

dengan kondisi awal. Tugas ini disebut Masalah Cauchy . Mari kita perluas fungsi yang diinginkan menjadi deret dekat titik dan batasi diri kita pada dua suku pertama pemuaian. Dengan mempertimbangkan persamaan (1) dan menyatakannya, kita mendapatkan Rumus ini dapat diterapkan berkali-kali, mencari nilai fungsi di lebih banyak titik baru.

Cara penyelesaian persamaan diferensial biasa ini disebut metode Euler . Secara geometris, metode Euler berarti bahwa pada setiap langkah kita memperkirakan solusi (kurva integral) dengan segmen singgung yang ditarik ke grafik solusi pada awal interval. Keakuratan metode ini rendah dan berada di urutan teratas H. Mereka mengatakan bahwa metode Euler adalah metode orde pertama, yaitu akurasinya meningkat secara linier dengan menurunnya langkah H.

Terdapat berbagai modifikasi metode Euler untuk meningkatkan akurasinya. Semuanya didasarkan pada fakta bahwa turunan yang dihitung pada awal interval digantikan oleh nilai rata-rata turunan pada interval tersebut.

Mod(x, y) – sisa pembagian x dengan y. Hasilnya bertanda sama dengan x; sudut(x, y) – sudut (dalam radian) antara sumbu x positif dan vektor (x, y) pada bidang XY. Argumen harus nyata. Mengembalikan nilai antara 0 dan 2π. ceil(3.25) = 4 floor(3.25) = 3 mantissa (x) := x − floor(x) mantissa (3.45) = 0.45 Pembulatan tradisional: pembulatan (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) sama dengan f(x) jika f(x) > 0, jika tidak 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)) sebaliknya –f(x) 5 h(x) 0 Lanjutkan penghitungan hingga kondisi terpenuhi 5 2 0 2 2 pertanyaan − 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 >kamu, x< y, x ≥ y, x ≤ y, w ≠ z. Можно объединять булевы операторы, чтобы записать более сложные условия. Например, условие (x < 1) ⋅ (x >0) bertindak seperti logika "dan", yang mengembalikan 1 hanya jika x berada di antara 0 dan 1. Demikian pula, ekspresi (x > 1) + (x< 0) действует подобно логическому "или", возвращающему 1, если x >1, atau 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) – menghitung kepadatan probabilitas distribusi seragam  1, x ∈ ,  dunif(x, a, b) =  b − a  0,  x ∉ dimana a dan b adalah batasnya interval poin, a< b. 4.10. Функции распределения Эти функции возвращают вероятность того, что случайная величи- на меньше или равна определенному значению. Функция распределе- ния вероятности – это функция плотности вероятности, проинтегриро- ванная от минус бесконечности до определенного значения. Приведем две из них: pnorm(x, µ, σ) – возвращает функцию нормального распределения со средним µ и среднеквадратическим отклонением σ (σ >0); punif(x, a, b) – mengembalikan fungsi distribusi seragam. a dan b adalah nilai batas interval (a< b). Mathcad имеет ряд функций для генерирования случайных чисел, имеющих разнообразные распределения вероятностей. Приведем две из них: rnorm(m, µ, σ) – возвращает вектор m случайных чисел, имеющих нормальное распределение (σ >0); runif(m, a, b) – mengembalikan vektor m bilangan acak yang memiliki distribusi seragam, di mana a dan b adalah titik batas interval (a< 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