מהן פונקציות? (גרסה מכוונת-חדו"א)

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

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

פונקציות נוהגים לסמן באותיות מכל הסוגים והמינים, בהתאם להקשר שלהן, אבל האות הנפוצה ביותר לתיאור פונקציה היא \( f \), ככל הנראה מהמילה Function. לכתוב \( f\left(x\right)=y \) פירושו לומר “הערך שמתקבל כאשר מפעילים את הפונקציה \( f \) על הקלט \( x \) הוא הפלט \( y \)” אם כותבים משהו בסגנון \( f\left(x\right)=x^{2} \), אומרים בזה “הפונקציה \( f \), כשמפעילים אותה על קלט \( x \), מחזירה את הפלט \( x^{2} \)”, כלומר זוהי פונקציה של “העלאה בריבוע”. כזו שקושרת בין כל מספר והריבוע שלו. עוד דוגמאות: \( f\left(x\right)=x+3 \) מוסיפה 3 לקלט; \( f\left(x\right)=7x^{2}+2x+5 \) מעלה את הקלט בריבוע, מכפילה ב-7, מוסיפה לזה את הקלט כפול 2, ולזה מוסיפה 5. אפשר לחשוב על פונקציה שכזו כאילו התיאור שלה מכילה גם “הוראות הכנה”: \( 7x^{2}+2x+5 \) הוא בעצם “מתכון” שמסביר איך אפשר להפיק מתוך \( x \) את הערך של \( f\left(x\right) \). המונח המקובל במתמטיקה למתכונים שכאלו הוא אלגוריתם.

לפעמים גם משתמשים בסימון \( y=x^{2} \) כדי לתאר פונקציה; כאן המשמעות של \( y \) היא “המשתנה שמייצג את הפלט”, שמכונה גם “המשתנה הקשור” (כי הוא קשור ל-\( x \); כאשר הערך של \( x \) משתנה, הערך של \( y \) משתנה בהתאם). זה סימון נפוץ בספרי לימוד חדו”א אבל אני לא אוהב אותו ולא אשתמש בו יותר.

הבה ונעבור לפונקציה יותר בעייתית, מבחינות רבות: \( f\left(x\right)=\sqrt{x} \). הפונקציה שבהינתן מספר ממשי, מתאימה לו את השורש שלו. מה הבעיות כאן? ובכן, שלוש בעיות עיקריות: ראשית, לא לכל מספר ממשי יש שורש ממשי; שנית, יש מספרים שיש להם שני שורשים ממשיים; שלישית, גם אם למספר יש שורש לא ברור איך מוצאים אותו.

ובכן, נתחיל מהבעיה הראשונה - למספר \( -1 \) אין שורש ממשי, כלומר אין מספר ממשי שכאשר נעלה אותו בריבוע ייתן לנו \( -1 \). לעומת זאת, קיימת קבוצת מספרים אשר מרחיבה את הממשיים ובה כן יש שורש למינוס 1 - המספרים המרוכבים. אם כן, הדרך לפתור את הבעיה הזו היא להגיד שהפונקציה לא חייבת להחזיר רק מספרים ממשיים, אלא יכולה גם להחזיר מספרים מרוכבים. במילים אחרות, יש חשיבות לקבוצת האיברים שממנה נלקחים הפלטים של הפונקציה. לקבוצה הזו קוראים טווח. שימו לב: אנחנו לא דורשים שכל ערך שנמצא בטווח בהכרח יוחזר על ידי הפונקציה בעבור קלט כלשהו; אנחנו פשוט מציינים בדרך שנוחה לנו קבוצת ערכים שמובטח לנו שכל פלטי הפונקציה ישתייכו אליה. למשל, עבור \( f\left(x\right)=x^{2} \) אפשר לציין בתור הטווח את קבוצת כל המספרים הממשיים, \( \mathbb{R} \). אך למעשה אפשר גם לדבר על הקבוצה \( \mathbb{R}^{+} \) שמכילה רק את המספרים הממשיים האי-שליליים (החיוביים ואפס), שכן אם מעלים מספר ממשי בריבוע יתקבל מספר אי שלילי. אם כן, מהו הטווח ה”נכון” כאן? אין משמעות לשאלה זו; \( \mathbb{R} \) ו-\( \mathbb{R}^{+} \) שניהם טווחים לגיטימיים של \( f\left(x\right)=x^{2} \). מכיוון שלפעמים כן יש חשיבות לשאלה מיהו הטווח של הפונקציה, נוהגים לומר זאת במפורש כאשר יש בכך צורך.

דרך אחרת לפתור את הבעיה של \( -1 \) היא להגיד שהפונקציה \( f\left(x\right)=\sqrt{x} \) פשוט לא מוגדרת על ערכים שליליים של \( x \). כלומר, אנחנו מגבילים מראש את טווח הערכים שהפונקציה יכולה לקבל. עשינו זאת כבר קודם, כאשר הגבלנו את \( f\left(x\right) \) לקבל רק מספרים ממשיים ולא, למשל, ספרי מתמטיקה. אם כן, מה הבעיה להגביל עוד קצת את אוסף הערכים ש-\( f \) יכולה לקבל? לקבוצת הערכים שאותם \( f \) מקבלת קוראים התחום של \( f \) - ובדומה לטווח, לגיטימי לדבר על תחומים שונים ומשונים (כך למשל לפונקציה \( f\left(x\right)=x^{2} \) תחום לגיטימי הוא \( \mathbb{R} \), אבל גם \( \mathbb{R}^{+} \) הוא תחום לגיטימי).

אם כן, פונקציה מאופיינת על ידי שלושה דברים: התחום שלה, הטווח שלה, ומה שהיא עושה - המיפוי שהיא מבצעת בין קלט ופלט. כאשר יש חשיבות לתחום ולטווח נוהגים לכתוב \( f:A\to B \) כדי להגיד “הפונקציה \( f \) היא בעלת תחום \( A \) וטווח \( B \)”. כדי לציין את מה שהפונקציה עושה משתמשים בסימון דוגמת \( f\left(x\right)=x^{2} \) שראינו קודם, אבל עוד סימון מקובל הוא \( x\mapsto x^{2} \), שיש לקרוא כ”\( x \) מתמפה אל \( x^{2} \)”. אלו בסך הכל שיטות סימון שונות ואין ביניהן הבדל מהותי.

אם כן, את פונקצית השורש אפשר לתאר כך: \( f:\mathbb{R}^{+}\to\mathbb{R}^{+} \), \( x\mapsto\sqrt{x} \). פתרנו את הבעיה הראשונה.

הבעיה השניה היא שאם \( x \) הוא מספר ממשי חיובי (גדול מאפס) יש לו שני שורשים. למשל, ל-4 יש את השורשים \( 2 \) ו-\( -2 \). עם זאת, לפונקציה יכול להיות פלט יחיד. מה עושים? פשוט - בוחרים את אחד מהפלטים האפשריים וחסל. פונקצית השורש מוגדרת ככזו שלוקחת תמיד את השורש החיובי מבין השניים (השורשים של מספר ממשי הם תמיד מהצורה \( a \) ו-\( -a \) עבור \( a \) ממשי חיובי כלשהו). כמובן שמתמטיקאים תמיד ששים להכליל כל דבר ולשבור את החוקים בכל הזדמנות (באמת!) ולכן קיים גם מושג של “פונקציה רב-ערכית” - פונקציה שבה לכל קלט יכולים להיות כמה פלטים - אך זה מושג שמופיע בהקשרים ספציפיים, וניתן לפרמל אותו תוך שימוש במושג ה”רגיל” של פונקציה ובלי באמת לשבור את הכללים, ולכן לא נדבר עליו כעת.

הבעיה השלישית היא אולי המהותית ביותר כאן. מה קורה כאשר מזינים לפונקציה \( f\left(x\right)=\sqrt{x} \) את הערך \( 2 \)? איך מוצאים את התשובה? יותר חשוב - אפילו אם מצאנו אותה, באיזה מובן מצאנו אותה? האם אנחנו יכולים לכתוב את כולה על נייר בבסיס עשרוני? האם \( \sqrt{2} \) איננה תשובה מספיקה? כמו שאתם רואים, השאלה הזו היא פילוסופית בעיקרה - לא ברור לנו מה נחשב תשובה “לגיטימית”. לכן אנחנו מבצעים הפרדה חדה, כשמדברים על פונקציות, בין ההגדרה של הפונקציה ובין החישוב שלה. זה שהצלחנו להגדיר פונקציה במילים או בנוסחה עדיין לא אומר שאנחנו יודעים לחשב אותה - ולמעשה, ידועות פונקציות שניתנות להגדרה במילים, אך הן בלתי ניתנות לחישוב, לפחות לא באופן שבו אנחנו מבינים כיום את המושג “חישוב”. בהקשר זה פונקציות כמו \( f\left(x\right)=7x^{2}+2x+5 \) הן פשוטות מאוד יחסית - ההגדרה שלהן כבר כוללת אלגוריתם (ואפילו אלגוריתם יעיל) לחישוב שלהן. אבל חשוב להבין שזה בשום פנים ואופן לא מאפיין כללי של כל הפונקציות.

אם כן, הבה וננסה להביא הגדרה קצת יותר מדוייקת של “מהי פונקציה”- ההגדרה האמיתית שאיתה עובדים המתמטיקאים. לשם כך נתחיל מלדבר על התחום והטווח - ניקח שתי קבוצות \( A,B \), ונגדיר פונקציה בתור קבוצה של זוגות מהצורה \( \left(a,b\right) \) כך ש-\( a\in A,b\in B \) (\( a \) שייך ל-\( A \) ו-\( b \) שייך ל-\( B \)), באופן כזה שלכל איבר של \( A \) קיים זוג יחיד שבו הוא מופיע בצד שמאל. במילים אחרות, אם נסתכל על כל הזוגות, כל איבר של \( A \) יופיע מתישהו בצד שמאל של הזוגות, ולא יופיע פעמיים. זה הכל. המשמעות של זוג \( \left(a,b\right) \) כזו היא בדיוק \( f\left(a\right)=b \), כלומר שהפונקציה מעבירה את \( a \) ל-\( b \).

העובדה שכל איבר של \( A \) מופיע בצד שמאל של אחד מהזוגות מבטיח שהפונקציה מוגדרת על כל האיברים של \( A \). העובדה שהוא מופיע רק בזוג אחד מראה שההגדרה הזו היא “בסדר” - שאנחנו לא מתאימים לאותו איבר כמה ערכים אפשריים.

שימו לב שעשינו כאן קפיצה מחשבתית מסויימת - אם אנחנו מתארים פונקציה בתור אוסף של זוגות, אנחנו אפילו לא נזקקים לדיבורים על איזה שהוא כלל שמגדיר את התנהגות הפונקציה; כל אוסף שרירותי לגמרי של זוגות נחשב פונקציה. התוצאה של כך היא (ועכשיו אני גולש למתמטיקה מחוכמת למדי ולא מצפה שכולם יבינו) שבהינתן \( A,B \) אפשר לדבר על דברים כמו “קבוצת כל הפונקציות מ-\( A \) ל-\( B \)” למרות שייתכן שאין לנו שום דרך לתאר איך חלק מהפונקציות הללו נראות.

בואו נראה כמה דוגמאות לפונקציות. הדוגמאות הנוחות ביותר הן של פונקציות \( f:\mathbb{R}\to\mathbb{R} \) כי הן גם נפוצות למדי וקרוב לודאי שכל מי שלמד מתמטיקה בתיכון נתקל בהן. כתבתי שהתחום הוא \( \mathbb{R} \), אבל זו הייתה הכללה גסה - בחלק מהפונקציות התחום ייאלץ להיות קטן יותר, ואני אגיד במפורש מהו במקרה הזה. יותר מכך - במקרה של פונקציות כאלו, אפשר לתאר אותן בצורה גאומטרית נוחה - בתור קו כלשהו במישור. הרעיון הוא שלכל נקודה בציר \( x \), מוצאים ה”גובה”בציר \( y \) שמתאים ל-\( f\left(x\right) \) ומציירים שם נקודה. כלומר, מציירים נקודה בקוארדינטה \( \left(x,f\left(x\right)\right) \). מכיוון שלכל \( x \) מתאים בדיוק \( f\left(x\right) \) יחיד, הרי שאם נמתח קו אנכי שקוארדינטת ה-\( x \) שלו היא \( x \) שלנו, הוא יחתוך את הקו שציירנו בדיוק בנקודה אחת. זו התכונה שמאפיינת ציורים של פונקציות. באופן כללי ציורים כאלו נקראים גרף.

ובכן, נתחיל מ-\( f\left(x\right)=a \) כאשר \( a\in\mathbb{R} \). זוהי פונקציה קבועה - לא משנה מה הקלט, הפלט תמיד זהה ושווה ל-\( a \). זהו אולי הסוג הפשוט ביותר של פונקציות. הגרף של הפונקציה הזו הוא פשוט קו ישר בעל גובה קבוע - \( a \).

לאחר מכן יש את \( f\left(x\right)=x \) - זוהי פונקצית הזהות שבה הקלט שווה לפלט. כאן הגרף הוא קו אלכסוני שעובר דרך ראשית הצירים.

עכשיו אפשר להתחכם - \( f\left(x\right)=ax+b \), כלומר מכפילים את הקלט ב-\( a \) ומוסיפים לו \( b \). פונקציות כאלו מכונות לינאריות (שם מדויק יותר הוא “אפיניות”, אבל נעזוב את זה). כאן הגרף הוא קו נטוי שחותך את ציר \( y \) בדיוק בנקודה \( b \) (למה?) והשיפוע של הקו (ה”כמות” שבה הוא נוטה) תלויה ב-\( a \); ככל ש-\( a \) קטן יותר, כך הקו יותר אופקי, עד שב-\( a=0 \) הוא הופך להיות אופקי לגמרי (ואז חזרנו למקרה של פונקציה קבועה), וככל ש-\( a \) גדול יותר כך הקו יותר אנכי (שימו לב שלא משנה כמה הוא גדול, לא נגיע לקו אנכי לגמרי; קו אנכי לגמרי אינו מייצג פונקציה). עבור \( a=1 \) נקבל קו שהוא בדיוק “באמצע הדרך” - וזה נראה קצת מוזר בהתחשב בכמה ש-1 הוא מספר קטן. ומה קורה כאשר \( a \) שלילי? נסו לצייר בעצמכם ולראות.

עוד פונקציה שכבר דיברנו עליה היא \( f\left(x\right)=x^{2} \). הגרף שלה הוא מה שנקרא פרבולה. כמו קודם, אפשר לעשות כאן מניפולציות של כפל בקבוע וחיבור של \( x \) וכדומה, ולדבר על פונקציה כללית יותר: \( f\left(x\right)=ax^{2}+bx+c \). כל תלמיד תיכון כנראה כבר מכיר (ושונא…) את היצור הזה, אבל גם יודע שהנקודות שבו הוא חותך את ציר ה-\( x \) מתאימות בדיוק לפתרונות של המשוואה הריבועית \( ax^{2}+bx+c=0 \). אני רוצה לעצור רגע ולהדגיש עד כמה זה דבר יפה. תשכחו מכל התרגילים הטכניים המזוויעים שקשורים לכך - יש לנו כאן קשר בין נקודות חיתוך בין שני יצורים גאומטריים, ובין פתרונות של משוואה אלגברית. זה לא קשר טריוויאלי או מובן מאליו; והרעיון הזה, של קשר בין גאומטריה ובין אלגברה, נותר אחד מהרעיונות החשובים ביותר גם בענפים מתקדמים מאוד של המתמטיקה (בפרט הגאומטריה האלגברית).

אם ההגדרה של הפונקציות עבדה לנו עד \( x^{2} \), למה לא להמשיך? ואכן, אפשר להגדיר גם \( f\left(x\right)=x^{3} \), \( f\left(x\right)=x^{4} \) וכן הלאה. באופן כללי: \( f\left(x\right)=x^{n} \), עבור \( n \) שהוא מספר טבעי (גדול או שווה לאפס) כלשהו. ואז אפשר לעשות קפיצת מדרגה קדימה ולהגדיר פונקציה שנראית כך: \( f\left(x\right)=a_{n}x^{n}+a_{n-1}x^{n-1}+\dots+a_{2}x^{2}+a_{1}x+a_{0} \). פונקציה כזו נקראת פולינום (“רב-איבר”), והיא הצורה הכללית ביותר של כל הפונקציות שהצגנו עד כה. לפולינומים חשיבות עצומה בשל הפשטות הרבה שלהם, שבאה לידי ביטוי גם בתיאור הפשוט שלהם וגם בעובדה שקל לחשב אותם - הם הדבר הראשון שבו אנו מטפלים במסגרת החדו”א, ובעזרתם אפשר לדעת דברים מעניינים על פונקציות מסובכות בהרבה (למשל, איך לחשב עבורן קירוב).

מה שעד כה לא היה בפונקציות שלנו הוא חילוק. למשל, \( f\left(x\right)=\frac{1}{x} \) טרם הופיע. שימו לב לסיבוך שהפונקציה הזו גוררת - היא לא מוגדרת ב-\( x=0 \) ולכן תחום ההגדרה שלה הוא כל שאר המספרים הממשיים. כשמציירים אותה רואים שאכן קרה כאן משהו מוזר - הפונקציה מפוצלת לשני “ענפים”שמתנהגים שונה, האחד מימין לציר ה-\( y \) והשני משמאל לו.

ומה על פונקציה כמו \( f\left(x\right)=\frac{1}{x+1} \)? גם בה יש בעיה, אבל לא ב-\( x=0 \) אלא דווקא ב-\( x=-1 \). וזה יכול להסתבך: \( f\left(x\right)=\frac{1}{x^{2}-1} \) הוא בעל שתי נקודות בעייתיות שונות - \( x=1 \) ו-\( x=-1 \). בקיצור, הבעיה עם שברים היא בכל הנקודות שבהן המכנה מתאפס. כשמבקשים למצוא את תחום ההגדרה של פונקציות כאלו, כמו שמאוד אוהבים לעשות בתיכון, המטרה היא למצוא את הנקודות שבהן המכנה מתאפס. שימו לב שזה לא בהכרח קורה בכלל, אפילו אם יש לנו שבר: \( f\left(x\right)=\frac{1}{x^{2}+1} \) מוגדר לכל \( x \) כי המכנה לא יכול להתאפס כלל (במספרים ממשיים).

באופן כללי אם \( p\left(x\right),q\left(x\right) \) הם שני פולינומים, אז אפשר להגדיר פונקציה \( f\left(x\right)=\frac{p\left(x\right)}{q\left(x\right)} \). פונקציה שכזו (שהיא מנה של שני פולינומים) מכונה פונקציה רציונלית. אפשר לחשוב עליה בתור “רמת הסיבוך הבאה” אחרי פולינומים. תחום ההגדרה שלה כולל את כל הנקודות שבהן \( q\left(x\right) \) שונה מאפס; מכיוון שלפולינום מדרגה \( n \) יש לכל היותר \( n \) ערכים שמאפסים אותו (זהו משפט לא מסובך במיוחד, אך גם כזה שלא רואים בתיכון) הפונקציה מוגדרת “כמעט בכל מקום”.

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

יותר מכך, עבור פונקציות נוספות אין ממש טעם להציג אותן ותו לא; צריך לתת מוטיבציה כלשהי לקיומן. עשיתי זאת לא מזמן עבור הפונקציות העיקריות שאציג כעת, אם כי יש עוד הרבה דרכים שונות לתת מוטיבציה לדיבורים על הפונקציות הללו. אני מדבר על פונקציות הסינוס והקוסינוס \( \sin\left(x\right),\cos\left(x\right) \) (והפונקציות שמתוארת באמצעותם, דוגמת \( \tan\left(x\right)=\frac{\sin\left(x\right)}{\cos\left(x\right)} \), על הפונקציה המעריכית \( e^{x} \) והפונקציה ההפוכה לה, הלוגריתם \( \ln x \). יש עוד מחלקה של פונקציות פופולריות - הפונקציות ההיפרבוליות - אך נעזוב אותן בשקט כי הן לא מופיעות בתיכון, וגם במתמטיקה מתקדמת יותר הן מופיעות רק בהקשרים מאוד ספציפיים (בעוד שהפונקציות הטריגונומטריות - סינוס וקוסינוס - והפונקציה המעריכית והלוגריתמית מופיעות כל הזמן כמעט). כאמור, אין לי תיאור פשוט לאף אחת מהפונקציות הללו כך שלא אתאר אותן עכשיו בכלל; למעשה, לא רק שאפשר להשתמש בחדו”א כדי לתת דרכים טובות לחשב את הפונקציות הללו, אלא אפשר להשתמש בחדו”א כדי לספק להן הגדרות משביעות רצון. זה בדיוק מה שעשיתי בפוסטים שעסקו בפונקציות הטריגונומטריות ובפונקציה המעריכית, שבהם הראיתי איך ניתן להשתמש בנגזרת כדי לתאר את הפונקציות הטריגונומטריות והפונקציה המעריכית; תיאור טוב של הלוגריתם (שהוא מאוד מקובל בספרים בנושא) הוא באמצעות האינטגרל.

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


נהניתם? התעניינתם? אם תרצו, אתם מוזמנים לתת טיפ:

Buy Me a Coffee at ko-fi.com