מנוע הפרשים

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
חלק ממנוע הפרשים מספר 1 של צ'ארלס בבג', שהורכב לאחר מותו, על ידי בנו תוך שימוש ברכיבים שנמצאו במעבדתו
סקסטנט המשמש לניווט, בדרך כלל ימי. הסקסטנט משמש למדידת גובהו של גרם שמים מעל האופק. כדי לחשב את המיקום בעזרת תוצאות המדידות, יש לבצע חישובים, עבורם נדרשים לוחות לוגריתמים, אנטי-לוגריתמים, ולוחות טריגונומטריים
מנוע הפרשים מספר 3 של הממציא והיזם השוודי פר גאורג שוץ
עותק של מכונת הפרשים מספר 2 של בבג', במוזיאון המדע בלונדון. בצד שמאל המדפסת, ובצד ימין הארכובה המפעילה את המנוע

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

רקע[עריכת קוד מקור | עריכה]

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

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

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

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

מנוע ההפרשים מנצל תכונה מעניינת של פולינומים: אם ידוע ערכו של פולינום ממעלה N בנקודה X, אפשר לחשב את ערך הפולינום בנקודה X+1 בעזרת חישוב פולינום שני, ממעלה N-1, וחיבור התוצאה לערך הקודם. על ידי חזרה על הפעולה (כלומר חישוב הפולינום השני בעזרת פולינום שלישי, ממעלה N-2, וכן הלאה), ניתן למעשה, לחשב את ערך הפולינום בעוד ועוד נקודות, בעזרת חזרה על סדרת פעולות חיבור וחיסור בלבד, תוך שמירת תוצאות הביניים של כל פעולה, כך שישמשו בפעולות הבאות. הנושא מוסבר חלקית בהפרש חזקות, וביתר פירוט בסעיפים הבאים. במילים אחרות, על ידי חישוב מספר "תנאי התחלה" והזנתם למנוע ההפרשים, המנוע מחשב את ערך הפולינום בעוד ועוד נקודות, בעזרת פעולת חיבור בלבד. מתקנים מכניים שיכולים לבצע חיבור ידועים מראשית המאה ה-17, ואולי קודם לכן, ומכונות חישוב שמבצעות חיבור באופן מכני בצורה אמינה היו קיימות מאז ה"פסקלין" של בלייז פסקל.

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

שגיאת חישוב

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

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

היסטוריה[עריכת קוד מקור | עריכה]

בבג' - מנוע הפרשים מספר 1 ו-2[עריכת קוד מקור | עריכה]

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

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

הממשלה הסכימה לממן את הפרויקט, ללא לוחות זמנים מחייבים, בתקציב גבוה, של כ-20,000 לירות שטרלינג. בבג' שכר את אחד המכונאים הנחשבים ביותר, אדם בשם ג'וזף קלמנט, לביצוע הפרויקט. קלמנט ייצר חלק מהמכונה כאבטיפוס, אותו נהג בבג' להציג, אבל הבנייה עצמה ארכה, וב-1931 חילוקי דעות בין בבג' וקלמנט הביאו למעשה לסיום הפרויקט. המכונה כולה, לו נבנתה, הייתה אמורה להכיל מעל 25,000 חלקים, ולשקול מעל 13 טון.

תוך כדי ביצוע הפרויקט, בבג' המשיך לשכלל את רעיונותיו ולהמציא חדשים, ואחרי שהפרויקט הסתיים בלי תוצאה ממשית, בין 1847 ל-1855 בבג' תכנן ושרטט גרסה חדשה - "מנוע הפרשים מספר 2", מכונה שבזכות שכלולים שונים נזקקה לפחות חלקים, והייתה קטנה ופשוטה יותר לייצור, אם כי עדיין שקלה מספר טונות. בשלב זה הממשלה הבריטית סירבה לממן פרויקט נוסף, ומנוע ההפרשים מספר 2 נותר על הנייר, עד שנת 1989: מוזאון המדע בלונדון, כהכנה לציון 200 שנים להולדת בבג' ב-1991, החליט לנסות לבנות את מנוע הפרשים מספר 2, תוך שימוש בחומרים ובאפיצויות שהיו זמינות ב-1850. הפרויקט הסתיים בהצלחה ב-1991, אם כי ללא המדפסת. בשנת 2000 הסתיימה בניית המדפסת, ומנוע ההפרשים מוצג ומודגם במוזאון (דגם שני נבנה עבור אספן פרטי, שבתמורה מימן את בניית המדפסת).

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

פר גאורג שוץ ומרטין ויברג[עריכת קוד מקור | עריכה]

היזם והממציא השוודי, פר גאורג שוץ, בהשראת עבודתו של בבג', תכנן ובנה סדרת מנועי הפרשים. המנוע הראשון נבנה בין 1837 ל-1843 בעזרת בנו, אדוורד שוץ. מנוע נוסף נבנה ב-1853, והוצג בתערוכה העולמית של פריז ב-1855. שוץ המשיך לשכלל וליצור דגמים נוספים. אחד מהם, שנבנה ב-1859, נמכר שנה מאוחר יותר לממשלת בריטניה. לעומת מנוע ההפרשים של בבג', שהיה בגודל של קטר קטן, מכונתו של שוץ תוארה כ"בגודל דומה לפסנתר".


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

אופן פעולה[עריכת קוד מקור | עריכה]

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

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

תזמון[עריכת קוד מקור | עריכה]

שיטת ההפרשים[עריכת קוד מקור | עריכה]

p(0)=2.0
2.0−1.72=0.28
p(0.1)=1.72 0.28−0.24=0.04
1.72−1.48=0.24
p(0.2)=1.48 0.24−0.20=0.04
1.48−1.28=0.20
p(0.3)=1.28 0.20−0.16=0.04
1.28−1.12=0.16
p(0.4)=1.12

ערכי התחלה[עריכת קוד מקור | עריכה]

שימוש בנגזרות[עריכת קוד מקור | עריכה]

לקריאה נוספת[עריכת קוד מקור | עריכה]

  • Swade, Doron (2002). The Difference Engine: Charles Babbage and the Quest to Build the First Computer. Penguin (reprint). ISBN 0-14-200144-9. 

קישורים חיצוניים[עריכת קוד מקור | עריכה]

ויקישיתוף מדיה וקבצים בנושא מנוע הפרשים בוויקישיתוף