|
Telekommunikatsiya texnologiyalari
|
Sana | 22.05.2024 | Hajmi | 1,9 Mb. | | #250661 |
Bog'liq algoritm amaliy 4Gulira\'no
O'ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
QARSHI FILIALI
“TELEKOMMUNIKATSIYA TEXNOLOGIYALARI” FAKULTETI
“POCHTA ALOQA TEXNOLOGIYALARI” YO’NALISHI
2 -BOSQICH PAT 11 22 - GURUH TALABASINING
Algoritmlarni loyihalash fanidan tayyorlagan
4-AMALIY ISHI
Bajardi: Xamrayeva Guliraʼno
Qabul qildi: Boyqobilov Sardor
Qarshi-2024
Mavzu: Jadval funksiyani Fur’ye qatoriga yoyish. Fur’ye koeffitsiyentlarini hisoblash. Qator hadlari sonini tanlash
Maqsad: Talabalar Fure qatorlar yig’indisini hisoblashni o‘rganishi, funksiyalarni qiymatini qatorlar yordamida taqribiy hisoblash va Fure koeffitsiyentlarini hisoblash usullarini o‘rganishi, bu usullar haqida bilim va ko‘nikmalarga ega bo‘lishi hamda mustaqil masalalar yechishi va shu masalaga mos algoritmlar qura olishi kerak.
Amaliy ish algoritmi :
Berilgan funksiya f(x) = 14 ·cos(x) uchun Furye qatorini topish uchun quyidagi formulalardan foydalanamiz:
f(x) = a_0 + ∑_n=1^∞ (a_n ·cos(nx) + b_n ·sin(nx))
Koeffitsiyentlarni hisoblash formulalari esa quyidagicha:
a_0 = 1/π∫_-π^π f(x) dx
a_n = 1/π∫_-π^π f(x) ·cos(nx) dx
b_n = 1/π∫_-π^π f(x) ·sin(nx) dx
Berilgan funksiya uchun koeffitsiyentlarni hisoblash uchun dastlabki formulalardan foydalanamiz. Natijada, Fourier qatori quyidagi ko'rinishda bo'ladi:
f(x) = 7 + 14cos(x) + 0sin(x) + 0cos(2x) + 0sin(2x) + …
Bu yerda a_0 = 7, a_1 = 14, va boshqa koeffitsiyentlarning qiymatlari 0 ga teng.
Funksiyani Fure koeffitsiyentalarini topish uchun quyidagi algoritmani va C++ da dasturni tuzish mumkin:
1. Funksiyani diskretlashtirish uchun bir tartibda x nuqtalarni tanlang (masalan, -π, -π/2, 0, π/2, π).
2. Diskretlangan funksiyani N nuqtalarni hisoblash uchun ro'yhatga yozing.
3. Fure koeffitsiyentalarini topish uchun uch xamalarni aniqlang: real (a_k), imaj (b_k) va amplituda (c_k).
a. Real amal (a_k) = (1/N) * (funksiya qiymatlarning real qismlarini yig'ish).
b. Imaginary amal (b_k) = (1/N) * (funksiya qiymatlarning imaj qismlarini yig'ish).
c. Amplituda (c_k) = sqrt((a_k)^2 + (b_k)^2).
4. Koeffitsiyentalarni chiqarish uchun ro'yhat yaratish (masalan, a_k, b_k, c_k).
Dastur C++ da:
#include
#include
#include
using namespace std;
// Fure koeffitsiyentalarini topish funktsiyasi
vector fureKoeffitsiyentalari(vector &funksiya) {
int N = funksiya.size(); // nuqta soni
vector koeffitsiyentalar(3, 0.0); // a_k, b_k, c_k
double realTalmov = 0.0;
double imaginaryTalmov = 0.0;
// Real va imaginar amallarni hisoblash
for (int i = 0; i < N; i++) {
realTalmov += funksiya[i] * cos(2 * M_PI * i / N);
imaginaryTalmov += funksiya[i] * sin(2 * M_PI * i / N);
}
// Amplitudani hisoblash
double amplituda = sqrt(pow(realTalmov, 2) + pow(imaginaryTalmov, 2));
// Koeffitsiyentalarni ro'yhatga yozish
koeffitsiyentalar[0] = realTalmov / N;
koeffitsiyentalar[1] = imaginaryTalmov / N;
koeffitsiyentalar[2] = amplituda;
return koeffitsiyentalar;
}
int main() {
vector nuqta = {-M_PI, -M_PI/2, 0, M_PI/2, M_PI}; // taqiqlangan qiymatlar
vector funksiya;
for (double x : nuqta) {
double qiymat = 14 * cos(x); // funksiya qiymatini topish
funksiya.push_back(qiymat); // funksiya qiymatlarini saqlash
}
vector koeffitsiyentalar = fureKoeffitsiyentalari(funksiya); // Fure koeffitsiyentalarini topish
// Koeffitsiyentalarni chiqarish
cout << "a_k: " << koeffitsiyentalar[0] << endl;
cout << "b_k: " << koeffitsiyentalar[1] << endl;
cout << "c_k: " << koeffitsiyentalar[2] << endl;
return 0;
}
Ushbu dastur funksiya f(x) = 14 * cos(x) uchun Fure koeffitsiyentalarini topadi va console-da chiqaradi.
|
| |