Python-ի “cmath” մոդուլը։

Ծրագրավորման լեզուներ

Arpine Keyan
Picsart Academy
7 min readMay 27, 2022

--

Եթե դուք ծրագրավորող եք, ապա առօրյա աշխատանքում հաճախ եք առնչվում այս կամ այն բարդության մաթեմատիկական հաշվարկների կատարմանը անկախ նրանից՝ աշխատում եք գիտական նախագծի, ֆինանսական հավելվածի թե որևէ այլ տեսակի ծրագրավորման խնդրի վրա։

Մաթեմատիկան ու ծրագրավորումը սերտ կապված են միմյանց հետ ու դա բոլորովին զարմանալի չէ, հաշվի առնելով այն փաստը, որ մաթեմատիկական մտածելակերպն է, որ բերում է ալգորիթմների հաջող կիրառմանը և, ինչու չէ, նաև նոր ալգորիթմների ստեղծմանը։

Մաթեմատիկայի կիրառումը ծրագրավորման մեջ հատկապես մեծ է խաղերի ստեղծման, արհեստական բանականության, մեքենայական ուսուցման, կրիպտոարժույթի խնդիրներով զբաղվելու պարագայում։ Սա իր մեջ ներառում է մաթեմատիկայի այնպիսի ճյուղեր, ինչպիսիք են՝ հանրահաշիվը, եռանկյունաչափությունը, ստատիստիկան, հավանականությունների տեսությունն ու երկրաչափությունը։

Մաթեմատիկական գործիքակազմն իր ողջ հնարավորությամբ արագ ու հեշտ կիրառելու համար յուրաքանչյուր ծրագրավորման լեզու ունի իր համապատասխան ներդրված գրադարաններն ու ֆունկցիաները և, բնականաբար, Python-ը բացառություն չէ։

Python-ում պարզ մաթեմատիկական հաշվարկների համար նախատեսված են ներկառուցված մաթեմատիկական օպերատորներ, ինչպիսիք են գումարումը (+), հանումը (-), բաժանումը (/) և բազմապատկումը (*): Բայց ավելի բարդ գործողություններ, ինչպիսիք են էքսպոնենցիալ, լոգարիթմական, եռանկյունաչափական կամ աստիճանային ֆունկցիաների կիրառումը, հնարավոր չէ իրականացնել նման պարզ նշանների միջոցով:

Արդյո՞ք դա նշանակում է, որ ամեն անգամ օգտագործելիս, հարկավոր է զրոյից սահմանել այս բոլոր գործառույթները:
Բարեբախտաբար՝ ոչ:

Python-ը տրամադրում է ներկառուցված մոդուլներ, որոնք հատուկ նախատեսված են ավելի բարձր մակարդակի մաթեմատիկական գործողությունների կատարման համար։

Ինչ է մոդուլը Python-ում

Python-ում մոդուլը ծրագրի կառուցվածքային մաս է:

Python-ով գրված ծրագիր պարունակող յուրաքանչյուր ֆայլ մոդուլ է, որը ներմուծում է այլ մոդուլներ, ինչպիսիք են՝ օբյեկտները և ատրիբուտները: Python ծրագրի թղթապանակը ինքնին մոդուլների փաթեթ/գրադարան է։ Փաթեթը կարող է ունենալ մոդուլներ կամ ենթաթղթապանակներ: Պարզության համար մենք կարող ենք Python-ի կառուցվածքային տարրերը նկարագրել այսպես՝

Ֆունկցիա - հրահանգների հավաքածու,
Դաս - ֆունկցիաների հավաքածու,
Մոդուլ - դասերի հավաքածու,
Փաթեթ/գրադարան - մոդուլների հավաքածու։

Մոդուլները հասկանալու համար հարմար է դրանք պատկերացնել որպես սահմանումներ և հրահանգներ պարունակող ֆայլ։ Մենք կարող ենք այդ ֆայլում գրել մեր հրահանգներն ու ֆայլը պահպանել որպես file_name.py և այն օգտագործել այլ ֆայլի հրահանգներում՝ պարզապես ներմուծելով այն։

Ներմուծման համար կա մի քանի հնարավորություն՝

  1. import module_name - ներմուծելով մոդուլի անունը,
  2. from module_name import function - մոդուլից ներմուծելով համապատասխան ֆունկցիան,
  3. from module_name import* - մոդուլից ներմուծելով բոլոր ֆունկցիաները (“*”-ը նշելով ներմուծում ենք բոլոր ֆունկցիաները),
  4. import module_name as m - ներմուծելով մոդուլի անունը որպես ավելի կարճ և օգտագործման համար ավելի հարմար հապավում (այստեղ “m” –ը նշվում է որպես մոդուլի՝ ծրագրում հաջորդիվ կիրառվելիք կարճ անվանում)։

Python-ում բազմաթիվ են ներկառուցված մոդուլները, որոնցից թերևս ամենահայտնի և հաճախ կիրառվողներից են՝ math, cmath, datetime, urllib, request, json, re, calender, os, sys

math մոդուլի ներմուծումն ու մի քանի հիմնական ֆունկցիաների կանչը ներկայացված են ստորև՝

math և cmath մոդուլների տարբերությունը

math մոդուլը հասանելիություն է տրամադրում C ստանդարտով (ստանդարտ, որը վերաբերվում է կոդի կազմմանը և սահմանված է կոմպիլյատոր ստեղծողների համար) սահմանված ֆունկցիաներին։ Սակայն այս մոդուլում սահմանված ֆունկցիաները չեն կարող օգտագործվել կոմպլեքս թվերի հետ աշխատելիս, ինչի համար էլ հենց նախատեսված է մեկ այլ՝ cmath մոդուլը։

cmath մոդուլը հնարավորություն է տալիս աշխատել մաթեմատիկական ֆունկցիաների հետ, որոնք կարող են ընդունել ինչպես ամբողջ և տասնորդական, այնպես էլ` կոպլեքս թվեր՝ որպես արգումենտ։

Օրինակ, math.sqrt(-1)-ի կատարման արդյունքում սխալի մասին հաղորդագրություն ենք ստանում, բայց cmath.sqrt(-1) վերադարձնում է 1j:

Այս տարանջատումն արված է հաշվի առնելով այն, որ օգտատերերի հիմնական մասը կոմպլեքս թվերի հետ աշխատանքի կարիք հաճախ չէ, որ ունենում է, և հիմնական գործունեությունն իրականացնում է math մոդուլի ֆունկցիոնալի շրջանակներում։

Բացի դա, cmath մոդուլի հետ աշխատելու համար անհրաժեշտ է ունենալ կոմպլեքս թվերի մասին բավականաչափ խորը գիտելիքներ։
Այսպիսով՝ Python-ի ստեղծողները միավորել են ներդրված բարդ մաթեմատիկական ֆունկցիաները երկու մոդուլների մեջ`

- cmath մոդուլ կոմպլեքս թվերի համար
- math մոդուլ բոլոր այլ տեսակի թվերի համար։

Ի՞նչ է կոմպլեքս թիվը։

Թվերի ներկայացման մեջ կոմպլեքս թվերի տեղն ու նշանակությունը պատկերացնելու համար հարմար է օգտվել հետևյալ ներկայացումից՝

Մաթեմատիկայում կոմպլեքս թիվը թվային համակարգի տարր է, որը ներկայացվում է a + bi տեսքով,

որտեղ a և b իրական թվեր են, իսկ i-ով նշանակված տարրը կոչվում է կեղծ միավոր, բավարարում է հետևյալ արտահայտությանը՝

Քանի որ ոչ մի իրական թիվ չի բավարարում վերը նշված հավասարմանը, René Descartes-ն այդ թվերն անվանել է «երևակայական», ընդ որում, թվի կազմության մեջ մտնող տարրերից a-ն անվանել է իրական մաս, իսկ ib-ն՝ կեղծ: Սահմանենք կոմպլեքս թվերին առնչվող մի քանի հասկացություններ։

1. Կեղծ միավոր անվանում են այն «թիվը», որի համար տեղի ունի վերը նշված հավասարությունը:

2. Իրական b թվի և i կեղծ միավորի արտադրյալը նշանակում են bi և անվանում են կեղծ թիվ:

3. Կոմպլեքս թիվ կոչվում է a+bi արտահայտությունը, որտեղ a-ն և b-ն իրական թվեր են:

4. Եթե z=a+bi, ապա a իրական թիվն անվանում են z կոմպլեքս թվի իրական մաս՝ Rez=a, իսկ bi-ն՝ z-ի կեղծ մաս՝ Imz=bi:

5. Իրական a թիվը համարվում է a+bi կոմպլեքս թվի b=0 մասնավոր դեպք։

6. z=a+bi –ն կոչվում է կոմպլեքս թվի հանրահաշվական տեսք։

Գործողություններ կոմպլեքս թվերի հետ

Հավասարություն

Եթե a+bi և c+di կոմպլեքս թվերն իրար հավասար են, ապա a=c և b=d։

Գումարում և հանում

Կոմպլեքս թվերի գումարը կոմպլեքս թիվ է, որի իրական մասը հավասար է գումարելիների իրական մասերի գումարին, իսկ կեղծ մասը՝ կեղծ մասերի գումարին:

Կոմպլեքս թվերի տարբերությունը կոմպլեքս թիվ է, որի իրական մասը հավասար է տրված թվերի իրական մասերի տարբերությանը, իսկ կեղծ մասը՝ կեղծ մասերի տարբերությանը:

Բազմապատկում

Կոմպլեքս թվերի բազմապատկման կանոնը ձևակերպելու համար օգտվում ենք իրական թվերի բազմապատկման փակագծերը բացելու կանոնից՝

Բաժանում

Կոմպլեքս թվերի բաժանման կանոնը ձևակերպելու համար օգտվում ենք իրական թվերի բաժանման կանոնից`

Մոդուլ

Կոմպլեքս թվի մոդուլ (բացարձակ արժեք) անվանում են հետևյալ թիվը՝

Կոմպլեքս թվի n-րդ աստիճանը

Կոմպլեքս թվի ներկայացման մեկ այլ և որոշ դեպքերում ավելի հարմար եղանակ է ոչ զրոյական կոմպլեքս թվի եռանկյունաչափական տեսքը՝ z=r(cosθ+isinθ)

Այս դեպքում, z կոմպլեքս թիվը կսահմանվի որպես r մոդուլի և θ ֆազային անկյան համակցություն: R մոդուլը z կոմպլեքս թվի և կոորդինատների սկզբնակետի հեռավորությունն է։ θ անկյունը ժամացույցի սլաքի հակառակ անկյունն է, որը չափվում է ռադիաններով։

(r, θ) զույգը կկոչվի թվի բևեռային կոորդինատներ։

Կոմպլեքս թվի z=r(cos θ +isinθ) եռանկյունաչափական տեսքն օգտագործելով ստանում ենք կոմպլեքս թվերի բազմապատկման պարզ բանաձև. երկու կոմպլեքս թվերի արտադրյալի մոդուլը հավասար է արտադրիչների մոդուլների արտադրյալին, իսկ արգումենտը՝ արգումենտների գումարին՝

Կիրառելով այս կանոնը n անգամ միևնույն z=r(cosθ+isinθ) թվի համար, ստանում ենք կոմպլեքս թվի n-րդ աստիճանի համար հետևյալ արտահայտությունը՝

Կոմպլեքս թվի n-րդ աստիճանի արմատ

z = r(cosθ + i sinθ) կոմպլեքս թվի համար n-րդ աստիճանի արմատը տրվում է այս բանաձևով՝

Այսպիսով, օգտագործելով n-րդ արմատի բանաձևը, մենք կարող ենք որոշել քառակուսի արմատը բևեռային կոորդինատներով, որտեղ k = 0, 1:

Այս նույն արտահայտությունը z=x+yi տեսքի կոմպլեքս թվի համար դեկարտյան կոորդինատներով կունենա հետևյալ տեսքը՝

Կոմպլեքս թվերի բազմությունը նշանակվում է C:

Չնայած «երևակայական» անվանվելուն՝ կոմպլեքս թվերը մաթեմատիկայում ու գիտության հարակից ճյուղերում համարվում են նույնքան «իրական», որքան իրական թվերն են, և նույնքան հիմնարար՝ աշխարհի գիտական նկարագրության տարաբնույթ ասպեկտներում։

Կոմպլեքս թվերի հետ աշխատանքը Python-ում։

Իսկ ինչպե՞ս ստեղծել կոմպլեքս թվեր Python-ում։
Եկեք նախ պարզենք, թե ինչպես է դա արվում սովորական թվերի հետ։Python-ում սովորական թվեր ունենալու համար պարզապես անհրաժեշտ է այն մուտքագրել՝ 3, 2, 29:
Իսկ կոմպլեքս թվեր ստեղծելու համար անհրաժեշտ է անել հետևյալը՝

Այս կերպ ստեղծված կոմպլեքս թվի բաղադրիչ մասերը կարելի է ստանալ հետևյալ կերպ՝

Գործողություններ կոմպլեքս թվերի հետ՝

Իսկ եթե ուզում ենք օգտագործել ֆունկցիաներ, որոնք որպես արգումենտ կստանան կոմպլեքս թվեր, պետք է ներմուծենք cmath գրադարանը։

Pythoncmath մոդուլը կոդի մեջ ներմուծելու համար հարկավոր է օգտագործել import cmath հրամանը, իսկ մոդուլի ներկառուցված ֆունկցիաներին հասանելիություն ստանալու համար՝ math.function_name(parameter) հրամանը:

cmath մոդուլում սահմանված են՝

  1. Հայտնի մաթեմատիկական հաստատուններ`

2. Թվի աստիճան բարձրացնելն ու լոգարիթմը՝

3. Եռանկյունաչափական ֆունկցիաներ՝

Կոմպլեքս թվի հետ աշխատելիս այն կարելի է ներկայացնել ոչ միայն դեկարտյան, այլ նաև բևեռային կոորդինատներով՝

Եվ, հետևաբար, կիրառել մոդուլի ներկառուցված ֆունկցիաները արդեն այդ ներկայացման պայմաններում՝

Կոմպլեքս թվերն ունեն բազմաթիվ կիրառություններ, ինչպիսիք են էլեկտրական սխեմաների մոդելավորումը, հեղուկների շարժման ուսումնասիրությունները և ազդանշաններիի վերլուծությունը: Եթե Ձեզ անհրաժեշտ է աշխատել այս ոլորտներին առնչվող խնդրիների հետ, ապա cmath մոդուլը բավականին օգտակար գործիք է։

--

--

Arpine Keyan
Picsart Academy

Passionate about tech and machine learning, I love sharing insights through my articles.