I-bosqich ki-12-22 guruh talabasi shavkatov sirojbek ning “dasturlash2


Kirish Oliy matematk kursida komleks sonlar bilan tanishgansizlar. Ta’rif


Download 340.29 Kb.
bet2/11
Sana18.06.2023
Hajmi340.29 Kb.
#1564702
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
O-3XWxhqJ4kseNw9IGwHXz8oEzECnwoh

Kirish
Oliy matematk kursida komleks sonlar bilan tanishgansizlar.
Ta’rif. Tartiblangan ikkita haqiqiy sonlar juftligi bolib, asosan standart ko’rinisda
a+bi (Dekart koorditalar tisimida) yoki (a,b)
beriladi. Bu erda:
a – uning butun qismi, bo’lib, haqiqiy sonlar to’plamiga tegishli;
b – uning mavhum qismi bo’lib, haqiqiy sonlar to’plamiga tegishli;
i – qiymati ga teng bo’lgan irratsional son;

Komplex sonnig qutb koordinatalar tizimidagi ko’rinishi:


z= p(cosα+isinα)
Bu erda:
p – complex sonning absolyut qiymati deyiladi, va
;
α – vektorning Ox o’qi bilan hosil qilgan burchagi
i – qiymati ga teng bo’lgan irratsional son;
Komplex sonlar ustida to’rtta arifmetik amallar quyidagi algoritm (formulalar) yordamida amalga oshiriladi:
z1=a+bi va z2=c+di 2 ta complex son uchun -
1) z1+z2=(a+c)+(b+d)i= ((a+c),(b+d)) - qo’shish
2) z1-z2=(a-c)+(b-)i= ((a-c),(b-d)) - ayirish
3) z1·z2=(ac-bd) +(ad+bc)i=((ac-bd),(ad+bc)) - ko’paytirish
4) – bo’lish
C ++ standart kutubxonasining kompleks son sinfi ob'ekt modelidan foydalanishning yaxshi namunasidir. Ortiqcha arifmetik operatsiyalar tufayli ushbu klass ob'ektlari o'rnatilgan ma'lumotlar turlaridan biriga tegishlicha ishlatiladi. Bundan tashqari, o'rnatilgan arifmetik turdagi o'zgaruvchilar va murakkab raqamlar bir vaqtning o'zida bunday operatsiyalarda ishtirok etishlari mumkin.
1. Raqamli sinflar va ular bilan ishlash.

C ++ standart kutubxonasining kompleks son sinfi ob'ekt modelidan foydalanishning yaxshi namunasidir. Ortiqcha arifmetik operatsiyalar tufayli ushbu sinf ob'ektlari o'rnatilgan ma'lumotlar turlaridan biriga tegishlicha ishlatiladi. Bundan tashqari, o'rnatilgan arifmetik turdagi o'zgaruvchilar va kompleks sonlar bir vaqtning o'zida bunday operatsiyalarda ishtirok etishlari mumkin. (E'tibor bering, bu erda biz murakkab sonlar matematikasining umumiy masalalariga murojaat qilmaymiz. Qarang [PERSON68] yoki matematikaga oid biron bir kitob.)


Masalan:
#inc1ude


comp1ex< double > a;
comp1ex< double > b; // ...
complex< double > с = a * b + a / b;
Kompleks va arifmetik turlarni bitta ifoda bilan aralashtirishga ruxsat beriladi:
complex< double > complex_obj = a + 3.14159;
Xuddi shunday, kompleks sonlar arifmetik tur bilan initsializatsiya qilinadi va ularga quyidagicha qiymat berilishi mumkin:
double dval = 3.14159;
complex_obj = dval;
yoki
int ival = 3;
complex_obj = ival;
Masalan, quyidagi ifoda kompilyatsiya xatosiga olib keladi:
// xato: arifmetik turga aniq konversiya qilinmaydi
double dval = complex_obj;

Kompleks sonning qaysi qismini - haqiqiy yoki mavhum - biz muntazam raqamga belgilashni xohlayotganimizni aniq ko'rsatishimiz kerak. Kompleks sonlar sinfi mos ravishda haqiqiy va mavhum qismlarni qaytaradigan ikkita funksiyaga ega. Biz ularga sinf a'zolariga kirish uchun sintaksis yordamida kirishimiz mumkin:




double re = complex_obj.real();
double im = complex_obj.imag();
yoki shunga o'xshash funktsiyani chaqirish sintaksisi:
double re = real(complex_obj);
double im = imag(complex_obj);
Kompleks son sinfi to'rtta kompozitsion tayinlash operatorlarini qo'llab-quvvatlaydi: + =, - =, * = va / =. Shunday qilib,
complex_obj += second_complex_obj;

Kompleks sonlarni Qo'llab-quvvatlaydigan kirish / chiqish . Chiqish operatori vergul bilan ajratilgan haqiqiy va mavhum qismlarni qavs ichiga bosib chiqaradi. Masalan, chiqish bayonotlarini bajarish natijasi




complex< double > complex0( 3.14159, -2.171 );
comp1ex< double > complex1( complexO.real() );
cout << complexO << " " << complex1 << endl;
quyidagicha:
( 3.14159, -2.171 ) ( 3.14159, 0.0 )
Kirish operatori quyidagi formatlarning istalganini tushunadi.
// kompleks sonlarni kiritish uchun ruxsat etilgan tiplari
// 3.14159 ==> comp1ex( 3.14159 );
// ( 3.14159 ) ==> comp1ex( 3.14159 );
// ( 3.14, -1.0 ) ==> comp1ex( 3.14, -1.0 );
// sifatida o'qish mumkin
// cin >> a >> b >> с
// bu yerda a, b, с – kompleks sonlar
3.14159 ( 3.14159 ) ( 3.14, -1.0 )
Ushbu operatsiyalarga qo'shimcha ravishda, kompleks sonlar sinfida quyidagi a'zo funksiyalariga ega: sqrt(), abs(), polar(), sin(), cos(), tan(), exp(), log(), log10() va pow().
Mashq 4.9

Biz uchun mavjud bo'lgan C ++ standart kutubxonasining joriy etilishi, agar to'g'ri operand kompleks son bo'lmasa, murakkab tarkibiy operatsiyalarini qo'llab-quvvatlamaydi. Masalan, shunga o'xshash yozuv haqiqiy emas:


complex_obj += 1;

(C ++ standartiga binoan, bunday ifoda to'g'ri bo'lishi kerak, ishlab chiqaruvchilar ko'pincha standartga rioya qilmaydilar.) Bunday operatsiyani bajarish uchun biz o'z operatorimizni aniqlay olamiz. Bu yerda complex uchun qo'shimcha operatorni amalga oshiradigan funksiyaning varianti:


#include
inline complex&
operator+=( complex &cval, double dval )
{
return cval += complex( dval );
}

Download 340.29 Kb.

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




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