ebooksgratis.com

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
MATLAB – ויקיפדיה

MATLAB

מתוך ויקיפדיה, האנציקלופדיה החופשית

MATLAB

MATLAB R2008a מורצת על אובונטו לינוקס 7.10 לחקירת נתונים ולבדיקתם בעזרת אלגוריתם Support Vector Machine ובאמצעות קריאה לתוכנת C הנקראת SVM Light.
מפתח The MathWorks
גרסה אחרונה R2008a ב-1 במרץ 2008
מערכת הפעלה רבות
רישיון EULA
קטגוריה תוכנת חישוב
דף בית MATLAB product page


MATLAB היא תוכנה מתמטית המכילה שפת תכנות ומיוצרת על ידי Mathworks. התוכנה מאפשרת טיפול קל ונוח במטריצות, שימוש בפונקציות ובנתונים, יישום אלגוריתמים על נתונים, יצירת ממשקי משתמש, ויצירת קשר עם תוכנות הכתובות בשפות אחרות. אף על פי שתוכנה זו מבצעת חישובים נומריים, הרי שימוש בחבילת Maple מאפשרת שימוש במתמטיקה סימבולית.

בשנת 2004, השתמשו בתוכנה לפי Mathworks יותר ממיליון אנשים בתעשייה ובאקדמיה. [1]

תוכן עניינים

[עריכה] היסטוריה

השם MATLAB הוא ראשי תיבות של המילים חבילת מטריצות - "matrix laboratory" באנגלית. MATLAB נכתב בסוף שנות ה-70 על ידי קליב מולר, אז ראש המחלקה למדעי המחשב באוניברסיטת ניו מכסיקו. מטרת התוכנית הייתה מתן גישה לספריות המתמטיות LINPACK ו־EISPACK ללא צורך ללמוד Fortran. התוכנה נפוצה במהירות בקרב האוניברסיטאות ובקרב קהילת חוקרי המתמטיקה השימושית. ג'ק ליטל, מהנדס, גילה את התוכנה כאשר ביקר את מולר באוניברסיטת סטנפורד במהלך 1983. ג'ק הכיר בפוטנציאל המסחרי, והוא צירף את מולר וסטיב באנגרט. הם כתבו מחדש את התוכנה בשפת C (ספריות משוכתבות אלו ידועות כ־JACKPAC) וייסדו את Mathworks ב־1984 על מנת להמשיך את הפיתוח שלה.

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

[עריכה] יכולות

[עריכה] מתמטיקה וחישוביות

MATLAB מכילה בהתקנה הבסיסית כמה מאות פונקציות המכסות חלקים גדולים של המתמטיקה החישובית, בין השאר, התוכנה יודעת לטפל ב:

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

MATLAB מכילה מספר יכולות עבור פיתוח אלגוריתמים כולל יכולות של פיתוח מונחה עצמים. כמו כן התוכנה כוללת סביבת פיתוח משולבת המכילה כלי ניפוי שגיאות וחקר ביצועים. בנוסף התוכנה יכולה לתקשר עם אמצעים אלקטרוניים ממוחשבים.

[עריכה] הצגת נתונים

התוכנה מגיעה עם יכולות גרפיות הכוללות תצוגה בשלושה ממדים (ראו גרפיקה בהמשך), ניתוח נתונים ויזואלי ויצירת קליפים.

סביבת הפיתוח המשולבת מאפשרת יצירה של ממשקי משתמש עם פקדים שונים (לדוגמה כפתורים, שדות נתונים להזנה). באמצעות שימוש במהדר ניתן ליצור באמצעות ממשקים אלו תוכנה נפרדת היכולה לרוץ ודורשת רק את ספריית זמן הריצה של MATLAB.

[עריכה] ממשקים

התוכנה כוללת מספר ממשקי תכנות יישומים עבור גישה לספריות הנכתבות בשפות תכנות אחרות (באמצעות קובצי MEX או DDL) ללקוחות COM וממשקי Web כמו גם אביזרים היקפיים המתקשרים ישירות עם התוכנה באמצעות הממשק הטורי.

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

ב־MATLAB ניתן ליצור חבילה מיוחדת המרחיבה את הפונקציונליות של התוכנה. קבוצות של כלים כאלו נכתבו ב־MATLAB עבור פתירת סוגים מסוימים של בעיות כאשר חברת MathWorks מספקת מספר חבילות כאלו ואלפי אחרות פותחו על ידי חברות אחרות.

[עריכה] תחביר

התוכנה בנויה סביב שפת MATLAB, המכונה לפעמים גם קוד M. הדרך הפשוטה ביותר להשתמש בשפה היא להקישה ליד הסמן >> , בחלון הפקודה, שהוא חלק מסביבת העבודה של התוכנה ולהשתמש בתוכנה כמעטפת מתמטית. רצף של פקודות ניתן לרישום בקובץ טקסט, לרוב על ידי העורך הפנימי, כסקריפט או כפונקציה. ניתן גם להשיג הרחבות לשפה ואף להשתמש בה כשפה מונחה עצמים.

[עריכה] משתנים

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

>> x = 17
x =
 17
>> x = 'hat'
x =
hat
>> x = [3*4, pi/2]
x =
   12.0000    1.5708
>> y = 3*sin(x)
y =
   -1.6097    3.0000


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

פירוש שמה של MATLAB הוא כאמור "חבילת מטריצות", וכזאת היא מספקת הרבה דרכים ליצירת מטריצה בעלת ממדים שונים. ב־MATLAB פירוש המונח וקטור הוא מערך חד ממדי (1xN או Nx1) המקוצר לרוב למערך כשמתייחסים לשפות תכנות אחרות. כאשר מתייחסים למטריצה הכוונה היא לרוב למערכים רב ממדיים, כדוגמת, NxM , NxMxL , וכדומה. כאשר N ,M ו־L הינם גדולים מ־1. בשפות אחרות, מתייחסים למטריצה כזאת כמערך של מערכים, או מערך של מערכים של מערכים, או פשוט כמערך רב ממדי.

MATLAB מספקת דרך פשוטה להגדרת מערכים באמצעות שימוש בתחביר התחביר: סיום:מרווח:התחלה. לדוגמה:

>> array = 1:2:9
array =
 1 3 5 7 9

מגדיר משתנה array (או קובע ערך חדש למשתנה array הקיים) שהוא מערך עם הערכים 1, 3, 5, 7, ו־9. המערך מתחיל ב־1, ערך ההתחלה, כל אחד מהערכים נמצא בהפרש קבוע מהקודם של 2 (ערך המרווח), והערכים במערך מגיעים אך לא עוברים את 9 (9 שהוא ערך הסיום). דוגמה אחרת היא:

>> array = 1:3:9
array =
 1 4 7

אם ערך המרווח (יחד עם סימן נקודתיים אחד) מושמט מהתחביר אזי ברירת המחדל היא 1, למשל:

>> ari = 1:5
ari =
 1 2 3 4 5

מכניס למשתנה ari מערך עם הערכים 1, 2, 3, 4, ו־5, תוך שימוש במרווח 1 שהוא ברירת המחדל.

האינדקסים של המערכים מתחילים ב־1, דבר המקובל יותר במתמטיקה מאשר בתכנות בו יותר מקובל להתחיל ב־0 (הגם שיש שפות תכנות לא מעטות המתחילות גם הן את האינדקסים ב־1).

מטריצה יכולות להיות מוגדרות על ידי הפרדת הערכים בתוך השורות עם רווח לבן או פסיק ושימוש בנקודה פסיק בסיום כל שורה. הרשימה של רכיבי המטריצה צריך להיות מוקפת על ידי סוגרים מרבעים []. רכיבים ותת מערכים ניתנים לגישה באמצעות סוגריים עגולים - (), למשל:

>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
A =
 16  3  2 13
  5 10 11  8
  9  6  7 12
  4 15 14  1
 
>> A(2,3)
ans =
 11
 
>> A(2:4,3:4)
ans =
 11 8
 7 12
 14 1

ריבוע מטריצת היחידה בגודל n יכול להיווצר באמצעות שימוש בפונקציה eye, ומטריצה של בכל גודל של אפסים או אחדים יכול להיווצר עם הפונקציות zeros ו־ones, בהתאמה. לדוגמה:

>> eye(3)
ans =
 1 0 0
 0 1 0
 0 0 1
>> zeros(2,3)
ans =
 0 0 0
 0 0 0
>> ones(2,3)
ans =
 1 1 1
 1 1 1

רוב פונקציות MATLAB יכולות לקבל מטריצה ולהפעיל את עצמן על כל רכיב. למשל, mod(2*J,n) תכפיל כל ערך ב־J ב־2, ואז תבצע מודולו n עליו. MATLAB כוללת אמנם לולאות for ו־while, אבל שימוש ביכולת הווקטוריזציה של MATLAB יוצרת בדרך כלל קוד שהוא קריא יותר ומהיר יותר. למשל הקטע הבא לקוח מהקובץ magic.m המכיל פונקציה magic היוצרת ריבוע קסם עבור ערכים אי זוגיים של n:

[J,I] = meshgrid(1:n);
A = mod(I+J-(n+3)/2,n);
B = mod(I+2*J-2,n);
M = n*A + B + 1;


[עריכה] נקודה פסיק

בשפות תכנות רבות אחרות, סימן הנקודה פסיק נדרש על מנת לסיים משפטים. ב־MATLAB סימן זה איננו חובה. אם משפט איננו מסתיים עם סימן זה, אז תוצאתו תוצג. אם משפט זה לא מחזיר במפורש תוצאה, למשל 'clc', אזי לסימן אין השפעה.

[עריכה] גרפיקה

הפונקציה plot משמשת ליצירת גרף משני וקטורים x ו־y. הקוד:

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

יוצר את הגרף הבא של פונקציית הסינוס:

גרפיקה תלת ממדית יכול להיווצר על ידי שימוש בפונקציות surf, plot3 או mesh, למשל הקוד:

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2)+eps;
Z = sin(R)./R;
surf(X,Y,Z)

יוצר תצוגה תלת ממדית של הפעלת הפונקציה sinc על הרדיוס:

[עריכה] מגבלות

ב־MATLAB אין מערכת מרחבי שם, כמו זו הנמצאת בשפות מודרניות כ־Java ו־Python, כך שניתן לנקוב בשמן המלא (למשל java.lang.system.out.println) . ב־MATLAB, כל הפונקציות הן מטווח השמות הגלובלי, וסדר הקדימות של פונקציות עם אותו שם נקבעות על פי סדר הגדרתן ועל פי כללים שונים[2]. כתוצאה מכך, שני משתמשים יכולים לקבל תוצאות שונות עבור אותו קוד אם נתיב החיפוש הוא שונה.

הרבה פונקציות הן בעלת התנהגות שונה עם מטריצה ווקטור ומאחר שוקטורים הינם מטריצה של שורה או עמוד, עובדה זאת יכולה לגרום לתוצאות בלתי צפויות. לדוגמה, הפונקציה sum(A)‎ כאשר A היא מטריצה נותן וקטור שורה המכיל את הסכום של כל עמודה ב־A, לעומת זאת sum(v)‎ כאשר v הוא וקטור עמודה או שורה מחזירה את הסכום של רכיביו; משום כך המתכנת צריך להיזהר אם המטריצה יכולה להתנוון מערך חד ממדי. בזמן ש־sum והרבה פונקציות דומות יכולות לקבל ארגומנט הקובע את הכיוון, אחרות, כמו plot לא יכולות, ונדרשות בדיקות נוספות.

אף על פי שטיפוסים אחרים זמינים, ברירת המחדל היא מטריצה של נקודה צפה בדיוק כפול. טיפוס מערך זה לא כולל דרך להצמיד תכונות כגון יחידות או קצב דגימה. אף על פי שסימן זמן הוסף ב־R14SP3 עם אובייקט time series, קצב דגימה עדיין לא נתמך ומאפיינים כאלו חייבים להיות מנוהלים דרך מבנים או פונקציות שירות.

[עריכה] הערות שוליים

  1. ^ Richard Goering, "Matlab edges closer to electronic design automation world," EE Times, 10/04/2004
  2. ^ MATLAB Path - Precedence Rules


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -