88-151 שימושי מחשב במתמטיקה תשעב סמסטר ב שאלות ותשובות ארכיון 2
בתרגיל 4, בשאלה ראשונה 2 שאלות:
- -אפשר להניח שהמשתמש מכניס את הוקטור של הטווח באופן שמתאים ל-mesh/surf, כלומר הוקטור יהיה מהצורה [minx,maxx,miny,maxy]?
- -איך אני יכול להכניס בתוך תנאי את העניין שנניח והמשתמש לא הכניס פרמטר מסוים?
- שאלה ראשונה - בניסוח השאלה כתוב שיש להעביר לפונקציה את התחום שבו רוצים להעביר אותה. כלומר, לא צריך להניח שמתמש עושה את זה, אלא יש לממש את הדבר.
- שאלה שנייה - אתה יכול למצוא את זה או ב- help של Matlab או במצגת של תרגול 3, איפה שמדברים על פונקציות. --Grisha 22:44, 24 באפריל 2012 (IDT)
תרגיל 4 שאלה 1
האם אפשר להעמיס שיטות? אחרת איך אפשר לא להעביר וקטור לפונקציה?
- על איזה שיטות מדובר? מה הכוונה - להעמיס? אין שום בעיה להעביר וקטור לפונקציה - לדוגמא - sin(x), כאשר x הוא וקטור. --Grisha 22:38, 24 באפריל 2012 (IDT)
- הבעיה היא שבשאלה דורשים לטפל במצבים שבו הקלט הוא חלקי, ואי אפשר סתם להתעלם מזה שהפונקציה צריכה לקלוט וקטור (מתקבלת שגיאה). לכן עולה השאלה, אם ניתן להעמיס את פונקציה שצריך לבנות? וזאת על מנת שנוכל לטפל גם במקרה כזה.
- אנחנו לא כותבים ב C++ אלא במטלב. ראה את ההסבר איך עושים את זה במצגת של תרגול 3, בפרק שמדבר על פונקציות. --Grisha 08:57, 25 באפריל 2012 (IDT)
- הסתדרתי, אבל צצה שאלה אחרת. באחת התשובות אמרת שאנחנו מקבלים וקטור שמייצג את התחום ואז לממש אותו לוקטור שמתאים לפונקציה, אבל בעצם אנחנו צריכים גם תחום בציר הx וגם בתחום בציר הy. איך העניין הזה מסתדר בעצם? האם הוקטור שאנחנו מקבלים הוא שירשור של שני התחומים? או שאנחנו מקבלים וקטור כפי שאנחנו צריכים לשלוח לezmesh\ezsurf?
- אנחנו לא כותבים ב C++ אלא במטלב. ראה את ההסבר איך עושים את זה במצגת של תרגול 3, בפרק שמדבר על פונקציות. --Grisha 08:57, 25 באפריל 2012 (IDT)
- ezmesh/ezsurf מקבל בתחום כל פורמט הגיוני...
- תממש מה שיותר נוח והגיוני בשלבילך. עדיף שתעשה דומה להגיון שממומש ב- matlab. --Grisha 21:13, 25 באפריל 2012 (IDT)
- הבעיה היא שבשאלה דורשים לטפל במצבים שבו הקלט הוא חלקי, ואי אפשר סתם להתעלם מזה שהפונקציה צריכה לקלוט וקטור (מתקבלת שגיאה). לכן עולה השאלה, אם ניתן להעמיס את פונקציה שצריך לבנות? וזאת על מנת שנוכל לטפל גם במקרה כזה.
לא קשור לשיעורי בית
איך אני משנה את השדה שאני רוצה לעבוד אתו?
- איזה שדה? שדה של מה? על מה בדיוק אתה מדבר? קצת הכוונה או דוגמא מאוד תעזור. --Grisha 22:44, 24 באפריל 2012 (IDT)
הכוונה לשדה אלגברי. לדוגמה אם אני רוצה שהחישובים שנעשים יעשו ב[math]\displaystyle{ \mathbb {Z}_5 }[/math]?
- באופן כללי אין אפשרות כזאת (או שאני לא יודע איך עושים דבר כזה). ספציפית, במקרה של [math]\displaystyle{ \Z_5 }[/math], אפשר לעשות כל הפעולות mod 5. --Grisha 09:01, 25 באפריל 2012 (IDT)
מה הבעיה לעשות mod בסוף כל חישוב?
- כיוון שאין לי מושג מה אתה רוצה לעשות, לא יכול לענות האם יש איזושהי בעיה. תסביר מה אתה עושה ומה אתה רוצה לקבל ואשתדל לעזור. --Grisha 23:15, 26 באפריל 2012 (IDT)
תרגיל 3 שאלה 4 בכלליות
למה נועדו הערכים אלפה וביתא?
- תשחק עם הפרמטרים, תצייר גרפים עבור [math]\displaystyle{ \alpha, \beta }[/math] שונים. --Grisha 09:03, 25 באפריל 2012 (IDT)
תרגיל 4 שאלה 2
איפה אפשר למצוא את הדוגמה שמסבירה על movie? או שהיא עדיין לא הועלתה?
- תתחיל מ- help של matlab. כמו כן אפשר לראות את הדוגמא שנתתי בתרגול (היא הועלה לאתר שלי). --Grisha 21:02, 25 באפריל 2012 (IDT)
- הדוגמה שנתת לא כוללת את הפקודה movie2avi. חובה להשתמש בה? אם כן, איך?
- help movie2avi. --Grisha 07:54, 26 באפריל 2012 (IDT)
- הדוגמה שנתת לא כוללת את הפקודה movie2avi. חובה להשתמש בה? אם כן, איך?
תרגיל 4 שאלה 1
הפונקציה מקבלת וקטור?
- בסעיף 2 של ההסבר כתוב שפונקציה מקבלת את התחום בצורת וקטור. --Grisha 21:10, 25 באפריל 2012 (IDT)
חייבים לפעול על פי ההדרכה?
- באופן כללי כן, אבל תסביר למה אתה מתכוון. --Grisha 21:10, 25 באפריל 2012 (IDT)
צריכים להתייחס גם למקרה שלא מקבלים את התחום? צריכים להתייחס גם למקרה שלא מקבלים את הפונקציה?
- צריכים להתייחס למקרה שלא מקבלים אף פרמטר. --Grisha 21:10, 25 באפריל 2012 (IDT)
- בסעיף 2 של ההסבר כתוב שפונקציה מקבלת את התחום בצורת וקטור.
כן אבל הפונקציה מקבלת 3 נתונים ולא וקטור
- כן. פונקציה מקבלת 3 נתונים כאשר אחד מהם וקטור. מה השאלה? --Grisha 23:13, 26 באפריל 2012 (IDT)
תרגיל 4 שאלה 1
האם אפשר להניח שהקלט תקין? (בהנחה ויש קלט כמובן)
- כן --Grisha 18:46, 26 באפריל 2012 (IDT)
2 שאלות-על שאלה 4
2 שאלות: -בשאלה 1: איך אני אמור לדעת איזה פרמטר המשתמש לא הכניס? כלומר,אני יודע שע"מ לדעת כמה פרמטרים המשתמש הכניס אני משתמש ב-nargin, אבל איך אני אמור לדעת איזה פרמטרים בדיוק הוא הכניס ע"מ לשים איזהשהו defult במקומם?
- אם הסדר הוא: ('function_name('x^2+2*y',[1 2 -1 3],'mesh, אתה רשאי להניח שהסדר נשמר ויכול לא להופיע קלט אחרון, או שני האחרונים או כל שלושתם, אך לא ייתכן שהקלט הראשון לא הועבר כאשר שני ושלישי כן. או, לחילופית, תבדוק איך עובד ביטוי varargin. --Grisha 18:56, 26 באפריל 2012 (IDT)
-בשאלה 2: יש איזה פונקציה שיוצרת אנימציה, בדומה ל-commet, אבל ב-3D?
- למשל ezplot3. יש עוד כמה. אך אפשר לייצר אנימציה פשוט ע"י שימוש חוזר בפקודות mesh, surf וכו'. --Grisha 18:56, 26 באפריל 2012 (IDT)
תודה:)
כשאמרתם פרמטר התכוונתם ל1 מנתוני הקלט?
כלומר או לפונקציה או לטווח או לserf/mesh?
תרגיל 4 שאלה 2
בשאלה 2, נניח והדבורה נמצאת ב9.7 ומתקדמת ב0.5 באותו כיוון היא תעצר על 10, או תגיע עד 10.2 ושם תעצר?
תרגיל 4 שאלה 2
"הציגו בעזרת subplot כעשרים מצבי ביניים במרווחים שווים." מה הכוונה במרווחים שווים? האם אתה מכיר פקודה במטלב שמחלקת את אינטרבל לקטעים שווים? --Grisha 12:19, 29 באפריל 2012 (IDT)
תרגיל 4 שאלה 2
איך אני יכול לצייר כמהפונקציות באותה מערכת צירים תלת מימדים גם אם אני משתמש בפקודת ציור שונה ?
- תשתמש בפקודה axis --Grisha 12:14, 29 באפריל 2012 (IDT)
else if
1)אפשר דוגמה למצב שבו יש הבדל בין כתיבת elseif לelse if? (המצגת מעורפלת בנושא)
- לא קיימת דוגמא כזאת. זאת השאלה של נוחית וגם סיבוך של הקוד. כש אתה כותב elseif, אתה נמצא במבנה if אחד, שזה אומר בין היתר שיהיה סה"כ end אחד בסוף. אם, לעומת זאת, תכתוב מספר פעמים else if, אז הקוד יהיה מסובך לקריאה ולהבנה. --Grisha 12:18, 29 באפריל 2012 (IDT)
2)כשמטפלים במקרים שונים של אותו משתנה, האם יש הבדל כלשהו (יעילות, מוסכמה) בין שימוש במבנה elseif לswitch? הרי switch תמיד ניתן להחלפה במבנה הנ"ל...
- אין, שאלה של נוחות גם לכותב וגם לקורא/בודק. אין יש מספר ערכים מדויקים שיש לבדוק, נוח יותר להשתמש ב- switch, אם צריך לבדוק תנאים מורכבים, אינטרוולים וכו', אז if עדיף. --Grisha 12:18, 29 באפריל 2012 (IDT)
איך אמורים לעלות סרט?
?????
- לאן? --Grisha 14:37, 29 באפריל 2012 (IDT)
תרגיל 4 שאלה 1
מה הכוונה ב2. התחום של הפונקצייה? תחום של z,x,y? בנפרד?
- תבדוק איך מוגדרת פונקציה exmesh או ezsurf. אם לא מוגדר במדויק, אלא רשאי לעשות איך שזה נוח לך. --Grisha 22:28, 29 באפריל 2012 (IDT)
תרגיל 4 שאלה 1
האם המחרוזת שמקבלים היא בעצם ציר z ואם כן איך אמורים להכניס לשם פרמטרים אם זה מחרוזת? ז"א את x ,y לא אמורים לקבל כקלט? תודה
- תבדוק איך מוגדרת פונקציה exmesh או ezsurf. --Grisha 22:30, 29 באפריל 2012 (IDT)
בקשר לפונקציות ezsurf,ezmesh
מה קובע את ציר הz הפונקציה שאנו מכניסים?
תודה
- את ציר ה- z קובעת הפונקציה שאתה מכניס. למעשה z=f(x,y). --Grisha 06:56, 30 באפריל 2012 (IDT)
בקשר לnargin
אני יודע שלדוגמא שnargin =2 אז למשתנה הקלט הימני ביותר רק נכנס משהו אבל איך אני בודק אם רק למשתנה לדוגמא באמצע רק נכנס משהו ולשאר לא? כדי לעשותם ברירת מחדל או שמה שאתם התכוונתם זה רק להניח שהסדר נשמר ויכול לא להופיע קלט אחרון, או שני האחרונים או כל שלושתם? ובכל אופן בהמשך לשאלה הזו בשימוש בvarargin אני יכול לשים אותו על כל המשתנים כלומר בתחילת המשתנים של הקלט ואיך אני שואל אם מחרוזת היא ריקה if a=?זה לא מתסדר לי
תודה
תרגיל 4 שאלה 2
האם חייבים ליצור את הסרט בעזרת הפקודה: movie2avi? האם מותר להסתפק פשוט ב-getframe?
- מה כתוב בשאלה? יש לעשות בהתאם להנחיות. --Grisha 17:36, 30 באפריל 2012 (IDT)
- "את הסרטון יש לבצע כפי שנלמד בהרצאה (getframe,movie2avi וכו')" - זה מחייב movie2avi?
תרגיל 5 שאלה 1
מה הכוונה ביש לוודא האם הבסיס אורתונורמלי? כלומר, מה לעשות אם הבסיס שמתקבל הוא לא אורתונורמלי? [למרות שזה לא אמור לקרות מבחינת האלגורתים]
- למעשה זה אומר שיש לוודא שתכנתתם נכון את האלגוריתם. אם וקטורים שקיבלתם אכן אורתוגונליים מכפלה סקלרית של כל זוג וקטורים אמורה לתת 0. כמו כן, יש לוודא שקיבלתם בסיס לאותו מרחב וקטורי שממנו התחלקתם. כלומר, שהוקטורים המקוריים והוקטורים האורתוגונליים פורסים את אותו המרחב. --Grisha 14:54, 2 במאי 2012 (IDT)
- אני הבנתי את זה, אבל לא איך אני אמור לבטא את זה מעשית. אני אמור לבדוק את העניין בכל ריצה? ואם כן לעשות את זה כתנאי ממש או מה? או שעבור איזה 100 הרצות לבדוק את זה בשביל עצמי? [לא שזה כזה ביג דיל, מכפילים שתי מטריצות וזהו פחות או יותר].
- לא בדיוק הבנתי את ההסבר שלך עם הרצות. אחרי שפונקציה שמצבעת תהליך גראם-שמידט סיימה לעבוד עליך לבדוק שני דברים:
- א). האם פלט של הפונקציה אכן וקטורים אורתוגונאליים.
- ב). האם וקטורים פורסים את אותו מרחב וקטורי כמו וקטורים שהיו קלט של הפונקציה.
- כל הבדיקות האלה יש לעשות לא תוך כדי הפונקציה אלא לאחר סיומה. --Grisha 19:41, 2 במאי 2012 (IDT)
תרגיל 5 שאלה 2
האם עלי להניח כי הנקודות של המצולע הקמות נתונות בסדר עם כיוון השעון?
כמובן שאפשר לקחת נקודה כלשהי בתוך המצולע [ובפרט נקודה כלשהי מהנקודות הנתונות] ואז לסדר את הנקודות לפי השיפוע של הקו המחבר את את הנקודה שבחרנו לנקודות שלנו (O(n logn. אבל קשה לי להאמין שזו הכוונה.
- אפשר להניח שנקודות ניתנו לפי סדר החיבור. הסדר יכול להיות גם לפי וגם נגד כיוון השעון. אשמח אם תסביר למה זה יכול להשפיע על התוצאה. --Grisha 23:47, 2 במאי 2012 (IDT)
כן, זה לא משנה אם זה עם כיוון השעון או נגד כיוון השעון. פשוט נראה לי מאוד נוח להשתמש באלגוריתם שכל פעם מסתכל על שלוש נק' סמוכות, מחשב את שטח המשולש, ומוריד את הנק' האמצעית (סה"כ (O(n). בשביל לעשות את זה שלוש הנק' צריכות להיות סמוכות.
בלי קשר, אני משער של matlab אני גם צריך לתת את הנק' עם\נגד כיוון השעון כדי שהוא יצייר לי באמת את מה שאני רוצה.
- הנקודות סמוכות. הכיוון אינו משנה. אלגוריתם שלך נראה לי מסובך יחסית. אפשר למצוא משהו פשוט יותר. --Grisha 12:58, 3 במאי 2012 (IDT)
אין יותר פשוט מזה - סתם לסכום n משולשים בשביל לקבל את השטח הכולל.
- אז כנראה לא הבנתי נכון את האלגוריתם שהצעת. --Grisha 23:39, 3 במאי 2012 (IDT)
מה השגיאה הזו אומרת?
??? Undefined function or method 'targil' for input arguments of type 'char'. היא כל הזמן מופיעה לי ואין לי מושג למה,כל פעם שאני פותח script ונותן לו שם
- לא בטוח, אבל נדמה לי שאתה מנסה להפעיל פונקציה שכתבת ומאטלב לא יודע איפה לחפש אותה. צריך לעבור לתיקיה איפה שנמצאת הפונקציה. --Grisha 23:44, 2 במאי 2012 (IDT)
אני עברתי על כל שמות הפונקציה שרשמתי ואין להם את השם הזה השגיאה קורה כאשר אני פותח script ומנסה להריץ אותו,בשביל להריץ MATLAB מבקש ממני שם לקובץ וכשאני נותן שם (לא חשוב איזה שם!) הוא רושם לי את השגיאה הזו ולא מריץ לי את הScript
- תשלח לי את הסקריפט לאימייל. --Grisha 08:57, 3 במאי 2012 (IDT)
אין לי את האימייל אבל אני אמצא אותו וחוץ מזה שאלה אחרת, איך עוצרים את MATLAB באמצע הרצה?
- תלחץ על החתימה שלי ותמצא. עוצרים על ידי Ctrl-C. --Grisha 12:41, 3 במאי 2012 (IDT)
תרגיל 5 שאלה 2
אפשר הסבר קצת על מה צריך לעשות?? אני לא מבין את סדר קליטת המשתנים ומה Scale x וscale y עושים, איך הקאורדינטות נראות? ערך x ובשורה מתחתיו ערך y ?
- יש לחשב שטח מצולע. לאחר מכך יש לסובב את המצולע בזווית ang ולמתוך/לכווץ אותה בהתאם לפרמטרים scale_x, scale_y (כאן x ו- y הם צירים של מערכת צירים קרטזית דו-מימדית).
- סדר קליטת הפרמטרים כמו שמתואר בשאלה: מטריצה, זוית, שני פרמטרים של מתיחה/כיווץ. האמת שהסדר אינו חשוב, אפשר לשנות את הסדר כפי שזה נוח לך - העיקר שהתוכנה תעבוד. --Grisha 12:55, 3 במאי 2012 (IDT)
מה הכוונה בלמתוח/לכווץ???? ובמטריצה השורה הראשונה הם ערכי x והשורה השנייה הם ערכי Y? והאם אפשר להשתמש בפונקציה polyarea?
- אם אני לוקח קפיץ ומותח אותו משני הצדדים אז הוא מתארך. אם להיפך, אני לוחת עליו משני צדדים אז הוא מתכווץ. בדיוק לזה אנו מתכוונים בשאלה.
- אפשר להחחיט לבד איזו שורה זה x ואיזו y. אנחנו לא הגדרנו ולכן זאת החלטה שלכם.
- לא, אסור להשתמש ב- polyarea. כתוב בשאלה - "יש להסביר את החישוב של השטח". הכוונה - יש למצוא פתרון מתמטי לחישוב השטח ולהעביר אותו ל- Matlab ולא להשתמש בקופסה שחורה שעושה את העבודה במקומכם. --Grisha 18:44, 3 במאי 2012 (IDT)
תרגיל 5 שאלה 3
הכוונה לשרטט לכל ערך עצמי גרף של הגודל שלו ביחס לn או משהו אחר? וחוץ מזה,הריצה של n היא מ2 עד 200 נכון?(אין משמעות למטריצה מגודל 0)
מה זה סיבוכיות?
?????????
- סיבוכיות הזמן של בעיה נתונה היא מספר הצעדים הנדרשים לפתרון שלה כפונקציה של גודל הקלט.
- כך לדוגמא, סיבוכיות של merge sort הוא [math]\displaystyle{ O(n \cdot log(n)) }[/math], כאשר n הוא גודל של וקטור הלא ממוין. --Grisha 12:46, 3 במאי 2012 (IDT)
אלגוריתמים רקורסיביים
בMatlab יש הגבלה, שהיא די חכמה לטעמי, של מספר איטרציות של פונקציה רקורסיבית.
נניח שאני מחשב את השטח של המצולע באופן רקורסיבי (בשאלה 2), אפשר להתעלם ממנה?
- קודם כל אפשר לקבוע את עומק הרקורסיה ידנית: set(0, 'RecursionLimit', 1000).
- מצד שני, כל תוכנה רקורסיבית ניתנת לכתיבה כתוכנה לא רקורסיבית. רקורסיה ב- Matlab זה דבר שגורם ל"בזבוז" רציני של זכרון וזמן הרצה (תחשוב כמה workspaces אתה צריך לשמור בזכרון).
- ודבר שלישי ואחרון, אין צורך ברקורסיה כדי לחשב את שטח המצולע הקמור. זה לא אמור לקחת יותר מ- O(n) צעדים ו- 0 זכרון נוסף. --Grisha 19:26, 3 במאי 2012 (IDT)
תרגיל 5 שאלה 1
בקשר לתהליך גרם-שמידט מוסבר שצריך לחשב את הווקטור ei ,vi>ei> (הווקטור שמתקבל מהכפלת ei בסקלר שהוא המכפלה הפנימית שלו ושל vi) לא הבנתי את הפעולה המתמטית שעשו כאן האם הכוונה לכפל וקטורי אבל אז הוא לא מוגדר?
- לא הבנתי לגבי מכפלה וקטורית. יש כאן מכפלה פנימית של שני וקטורים כפול וקטור נוסף. --Grisha 13:44, 4 במאי 2012 (IDT)
- מדובר על הפעולה שהיא הסכום כש-i רץ על האינדקסים של הוקטור של v(i)*e(i).
- כלומר לדוגמא אם i=2 אז: v(1)*e(1)+v(2)*e(2).
- i זה אינדקס של איבר בתוך הוקטור ולא המספר של הוקטור בבסיס.
- לא הבנתי. מה שאתה כותב זאת לא הגדרה של מכפלה פנימית. --Grisha 14:19, 4 במאי 2012 (IDT)
מטלב בלתי נסבל
בתרגיל 1, [math]\displaystyle{ dot(N(:,2),N(:,2)) }[/math]
[math]\displaystyle{
dot(N(:,2),N(:,2)) \not=1 }[/math]
השורה הראשונה יוצאת 1.000, אבל השורה השנייה היא 1!
למה? איך להימנע מזה?
- לא הבנתי ממה אתה רוצה להימנע ומה בדיוק הבעיה. תשלח לי את הקוד או תיאור יותר מפורט של המצב ואשתדל לעזור. --Grisha 16:57, 4 במאי 2012 (IDT)
תרגיל 5 שאלה 2
האם מותר להשתמש בפונקציה פנימית של מטלאב על מנת לחשב את שטח המצולע או שצריך לכתוב בעצמנו אלגוריתם שמחשב את שטח המצולע?
- על השאלה הזאת עניתי לעיל. אסור להשתמש בפקודה פנימית של מטלב. יש לחשב לבד ויש להסביר את החישוב שנעשה. --Grisha 08:14, 6 במאי 2012 (IDT)
תרגיל 5 שאלה 3
לא הבנתי בכלל את התרגיל ואיך אני אמור בכלל לגשת לזה אשמח לעזרה תודה
תרגיל 5 שאלה 3
רק שאני אבין, המטריצה בשאלה היא מטריצה המורכבת משני מטריצות בלוקים 3*3, וכל השאר אפסים? ואני צריך להוציא גרף בהתאם למטריצה הנתונה ? או שאני אמור לשנות את האיבר האחרון במטריצה ל 1- ועליו לשרטט גרף? תודה
- מטריצה בשאלה היא מטריצה תלת אלכסונית. איברי האלכסון הראשי שווים ל 2-; איברי שני אלכסונים אחרים שווים ל- 1. יש למצוא ולשרטט את ההתנהגות של 3 ע"ע גדולים ביותר כתלות בגודל המטריצה. לאחר מכך, יש לשנות את האיבר הארון של המטריצה ב- 1 ולבדוק את ההתנהגות של 3 ע"ע גדולים ביותר. --Grisha 08:29, 6 במאי 2012 (IDT)
scale x ו scale y
אפשר הסבר יותר מפורט מה זה? לא הבנתי את התשובה שניתנה פה. מה אני אמור לעשות בערכים אלו, וכיצד זה אמור להתבטא בגרף שאני מוציא?
- הסבר יותר מפורט אפשר לקבל מהדוגמא שניתנה בתרגיל עצמו. אם תסתכל על רוחב וגובה של המשולש השני, בעיקר אני מדבר על המספרים שיש על השרטוט, תבין מה הכוונה בלמתוך ולכווץ. עוד דוגמא אחת - נניח היה ריבוע עם צלע בגודל 2, כמו כן נניח כי הסיבוב היה 0, scale_x = 2 ו- scale_y = 0.5. נקבל בסוף מלבן בגובה 1 וברוחב 4. --Grisha 08:32, 6 במאי 2012 (IDT)
שאלה 3
בשאלה 3, לא הבנתי.. הצלחתי לקבל מין מטריצה מגודל 3xn ככה שבכל עמודה יש את הע"ע המקסימליים של כל מטריצה (בהתאם ל-n). עכשיו, איך אני אמור לצייר את הגרף? הרי זה 3 פרמטרים.. ב-plot3?
- צריך לצייר כל ערך עמצי בנפרד. plot3 לא מתאים. --Grisha 12:09, 6 במאי 2012 (IDT)
אם כך, במה צריך להשתמש? האם צריך להוציא 3 גרפים נפרדים (אחד לכל ערך עצמי)?
הסבר על שלוש פעולות
לא כל כך הבנתי במצגת מה עושות הפונקציות
diag(A,k tril(X,k
תודה
- diag(A,k) - בונה מטריצה אלכסונית, כאשר k הוא מספר האלכסון ביחס לאלכסון הראשי.
- tril(A,k) - בונה מטריצה משולשת תחתונה, כאשר "חלק תחתון" מוגדר ע"י k ביחס לאלכסון הראשי.
- אני ממליץ לכתוב מספר פקודות עם מטריצות שונות עבור ערכי k שונים ומכך ללמוד מה עושות הפונקציות. --Grisha 17:37, 6 במאי 2012 (IDT)
תרגיל 5 שאלה 2
האם אורך ווקטור=אורך צלע?
והאם ניתן להשתמש בנוסחאות טריגו למציאת שטח?
תודה
- לא בטוח שנוסחאות טריגו יעזרו כאן, אבל אם אתה רואה איך להשתמש בהן, אז בברכה. על איזה וקטור אתה מדבר? --Grisha 17:44, 6 במאי 2012 (IDT)
באופן כללי על ווקטור לעשות לו נורמל כלומר אורך במישור האוקלידי זה כמו לעשות אורך צלע?
- איך וקטור מתאר צלע? צלע הוא קו ישר שמחבר בין שתי נקודות. אם הנקודות במישור, אז יש לכל אחת שתי קואורדינאטות - [math]\displaystyle{ (x_1,y_1),\ (x_2,y_2) }[/math] ואז אורך הצלע יהיה [math]\displaystyle{ \sqrt{(x_2-x_1)^2+(y_2-y_1)^2} }[/math]. נורמה 2 של וקטור באורך n היא [math]\displaystyle{ \sqrt {\sum\limits_{i = 1}^n {x_i^2} } }[/math]. --Grisha 19:37, 6 במאי 2012 (IDT)
תרגיל 5 שאלה 2
בקשר להיות הצורה קמורה? אני נשען על זה שהקלט יוצר צורה קמורה ? כלומר לא צריך לבדוק את זה, אני יוצא בהנחה שכן?
תודה
- כפי שזה כתוב בשאלה - לא צריך לבדוק שהקלט נכון. --Grisha 19:40, 6 במאי 2012 (IDT)
איך מציירים את המצולע בשאלה 2
מצאתי את הפונקציה pdepoly היא יכולה לעזור לי ? האם צריך להשתמש בה
- לא, תשתמש ב- fill. --Grisha 20:29, 6 במאי 2012 (IDT)
תודה רבה, דבר אחרון: אני לא רוצה לטחון את הצבע של המדפסת, אז אפשר להשתמש בצבע לבן (ללא רקע), במקום הכחול שיש בדוגמא בתרגיל?
- זאת רק דוגמא. אתה לא חייב להשתמש באותם הצבעים. העיקר שיהיה ברור מה קיבלת. --Grisha 23:36, 6 במאי 2012 (IDT)
איך משתמשים ב scalex ו scaley
יש איזה פונקציה שאני צריך להשתמש בה או שזה נטו חישובים? בהנחה והצלחתי לסובב את המצולע, מה עלי לעשות כעת?
- יש מטריצה שלמדנו עליה של סיבוב במישור. כמו כן אתה בטוח יכול לעשות מטריצה שתעשה לך את ה scaling הדרוש.
מה צריך להשתמש במטריצה שתעשה scalex ו scaley ?? אני פשוט הכפלתי (לאחר הסיבוב) את כל אחד מערכי X וערכי Y ב SCALE המתאים..
- אפשר לכתוב גם את הפעולה הזאת ככפל מטריצות. מטריצות מעבר בגרפיקה 2D --Grisha 23:41, 6 במאי 2012 (IDT)
בשאלה 1 האם המטריצה שמקבלים
היא ריבועית?
איך מוצאים סיבוכיות?
בשאלה יש לי שתי לולאות אחת בתוך השנייה, אבל לא שתיהם מתחילות מ 1 עד N , אלא הלולאה הפנימית תלוייה באינדקס של החיצונית.. אז אפשר להגיד פשוט שזה O(n^2) ?? כי בפועל נראה לי שזה לוקח פחות ? מה הדרך לחשב
- מן הסתם אתה עושה 1+2+...+n ריצות כאלו בתוך הלולאות. הסכום של כל אלו הוא n*(n+1)/2 שזה (O(n^2 עד כדי קבועים (הכוונה היא שזו בדיוק הסיבוכיות, ולא חסם מלמעלה כמו ש big O בד"כ מסמן). כמובן שים לב שבכל אחת מ n^2 הפעולות אתה לא באמת עושה עבודה רק של (O(1. אשאיר לך לחשוב על זה.
בשאלה 3
מה זה ה n^2 שכופל את המטריצה בהתחלה? זה כאילו מספר שהוא הסדר של המטריצה ואני אמור להעלות אותו בריבוע ולהכפיל במטריצה כל פעם שאני מציב n אחר (בין 6 ל 200 )?
- בשאלה כתוב שמטריצה בגודל [math]\displaystyle{ (n-1)\times (n-1) }[/math]. המטריצה מוכפלת ב- [math]\displaystyle{ n^2 }[/math]. --Grisha 16:59, 7 במאי 2012 (IDT)
למה הכוונה גרף של שלושת הערכים העצמיים
הגדולים ביותר? זה גרף אחד או כמה גרפים נפרדים? נניח וכתבתי את המטריצה התלת אלכסונית הנתונה בשאלה (התחלתי מ 6*6), והוצאתי את הערכים העצמיים שלה, אני צריך למצוא את שלושת הערכים הכי גדולים במטריצת הערכים העצמיים שקיבלתי?, אבל אז איך לשרטט מהם גרף? (כלומר איך שלושת הערכים העצמיים בגרף אחד כפונקציה של n ?)
- אתה צריך למצוא שלושה ערכים עצמיים הכי גדולים ולשרטט את גרפים עבור כל אחת מהם כפונקציה של n. אפשר לשרטט על מערכת צירים אחד. --Grisha 17:00, 7 במאי 2012 (IDT)
שאלה 5 תרגיל 1
הקבוצה שלי רק התחילה לינארית 2 ולכן אני לא בקיא בסימונים אם אפשר קצת הסבר על הדברים הבאים מה זה אומר מכפלה <v,u> מה זה אומר ווקטור v שמעליו יש תילדה כזו מה זה אומר ווקטור v שמעליו יש עיגול קטן?
ומה זה אומר v חלקי ||v|| מה זה מכפלה פנימית?
תודה
- מכפלה פנימית במקרה שלנו היא מכפלה סקלרית.
- לא הבנתי לגבי תילדות ועיגולים.
- את ההסבר לא רע אפשר למצוא ב- Gram–Schmidt process קישור הזה וגם בכל ספר שמדבר של אלגברה ליניארית. --Grisha 17:20, 7 במאי 2012 (IDT)
איך לחשב את הסיבוכיות בשאלה 1?
אני אמור לשלוח לפונקציה שלי מטריצות בגדלים שונים? איך אני אמור ליצור הרבה מטריצות בגדלים שונים, שהעמודות בהם הם בסיסים ל R^nים שונים?
- קודם כל הם לא חייבים להיות בסיס ל- [math]\displaystyle{ \R^n }[/math], זה יכול להיות גם בסיס לתת-מרחב של [math]\displaystyle{ \R^n }[/math]. חוץ מזה אפשר לחשוב ולהמציא צורות שונות של מטריצות עם שורות בת"ל. בנוסף לזה, אפשר להשתמש במטריצות עם איברים אקראיים, רק לבדוק שאכן שורות בת"ל (רוב הסיכויים שכן, כיוון שהאיברים אקראים). --Grisha 18:33, 7 במאי 2012 (IDT)
שאלה לא קשורה ישירות לתרגיל
האם יש במטלאב קיצורים כמו שיש ב C ? נגיד ב C אני כותב ++a, וזה מקדם לי אותו ב-1. או למשל a+= 5 מקדם אותו ב 5. או למשל השמה מרובה של משתנים : a=b=c . כל אלו לא עובדים לי. האם יש קיצורים כאלו במטלאב?
- הם לא עובדים כי לא קיימים. --Grisha 20:44, 7 במאי 2012 (IDT)
איך עוצרים את הטיימר
אני כותב tic והזמן רץ.. toc מראה לי מצב נוכחי של הזמן. אבל איך אפשר לגרום לזמן להפסיק לרוץ? כלומר שלא ירוץ יותר שעון ברקע, כאילו רק הפעלתי את התוכנה..
- אם אתה צריך עוד פעם להפעיל שעון אתה עוד פעם עושה tic. --Grisha 20:43, 7 במאי 2012 (IDT)
כן אני יודע, שמתי לב -tic מאפס את הזמן שוב. אבל אין דרך לעצור לגמרי את הזמן, שלא יהיה בכלל שעון רץ? כמו שבהדלקת התוכנה למשל אם אני רושם toc על ההתחלה אז הוא אומר שלא עשיתי tic קודם..
- בגרסאות ישנות של Matlab זה היה אפשרי (עד גרסה 2006b או משהו כזה). עכשיו אני לא מכיר איך עושים את זה ולא בטוח שזה אפשרי. אתה מוזמן לקרוא הקישור. נכון לעכשיו אפשר לנהל מספר שעונים בו זמנים, כמו כן יש שעון פנימי שרץ מאתחול של מטלב וגם כזה שרץ מאתחול אחרון של מערכת ההפעלה. למה אתה צריך את זה? האם יש מקור לשאלה חוץ מסקרנות? --Grisha 22:19, 7 במאי 2012 (IDT)
רק סקרנות.. פשוט סתם אני חושב שזה מבזבז משאבים שיש משתנה שכל שנייה מתנפח
- יפה! לא, זה לא עובד בצורה כזאת. לא מתקיים עדכון משתנים כל הזמן ברקע. --Grisha 23:45, 7 במאי 2012 (IDT)
סיבוכיות
אם יש לי את הגרף של הזמן שלקח הגרם-שמידט, כפונקציה של גודל המטריצה, אני יכול לחשב ממנו סיבוכיות?
או שאני צריך לחשב לבד על הדף עם סיגמות? אם כן, אז האם בלולאה הפנימית זה נחשב כאילו אני עושה פעולה שהיא O(1) ? כי אני משתמש בפנים בפונקציה norm , איך אני צריך להתייחס אליה ? (כלומר מה הסיבוכיות שלה שאני צריך לקחת בחשבון)
עוד דבר, האם הגיוני שבסיבוכיות יצא לי משהו עם log ?
- כיוון שלא אתה זה כותב את הפקודות המובנות של matlab אתה לא יודע מהו סיבוכיות שלהן. אפשר רק להניח. אתה יכול לנסות להבין את זה מהגרף של זמן ריצה כפונקציה של n. במקביל אתה יכול להעריך את הזמן ע"י חישוב אנליטי ולהשוות את התוצאות.
- לגבי log קשה לי להגיד, זה תלוי איך כתבת את הפונקציה. בעקרון סיבוכיות עם log מופיע הרבה בבעיות של "הפרד ומשול", כאשר הביה המקורית מתחלקת למספר בעיות קטנות יותר שפותרים אותם וכך מקבלים פתרון של הבעיה המקורית - הקישור --Grisha 22:24, 7 במאי 2012 (IDT)
איך אפשר להבין את זה מהגרף? אני הגרלתי מטריצות עם rand (כמו שאמרת) עד גודל 100 ולפי זה חישבתי את הזמנים. יצא לי מעין חצי פרבולה כזאת.. אם כי עם הרבה "שפיצים".. כתבתי את הקוד עם שתי לולאות שתלויות אחת בשנייה.. אני יוודע לחשב את הסיבוכיות (עם סיגמות), רק לפונקציה norm אני לא בדיוק יודע איך להתייחס שאני מחשב. זה הדבר היחיד שמפריע לי..
- תבוא לשעות קבלה או תשאל מי שראה את זה בהרצאה. --Grisha 23:46, 7 במאי 2012 (IDT)