תכנות נומרי עם Matlab ו-Octave/מספרים מרוכבים

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
קפיצה לניווט קפיצה לחיפוש


להעביר לנספחים

הקדמה


פרק זה לוקה בחסר. אתם מוזמנים לתרום לוויקיספר ולהשלים אותו. ראו פירוט בדף השיחה.




כדאי לדעת:

דף זה דורש ידע קודם במספרים מרוכבים. כדאי לקרוא את הספר מספרים מרוכבים.



ניצור מספר מרוכב:

octave:16> x=3+4i
x =  3 + 4i

ונבדוק מיהו:

octave:17> whos x

*** local user variables:

  Prot Name        Size                     Bytes  Class
  ==== ====        ====                     =====  ===== 
   rwd x           1x1                         16  double

Total is 1 element using 16 bytes

פעולות חישוב[עריכה]

ניתן לבצע פעולות חשבוניות על וקטורים עם מספרים ממשיים:

octave:9> x=3+2i;
octave:10> x+4
ans =  7 + 2i
octave:11> x*2
ans =  6 + 4i

ואף עם וקטורים אחרים:

octave:12> y=2+4i
y =  2 + 4i
octave:13> x+y
ans =  5 + 6i
octave:14> x*y
ans =  -2 + 16i

ניתן להגדיר מספר מרוכב שהאיברים בו הם משתנים. אבל צריך שהמשתנים הללו יהיו קיימים.

octave:21> a=1;b=2;
octave:22> x=a+b*i
x =  1 + 2i


שימו לב:

שימו לב לפעולת הכפל בין b ל i לא ניתן לחבר בין האיברים ללא כפל (כמו במתמטיקה) כי אז התוכנה תחפש משתנה בשם bi .
i הוא קבוע הקיים בתוכנה (שערכו שורש של 1-). אם נגדיר משתנה בשם i לא נקבל מספר מרוכב. 
octave:25> i=5;
octave:26> x=a+b*i
x =  11

ולכן נמחק את המשתנה i ונריץ שוב את הפקודה:

octave:27> clear i
octave:28> x=a+b*i
x =  1 + 2i

שימו לב:

כאשר כותבים תוכנית שמשתמשת במספרים מרוכבים, רצוי לאתחל את i בתחילת התוכנית, ולא להשתמש במשתנה (להציב איברים לתוכו)

וקטורים ומטריצות[עריכה]

כמו בשימוש במספרים ממשיים, גם עם מספרים מרוכבים ניתן לבנות מערך שורה ( כלומר וקטור של מספרים מרוכבים) ואף מטריצות:

octave:32> a=[1+5i,2+3i,4+2i;3+2i,2+2i,4+4i]
a =

   1 + 5i   2 + 3i   4 + 2i
   3 + 2i   2 + 2i   4 + 4i

מה יקרה אם נבנה מערך שחלר מאיבריו הם מספרים מרוכבים והשאר מספרים ממשיים ?

octave:34> a=[1+5i,pi,4+2i;e,2+2i,4]
a =

   1.0000 + 5.0000i   3.1416 + 0.0000i   4.0000 + 2.0000i
   2.7183 + 0.0000i   2.0000 + 2.0000i   4.0000 + 0.0000i

במקרה הזה התוכנה תתייחס לכל המספרים כאל מרוכבים ותוסיף חלק המדומה 0i

שחלוף[עריכה]

האם ניתן לשחלף מטריצה של מספרים מרוכבים ? ננסה :


octave:32> a=[1-5i,2+3i,4+2i;3+2i,2-2i,4+4i]
a =

   1 - 5i   2 + 3i   4 + 2i
   3 + 2i   2 - 2i   4 + 4i

octave:33> a'
ans =

   1 + 5i   3 - 2i
   2 - 3i   2 + 2i
   4 - 2i   4 - 4i

שחלוף מטריצה מרוכבת הופך את אברי המטריצה לצמוד המרוכב שלהם

אבל רצינו מטריצה משוחלפת! לשם כך נוסיף נקודה לפני הגרש .'


octave:33> a.'
ans =

   1 - 5i   3 + 2i
   2 + 3i   2 - 2i
   4 + 2i   4 + 4i

ונקבל מטריצה משוחלפת של המספרים המרוכבים.

פונקציות למספרים מרוכבים[עריכה]

complex[עריכה]

  • הפונקציה מקבלת שבר עשרוני והופכת אותו למספר מרוכב.
  • הפונקציה מקבלת חלק מדומה וממשי ומציגה אותם כמספר מרוכב.
complex(0.886)
ans =  0.88600 + 0.00000i
 complex(3,4)
ans =  3 + 4i

real[עריכה]

מחזירה את החלק האמיתי של המספר המרוכב.

z=4+5i;
real(z)
ans =  4

imag[עריכה]

מחזירה את החלק המדומה של המספר המרוכב..

imag(z)
ans =  5

כדאי לדעת:

קיימת פונקציה שונה שנקראת image, לא להתבלבל..

angle / arg[עריכה]

הפונקציות מחזירות את הזוית בין החלק המדומה לממשי.

 angle(z)
ans =  0.89606

conj[עריכה]

הפונקציה מחזירה את הצמוד המרוכב (conjugate) לדוגמה:

 conj(1+3i)
ans =  1 - 3i


הפרק הקודם:
מערכים
מספרים מרוכבים הפרק הבא:
רשומות