סדנת יסודות מטלב ממדיים - מערכים חד 2: שיעור מס` - אוניברסיטת בר-אילן
Transcription
סדנת יסודות מטלב ממדיים - מערכים חד 2: שיעור מס` - אוניברסיטת בר-אילן
סדנת יסודות מטלב © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ סדנת יסודות מטלב שיעור מס' :2מערכים חד-ממדיים יצירת מערכי שורה שרשור יצירת מערך שורה ע"י ציון האיברים: ][a1 a2 a3 a4 ... רשימת איברים מופרדים ברווחים או בפסיקים. ]or: [a1,a2,a3,a4... ]V5 = [3 7 -1 3 0 = V5 3 7 -1 דוגמא: 3 0 ] [ = V0 מקרה פרטי :מערך ריק (ללא איברים) שרשור :אופרטור בינרי בין שני מערכים .התוצאה היא מערך שלישי ,הכולל את המערך הראשון ובהמשכו את המערך השני (כאשר סדר האיברים בכל מערך נשמר). אופרטור השרשור במטלב( ] [ :סוגריים מלבניים המקיפים את האופרנדים) .ניתן לשרשר בפקודה אחת יותר משני מערכים. דוגמאות: ;]u3 = [4 3 2]; v3 = [9 8 7 ]w6 = [u3 v3 = w6 7 8 9 2 0 3 -1 7 3 4 ]V7 = [9 V5 9 = V7 9 3 9 מידע על המערך אורך מערך חד -ממדי (שורה או עמודה) מוחזר מפקודת .length V7 = V7 0 9 -1 3 7 3 9 )length(V7 = ans 7 )][(length = ans 0 יצירת סדרות האופרטור :יוצר מערך שורה שאיבריו סדרה חשבונית. 16 3.0000 start : step : stop 14 2.5000 12 2.0000 10 8 1.5000 6 1.0000 2:2:16 = ans 2 4 0.5:0.5:3 = ans 0.5000 אם stepחסר ,ברירת המחדל היא .1 11 עמ' 1מתוך 9 10 start : stop 9 8 7 שיעור 2 6 5 4 3 2:11 = ans 2 אוגוסט 15 סדנת יסודות מטלב © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ אם stopאיננו חלק מן הסדרה החשבונית המוגדרת ע"י startו ,step-הפעולה עוצרת באיבר האחרון לפני .stop 0.5:10 = ans Columns 1 through 7 6.5000 5.5000 4.5000 3.5000 1.5000 2.5000 0.5000 Columns 8 through 10 8.5000 9.5000 ליצירת סדרה יורדת יש לקחת stepבערך שלילי. start:-step:stop 5 0.5000 2.5000 7 6 4.5000 8 6.5000 פקודת linspaceליצירת סדרה ליניארית עם nאברים 10:-1:5 = ans 10 9 8.5:-2:0 = ans 8.5000 )linspace(start,stop,n אם nחסר ,ברירת המחדל היא 100מספרים. 7.5000 10 6 8 פקודת logspaceליצירת סדרה לוגריתמית עם nאיברים בין 10aל.10b- )linspace(0,10,6 = ans 0 2 4 )v=logspace(a,b,n כלומר ,המרווחים בין איברי ) log10(vקבועים .אם nחסר ,ברירת המחדל היא .50 )v = logspace(1,2,6 = v 100.0000 63.0957 39.8107 25.1189 15.8489 10.0000 2.0000 1.8000 1.6000 1.4000 1.2000 )log10(v = ans 1.0000 מערכים מיוחדים קיימות במטלב פקודות לייצור מערכים מסוגים שונים .כמה דוגמאות: קבועים מטריצה nxmשכולה 1 )ones(n,m מטריצה nxmשכולה 0 )zeros(n,m )nan(n,m מטריצה nxmשכולה NaN דוגמאות: )ones(1,4 =ans 1 1 1 1 מערך שורה שכולו 1 מערך שורה שכולו NaN NaN NaN NaN NaN )]nan([1 6 = ans NaN NaN מספרים אקראיים )rand(n,m התפלגות אחידה בין 0ל1- )randn(n,m התפלגות גאוסיאנית סביב 0ברוחב 1 )randi(K,n,m מספרים שלמים בהתפלגות אחידה בין 1לK- ממדים בפקודות שלמעלה: אם מציינים רק מימד אחד ,נוצרת מטריצה ריבועית .לכן ,ליצירת מערך שורה באורך nיש לציין במימדים . 1,n עמ' 2מתוך 9 שיעור 2 אוגוסט 15 סדנת יסודות מטלב © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ )rand(1,4 דוגמאות: -0.4336 0.3426 3.5784 0.8622 0.3188 -1.3077 =ans 0.9134 0.1270 0.9058 0.8147 )randi(9,1,5 )randn(3 = ans 0.5377 1.8339 -2.2588 9 6 8 =ans 7 9 ◄תרגיל :1ליצור סדרה של nמספרים אקראיים בהתפלגות אחידה בין aל.b- פעולות מתמטיות על מערכים חד ממדיים פעולות לפי הגדרות אלגברה ליניארית פעולת האופרטורים המתמטיים חיבור ,חיסור ,כפל ,חילוק וחזקה מוגדרת במטלב בהתאם לכללים של אלגברה ליניארית (וקטורי שורה ועמודה ומטריצות) .כאן מוצג רק מה שרלוונטי לוקטורים חד-ממדיים. סדר הקדימויות בין האופרטורים השונים הוא כמקובל במתמטיקה. פעולה דוגמא הגדרה ;]R = [5 2 3]; S = [4 6 0 חיבור C=A+B Ck Ak Bk RpS = R+S = RpS חיסור C = A-B כפל בסקלר C=s*A חילוק בסקלר C=A/s Ck Ak Bk 3 9 8 R2=R*2 A Ck k s A Ck k s = R2 6 10 4 הרחבה סקלרית כפל וחילוק מערך בסקלר מוגדר ככפל וחילוק כל אחד מן האיברים ,לפי כללי אלגברה ליניארית. במטלב ,גם חיבור וחיסור סקלר ממערך מוגדרים כפעולה על כל אחד מן האיברים. C=s±A R+3 Ck s Ak = ans 6 ◄דוגמא :1סיגנל עם רעש. נתון סיגנל. להוסיף לסיגנל רעש בהתפלגות אחידה בין -3ל.3- 8 5 load LDGW )'plot(T,deer,'k hold on )'plot(T,deer+6*rand(1,length(deer))-3,'c 45 רוחב התחום הוא ,6לכן כופלים ב.6- אמצע התחום הוא ,0לכן מזיזים ב .3- 40 מערך הרעש צריך להיות מאותם ממדים כמו הסיגנל 35 המקורי .בפקודת randיש לציין את שני הממדים (למרות 30 שהמערך חד ממדי) .ציון מימד אחד בלבד ייתן מערך דו- 25 ממדי. 20 100 עמ' 3מתוך 9 שיעור 2 90 80 70 60 50 40 30 20 10 0 15 אוגוסט 15 סדנת יסודות מטלב © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ פעולות בין אברי מערכים חיבור וחיסור מערכים מוגדר כחיבור וחיסור כל אחד מן האיברים משני המערכים בהתאמה ,לפי כללי אלגברה ליניארית. במטלב ניתן לבצע גם כפל ,חילוק והעלאה בחזקה על כל אחד מן האיברים משני המערכים בהתאמה ,ע"י הוספה של נקודה .לפני סימן האופרטור. הגדרה דוגמא כתיב פעולה כפל איברים בהתאמה C=A.*B Ck Ak Bk R.*S חלוקת איברים בהתאמה C=A./B Ak Bk Ck חלוקה של סקלר במערך C=s./A s Ak Ck העלאה בחזקה בהתאמה C=A.^B Ck AkBk העלאת מערך בחזקה סקלרית C=A.^s Ck Aks העלאת סקלר בחזקת מערך C=s.^A Ck s Ak 12 0 = ans 20 )S./(R+1 0 = ans 0.6667 2.0000 1./S Inf = ans 0.2500 0.1667 R.^S 1 64 = ans 625 R.^2 9 4 = ans 25 2.^R 8 4 = ans 32 ◄ תרגיל :2לחשב סדרה של 10החזקות הראשונות של .2 ◄דוגמא :2שרטוט ביטוי מתמטי בתחום רחב ובתחום מצומצם. ;)x = linspace(0,10,100 ;)y=sin(pi*x).*exp(-x )subplot(1,2,1 plot(x,y,'b'), axis tight )subplot(1,2,2 )'plot(x,y,'b )]axis([6 10 -0.001 0.002 הפעלת פונקציות מתמטיות על מערך במטלב כל הפונקציות המתמטיות המופעלות על מערך ,מחזירות מערך של ערכי הפונקציה עבור כל אחד מן האיברים בנפרד. )C=f(A Ck f Ak )exp(-R = ans 0.0003 עמ' 4מתוך 9 0.0025 שיעור 2 0.0498 אוגוסט 15 סדנת יסודות מטלב ד"ר סמדר שץ © אגף התקשוב ,אוניברסיטת בר אילן ◄ דוגמא :3הסקריפט d2tanh.mמחשב ומציג על פני ;T = 0.5; H=0.3 התחום -6T<m<6Tאת הביטוי . f m tanh m H d2tanh T הפעלת הסקריפט: הפעלת אופרטור בין איברי מערך נניח שיש מערך חד -ממדי Yבאורך . Nהפקודות הבאות מבצעות פעולה בין כל האיברים: N sum סקלר = סכום איברי המערך )S = sum(Y prod סקלר = מכפלת איברי המערך )P = prod(Y mean סקלר = ממוצע האיברים S Yk k 1 N P Yk k 1 Std )M = mean(Y 1 N Yk N k 1 S Y 1 N S ) Yk Y S = std(Y N 1 k 1 סקלר = סטיית תקן (כיול סטנדרטי) סקלר = סטיית תקן (כיול לפי )N )S = std(Y,1 1 N Yk Y N k 1 S median סקלר = חציון )M = median(Y cumsum מערך באורך = Nסכום מצטבר )s = cumsum(Y cumprod מערך באורך = Nמכפלה מצטברת )p = cumprod(Y pn Yk )d = diff(Y d n Yn1 Yn n sn Yk k 1 n k 1 diff מערך באורך = N-1הפרש בין איברים סמוכים מערך באורך = N-kהפעלת k diffפעמים )diff(Y,k כמו-כן הפקודה ) min(Yמחזירה את הערך המינימלי מבין איברי המערך והפקודה )max(Y מחזירה את הערך המקסימלי. ◄ תרגיל :3הגרילו סדרה של 50מספרים שלמים בין 1ל . 9-בדקו שאכן אין בסדרה ערכים שחורגים מגבולות אלה, ושהממוצע בסביבות .5 עמ' 5מתוך 9 שיעור 2 אוגוסט 15 סדנת יסודות מטלב © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ פעולות על חלק ממערך קריאת איברים הפנייה לאיבר במערך נעשית ע"י המקום שלו במערך (אינדקס) .המקום הראשון מסומן ,1השני 2וכו'. ;]R = [5 2 3 )r2 = R(2 = r2 2 ציון המקום נעשה בסוגריים עגולים ,ליד שמו של המשתנה .x(index) .x ציון מקום שאינו קיים במערך הוא שגיאה. פנייה לאיבר השני: )R(end = ans 3 פנייה לאיבר האחרון :ציון מקום .end למילה endיש משמעות רק אם היא מופיעה בסוגריים ליד שם משתנה. )R(1:2 = ans 5 2 )]R([2 3 1 2 = ans 2 3 ניתן לפנות לכמה איברים ,כאשר בין הסוגריים מופיע מערך של אינדקסים. 2 5 ◄ תרגיל :4הצגת מערך בסדר איברים הפוך. ביצוע פעולות בין שני איברים סמוכים בכל המערך :A )A(end )A(end-1 )A(end )A(3 )A(2 )A(1 )A(3 )A(2 )A(1:end-1 )A(1 )A(2:end ]c = [1 2 1 = c ][1 2 1 ◄ דוגמא :4יצירת מקדמי בינום (משולש פסקל). המקדמים של (a+b)2 = c1a2+c2ab+c3b2הם: ]c = [1 c(1:end-1)+c(2:end) 1 כדי ליצור את מקדמי החזקה הבאה ,יש לבצע את הפעולות הבאות: א .לחבר כל שני מקדמים סמוכים ולרשום את התוצאה. ב .להוסיף את המספר 1לפני ואחרי המערך שנוצר. = c ][1 3 3 1 ]c = [1 c(1:end-1)+c(2:end) 1 לחזור על הפעולה כדי לקבל את מקדמי החזקה הבאה. = c ][1 4 6 4 1 שינוי ,מחיקה והוספה של איברים שינוי ערכים של חלק מאברי המערך נעשה ע"י השמת ערכים לאיברים אלה ( ציון האינדקסים שלהם). ;]v = [5 2 3 9 6 1 R(2) = 0 = R 5 0 3 9 6 1 שינוי האיבר השני: R(end) = 4 = R 5 0 3 9 6 4 שינוי המקום האחרון. ניתן לשנות כמה איברים ,אם מספר האיברים של הביטוי בצד ימין של הפקודה זהה למספר האינדקסים בצד שמאל. עמ' 6מתוך 9 שיעור 2 ]R(1:2) = [8 7 = R 8 7 3 9 6 4 אוגוסט 15 סדנת יסודות מטלב ד"ר סמדר שץ © אגף התקשוב ,אוניברסיטת בר אילן הרחבה סקלרית :השמת ערך אחיד בכמה מקומות במערך (כאשר בצד ימין יש סקלר ובצד שמאל כמה אינדקסים). R(3:5) = 1 = R 8 7 1 1 1 4 מחיקה של חלק מאברי המערך נעשית ע"י השמת מערך ריק לאיברים אלה (ציון האינדקסים שלהם) .האיברים שאחרי אלה שנמחקו מוזזים ומוצמדים לאיברים הקודמים. מחיקת האיבר השלישי: מחיקת כל איבר שני: הוספת איברים :כתיבה לאינדקס שלא קיים במערך .אם אין רציפות בין המקום האחרון במערך לאינדקס החדש ,מטלב ממלא את המקו מות ביניהם ][ = )R(3 = R 8 7 1 1 4 ][ = )R(1:2:end = R 7 1 R(5) = 8 = R 7 1 0 0 8 באפסים. פולינומים במטלב ייצוג פולינומים במטלב פולינומים במטלב מיוצגים ע"י מערך חד-ממדי של המקדמים ,כאשר האיבר הראשון במערך הוא המקדם של מעלת הפולינום (החזקה הגבוהה) והאיבר האחרון הוא האיבר החופשי. לדוגמא הפולינום 5x4+2x2+x+1מיוצג ע"י המערך.[5 0 2 1 1] : גם שיטת הספירה העשרונית משתמשת בכתיב דומה של מקדמים :הספרה הראשונה (השמאלית) היא המקדם של החזקה העשרונית הגבוהה ביותר במספר ,והספרות העוקבות הן המקדמים של החזקות העשרוניות בסדר הולך ויורד ,עד ספרת האחדות שהיא האיבר החופשי .חזקות עשרוניות שאינן קיימות במספר מיוצגות ע"י .0למשל, המספר 50211מייצג .5·104+2·102+10+1 בסיסי ספירה בבסיס-הספירה העשרוני ניתן לייצג עד 9אחדות .המספר הבא אחרי " 9יאגד" את האחדות לעשרת .בדומה ,המספר הבא אחרי 19יכלול שתי עשרות וכו' .ניתן לייצג עד 9עשרות .המספר הבא אחרי ,99כלומר עשר עשרות" ,מאגד" את העשרות למאה .בדומה ,ניתן לייצג עד 9מאות ,והמספר הבא אחרי " 999מאגד" עשר מאות לאלף .ניתן "לאגד" אחדות לעשרות ,עשרות למאות וכו' לאו דווקא אחרי 9אלא אחרי כל מספר שהוא .המספר שבו "מאגדים" נקרא בסיס הספירה .לדוגמא ,בסיס 5כולל את הספרות ,0-4והמספר הבא אחרי 4יהיה עשר ,המספר הבא אחרי 44 יהיה מאה וכו' .ניתן גם להגדיר בסיס גדול מעשר ,אלא שאז יש לצרף סימנים נוספים לספרות .0-9למשל ,בבסיס 16 (בסיס הקסדצימלי) את הספרות הבאות אחרי 0-9מקובל לרשום באמצעות האותיות .a-f מספר בשיטה העשרונית הפו זיציונית (כתיבה עפ"י מיקום) מיוצג ע"י ספרות ,שהסדר שלהן משמעותי :הספרה הימנית ביותר מייצגת אחדות ,זו שלשמאלה מייצגת עשרות ,וכו' .לכן ערכו של מספר d6d5d 4 d3d 2d1הוא: d6 B5 d5 B 4 d 4 B3 d3 B 2 d 2 B d1כאשר Bהוא ערך העשרת בבסיס הספירה הנתון ,והספרה הגדולה ביותר בבסיס הספירה היא ( B-1במקרה של בסיס 10הספרה הגדולה ביותר היא .)9 בשיטת -ספירה בינארית B=2 ,ולכן הספרה הגדולה ביותר היא ,1וכל ספרה במספר יכולה להיות 0או ,1כלומר כל ספרה מיוצגת ע"י ביט. עמ' 7מתוך 9 שיעור 2 אוגוסט 15 סדנת יסודות מטלב © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ פעולות על פולינומים )polyval(p,x הצבת המשתנה xבפולינום .p )polyval([5 0 2 1 1],7 דוגמא :להציב x=7בפולינום 5 0 2 1 1 = ans 12111 )polyval([1 0 0 1 1],2 ◄דוגמא :5מהו הערך העשרוני של המספר הבינארי ?10011 = ans 19 )polyval([1 -2 1],1:10 = ans 0 1 4 9 49 64 81 )polyder(p xיכול להיות מערך. לדוגמא ,נציב את הערכים מ 1-עד 10בפרבולה. 36 16 25 גזירת פולינום pוקבלת מקדמי פולינום הנגזרת. )]polyder([1 1 1 0 = ans 3 2 1 )poly(r לדוגמא: מציאת מקדמי פולינום שהשורשים שלו נתונים במערך חד-ממדי .r )]p4 = poly([1 -1 2 2 = p4 1 -4 3 )roots(p לדוגמא: 4 -4 מציאת כל השורשים של הפולינום (כולל מרוכבים) )]roots([1 0 0 0 -1 לדוגמא ,השורשים של 1-x4 0.0000i 1.0000i 1.0000i 0.0000i + + + 0.0000i 0.0000i 0.0000i 0.0000i + + + = ans -1.0000 0.0000 0.0000 1.0000 )roots(p4 = ans -1.0000 2.0000 2.0000 1.0000 )'plot(roots([1 0 0 0 0 1]),'o:b נציג במישור המרוכב את שורשי הפולינום. x5+1 : אם פקודת plotכוללת רק מערך מספרי אחד ,ובמערך 1 0.8 זה יש מספרים מרוכבים ,אז הפקודה מציגה את 0.6 הערכים במישור המרוכב ,כאשר החלקים הממשיים 0.4 0.2 נלקחים כקואורדינטות xוהחלקים הדמיוניים נלקחים 0 כקואורדינטות .y -0.2 -0.4 -0.6 -0.8 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.8 -0.6 -1 -1 ◄ דוגמא :6חישוב טור טיילור לפונקציה ) , sin(xגזירה ומציאת המקומות בהם הנגזרת מתאפסת .טור טיילור של x3 x5 x7 ) sin(xנתון ע"י... : !3 !5 !7 2n+1הוא: עמ' 8מתוך 9 sin x x כלומר יש רק חזקות אי-זוגיות ,והמקדם של חזקה איזוגית n . T2 n 1 1 !)(2n 1 שיעור 2 אוגוסט 15 אוניברסיטת בר אילן,© אגף התקשוב סדנת יסודות מטלב ד"ר סמדר שץ % d2taylor % MATLAB basics summer workshop - class 2 % Class demonstration % Calculate taylor coefficients for sin(x) % T2n+1 = (-1)^n/(2n+1)! % find zeros % find polynomial derivative and compare to cos(x) N = 8; % calculate to order 17 n = 0:N; T = (-1).^n./factorial(2*n+1); מחשב אתd2taylor הסקריפט בונה מהן פולינום,מקדמי החזקות בפורמט של מטלב ומוצא את .השורשים של פולינום הנגזרת .חישוב המקדמים שלא מתאפסים במערך קיימים רק הערכים שאינם . ובסדר מנמוך לגבוה,מתאפסים p = 1:2*(N+1); % prepare array of all powers + free term p(2:2:end) = 0; % zero even orders p(1:2:end) = T(end:-1:1); % store coefficients according to polynomial conventions pd = polyder(p); % find derivative x = linspace(-2.5*pi,2.5*pi,100); plot(x,polyval(pd,x)) % plot derivative hold on % compare with analytic derivative plot(x,cos(x),'k') שרטוט פולינום הנגזרת על.מציאת פולינום הנגזרת ושרטוט הנגזרת2.5π עד-2.5π פני תחום .האנליטית בתחום זה roots(p) sin מציאת נקודות ההתאפסות של roots(pd) .cos ונקודות ההתאפסות של 2 1.5 1 0.5 0 -0.5 -1 -8 15 אוגוסט הכנת מערך באורך הפולינום מילוי חזקות זוגיות.המלא זוגיות- ומילוי חזקות אי,באפסים .בסדר יורד -6 -4 -2 0 2 4 6 8 ans = 0.0000 -8.3754 -8.3754 8.3754 8.3754 -8.6468 -8.6468 -8.1652 -8.1652 -6.2725 8.6468 8.6468 -3.1416 8.1652 8.1652 6.2725 3.1416 2 שיעור + + + + + + + + + + + 0.0000i 8.9428i 8.9428i 8.9428i 8.9428i 4.3150i 4.3150i 1.2642i 1.2642i 0.0000i 4.3150i 4.3150i 0.0000i 1.2642i 1.2642i 0.0000i 0.0000i ans = -8.0400 -8.0400 8.0400 8.0400 -8.2021 -8.2021 -7.5638 -7.5638 8.2021 8.2021 7.5638 7.5638 -4.7122 4.7122 -1.5708 1.5708 + + + + + + + + + + 8.1827i 8.1827i 8.1827i 8.1827i 3.7130i 3.7130i 0.8481i 0.8481i 3.7130i 3.7130i 0.8481i 0.8481i 0.0000i 0.0000i 0.0000i 0.0000i 9 מתוך9 'עמ