Furye qatori. Faraz qilaylik


-Misol. y=x2+2 funksiya uchun Furye qatori koeffitsentlarini toping Dastur kodi



Download 0,86 Mb.
bet4/9
Sana20.06.2022
Hajmi0,86 Mb.
#681194
1   2   3   4   5   6   7   8   9
Bog'liq
13-18

1-Misol. y=x2+2 funksiya uchun Furye qatori koeffitsentlarini toping




Dastur kodi
#include
#include
using namespace std;
double f(double x)
{
return x*x+2;
}
int main()
{
float a,b,h,S=0, x;
cin>>a>>b;
int nn=30;
h=(b-a)/nn;
x=a;
for(int i=0; i
{
x+=h;
S+=f(x); //S=S+x*x+2
}
S*=h;
double a0=S/M_PI;
cout<<"a0= "<
//an va bn koeffitsentni hisoblash
x=a;
double an=0;
double bn=0;
for(int n=1; n<=10; n++)
{
for(int i=0; i
{
x+=h;
an+=f(x)*cos(n*x);
bn+=f(x)*sin(n*x);
}
an*=cos(n*x)*h/M_PI;
bn*=sin(n*x)*h/M_PI;
cout<<"a"<
cout<<"b"<
}
}
Natija

2-Misol. y=x2+2 funksiya uchun Furye qatori garmonikalarining eng katta amplitudasini aniqlash dasturini tuzing.
Dastur kodi
#include
#include
using namespace std;
double f(double x)
{
return x*x+2;
}
int main()
{
float a,b,h,S=0, x;
cin>>a>>b;
int nn=30;
h=(b-a)/nn;
x=a;
for(int i=0; i
{
x+=h;
S+=f(x); //S=S+x*x+2
}
S*=h;
double a0=S/M_PI;
cout<
x=a;
double an=0;
double bn=0;
for(int n=1; n<=10; n++)
{
for(int i=0; i
{
x+=h;
an+=f(x)*cos(n*x);
bn+=f(x)*sin(n*x);
}
an*=cos(n*x)*h/M_PI;
bn*=sin(n*x)*h/M_PI;
An=sqrt(an*an+bn*bn);
maxxA=0;
if(maxxA
}
Cout<

Mustaqil yechish uchun topshiriqlar
Quyidagi funksiyalarni Furye qatorlariga yoyish algoritmi va dasturini tuzing

  1. y=sinx

  2. y=x2+2x+3

  3. y=e2x+2

  4. y=2x+4

  5. y=cosx

  6. y=x2+3x+3

  7. y=ex+5

  8. y=3x+4

  9. y=tgx

  10. y=x3+2x+5

  11. y=e2x+10

  12. y=2x-6

  13. y=sin 22x

  14. y=x4-5x+3

  15. y=e2x+10

  16. y=6x+8

  17. y=cos 2x

  18. y=x2-5x+3

  19. y=e2x

  20. y=2x



8.2 Laboratoriya mashg’uloti
Mavzu: Axborotlar oqimini segmentlarga ajratish. Dinamik darsturlash. Chiziqli model.
Ishning maqsadi: Dinamik dasturlashga doir masalalarga algoritm va dastur tuzish
Kerakli jihozlar: Kompyuter, proyektor, doska, C++ dasturlash tili
1-masala. Sizga butun kvadrat matritsa (n×n) berilgan. Toshbaqa yuqori chap katakda va pastki o'ng katakga yurish kerak. Bir harakatda toshbaqa qo'shni o'ng yoki qo'shni pastki katakchaga yurishi mumkin. Maksimal yig'indi bilan toshbaqaning yo'lini topish talab qilinadi.
Kirish maʼlumotlari:

2

1

3

5

4

0

1

1

1

1

0

1

0

1

2

7

Variantlarning to'liq ro'yxati universal echimdir. Ro'yxatni amalga oshirish tamoyillari va uning imkoniyatlarini ko'rib chiqing. 4×4 o‘lchamdagi stol bo‘sh. Har qanday yo'l uchta pastga va o'ngga uchta harakatdan iborat. Boshqacha qilib aytganda, 6 ta qadam berilgan, ulardan uchtasi pastga siljish uchun, qolgan uchtasi o'ngga o'tish uchun teriladi.
Oltitadan uchta harakatni tanlash usullari soni ( ) toshbaqa yo'llari sonini aniqlaydi. Umuman olganda, ..
Ushbu misol uchun toshbaqaning 20 ta yo'li bor:

Yo'lning yig'indisini (xarajatini) topishda, jami 100 ta operatsiya uchun beshta qo'shish operatsiyasi talab qilinadi.
Keling, million tezlikka ega kompyuter uchun masalani hal qilish vaqtini hisoblaylik:

Jadval o'lchami

Yo'l uzunligi

Yo'llar soni

Qo'shish operatsiyalari soni

Masalani hal qilish uchun taxminiy vaqt



6

20

100

0,00001 сек



14

3432

44616

0,045с



60





200 000 yil

Shunday qilib, variantlarni to'liq ro'yxatga olish imkoniyati cheklangan.
Keling, masalani hal qilishning boshqa usulini ko'rib chiqaylik. Kichikroq o'lchamdagi jadval uchun kichik masalani aniqlaymiz.

2

3







6

6





































2

3

6




6

6

7




7

8

8
















Natija quyidagicha

2

3

6

11

6

6

7

12

7

8

8

13

7

9

11

20

Masalani yechish algoritmi:
B[4×4] matritsasini kiritamiz.
Birinchi qator va birinchi ustun elementiga 0 ni belgilaymiz.

0

0

0

0

0

0

2

3







0

6

6







0













0















Dastur kodi:
// “Toshbaqa” masalasi
//Mksimal yo’lni hisoblash masalasi
#include
#include
using namespace std;

int max(int a1, int b1)


{
if (a1>b1) return a1; else return b1;
}

int main()


{
setlocale(0,"");
int n=4;
const
int a[4][4]=
{
{ 2, 1, 3, 5 },
{ 4, 0, 1, 1 },
{ 1, 1, 0, 1 },
{ 0, 1, 2, 7 }
};

cout<<"Berilgan matritsa="<

for(int i=0; i
for(int j=0; jcout<cout<int b[5][5];
for(int i=0; i{
b[i][0]=0; b[0][i]=0;
}
for(int i=1; ifor(int j=1; jb[i][j]=max(b[i-1][j], b[i][j-1])+a[i-1][j-1];
cout<for(int i=0; ifor(int j=0; jcout<cout<}


Yechimning vaqt murakkabligi 0(n×m) ga teng. Har bir massiv B maksimal ikkita amalni (taqqoslash va qo'shish) talab qiladi.
300x300 massiv uchun operatsiyalarning umumiy soni 1000000 dan kam, ya'ni. million tezlikda ishlaydigan kompyuter vazifani bir soniyadan kamroq vaqt ichida bajarishi mumkin.


2-masala. sonlar ketma-ketligi berilsin.
Eng katta uzunlikdagi ortib boruvchi qatorni toping.
Kirish ma'lumotlari: 1, 5, 3, 7, 1, 4, 10, 15.
Chiqish ma'lumotlari: 1, 3, 4, 10, 15.
“Dag’al” kuch usuli.
1 (1) - 1 bitta kichik ketma-ketlik uchun.
1,2 (1; 2; 1, 2) - 3 uchun uchta kichik ketma-ketlik mavjud.
1,2,3 da (1; 2; 3; 1, 2; 1,3; 2,3; 1,2,3) - 7 ta kichik ketma-ketlik.
1,2,3,….,n uchun alohida pastki ketma-ketliklar soni ga teng.

Kichik vazifalarga ajratish


Fikr birinchi i elementlar orasidan eng katta ortib boruvchi ketma-ketlikni toping.
#include

using namespace std;


int main()


{
int a[8] = {1,5,3,7,1,4,10,15};
int n=8;
int p[8],d[8]={0};
int k=0;
int max;
for (int i=0; i{ max=0;
for (int j=0; j{if (a[j]max)) max=d[j];
}
d[i]=max+1;
}
for (int i=0; icout<for (int i=0; imax=d[1];
for (int i=0; icout<

}

3-masala. n butun soni berilgan. n sonni natural sonlar yig‘indisi sifatida ifodalash usullari sonini toping.


Kirish ma'lumotlari: butun son
Kirish ma'lumotlari: berilgan sonni natural sonlar yig'indisi sifatida ko'rsatish usullari soni.

#include


#include
using namespace std;

int main()


{
int n=5;
int f[10][10]={0};

for (int i=0; i
f[i][i]=1;
for (int k=0; k<=i-1; k++){
f[i][k]=0;
for (int j=0; j<=k; j++)
f[i][k]=f[i][k]+f[i-k][j];}
}

for (int i=0; i
for (int j=0; jcout<<" "<}
Dastur natijasi

Demak, 5 sonini natural sonlar yig’indisi (1+2+2+1+1=7) yo’llar bilan ifodalash mumkin.


4-masala. n butun soni berilgan. Rekursiv formulalar yordamida n sonni natural sonlar yig‘indisi sifatida ifodalash usullari sonini toping.
Kirish ma'lumotlari: butun son
Kirish ma'lumotlari: berilgan sonni natural sonlar yig'indisi sifatida ko'rsatish usullari soni.
#include
#include
using namespace std;

int main()


{
int n=6;
int f[100][100]={0};

for (int i=0; i

for (int i=0; i
for (int k=1; kfor (int k=i+1; k}

for (int i=0; i

cout<<" n= "<




INPUT.TXT

OUTPUT.TXT

1

4

670

2

6

55252

3

12

39581170420


Topshiriq: N sonlar ketma-ketligi berilgan. Undan elementlarning minimal sonini olib tashlash kerak, shunda qolganlari qat'iy ortib boruvchi ketma-ketlikni hosil qiladi.



Download 0,86 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish