משוואה דיופנטית

במתמטיקה משוואה דיופנטית היא משוואה שקבוצת הפתרונות שלה מוגבלת, בדרך-כלל, לקבוצת המספרים השלמים. משוואות אלה נקראות על שם המתמטיקאי היווני דיופנטוס שחקר אותן. מנקודת מבט כללית יותר מתייחס השם "משוואה דיופנטית" גם למשוואות שבהן הנעלמים עשויים לקבל ערכים בחוגים אחרים, ובפרט בחוגי שלמים של שדות מספרים. המיון הבסיסי של משוואות דיופנטיות דומה לזה של מערכות משוואות אחרות: ההבחנה הראשונה היא בין משוואות פולינומיות לבין משוואות כלליות. פרמטרים בסיסיים אחרים הם מספר המשוואות ומספר המשתנים. למשוואות שאינן פולינומיות (כמו משוואת דיפי־הלמן a x = c + n y {\displaystyle a^{x}=c+ny} , בנעלמים x , y {\displaystyle x,y} עבור a , c , n {\displaystyle a,c,n} נתונים), אין תאוריה כללית, ובדרך כלל מיוחד המונח "משוואה דיופנטית" למשוואות פולינומיות. משוואות פולינומיות אפשר למיין מיון נאיבי על-פי המעלה הכוללת של הפולינום, או ה"גובה" של המשוואה (ראו מאמרו של Grechuk ברשימת המקורות, המראה את הפתרון של כל המשוואות הדיפנטיות הפולינומיות בצורה מסודרת, החל מגובה 0 ועד גובה 30, וקורא להמשיך בתוכניתו לפתור משוואות לפי גובה הולך וגדל), אך התאוריה המודרנית, המטפלת במשוואות דיופנטיות בכלים של גאומטריה אריתמטית, ממיינת את מערכות המשוואות על-פי הגנוס הגאומטרי שלהן. בעקבות פתרון הבעיה העשירית של הילברט, ידוע שאין אלגוריתם המכריע האם למערכת משוואות נתונה יש פתרון. עם זאת, תורת המספרים הקלאסית התמודדה עם טיפוסים רבים של משוואות דיופנטיות (בעיקר ממעלות 2, 3 ו-4), ופותחו כמה שיטות כלליות, כמו גם נימוקים מבריקים לכל מקרה ומקרה. אחת הדוגמאות הידועות היא המשוואה הריבועית x 2 + y 2 = z 2 {\displaystyle x^{2}+y^{2}=z^{2}} , הנגזרת ממשפט פיתגורס, ושהפתרונות לה נקראים שלשות פיתגוריות. למשוואה זו יש פתרון כללי: x = 2 s t , y = s 2 − t 2 , z = s 2 + t 2 {\displaystyle x=2st,y=s^{2}-t^{2},z=s^{2}+t^{2}} כאשר s , t {\displaystyle s,t} מספרים טבעיים. לפי המשפט האחרון של פרמה, למשוואה x n + y n = z n {\displaystyle x^{n}+y^{n}=z^{n}} עבור n > 2 {\displaystyle n>2} אין פתרונות שלמים, למעט הטריוויאליים (שבהם אחד הנעלמים שווה ל-0). משוואות דיופנטיות מערבות במקרים רבים קשיים חישוביים משמעותיים. פתרון המשוואה הפשוטה x y = n {\displaystyle xy=n} (עבור x , y > 1 {\displaystyle x,y>1} ) שקול לבעיית הפירוק של המספר n {\displaystyle n} לגורמיו הראשוניים, ומאמינים שעבור n {\displaystyle n} גדול זוהי בעיה קשה. יש שיטות הצפנה נפוצות (כמו RSA) שחוזקן מבוסס על ההנחה שבעיית הפירוק אכן קשה לפתרון. למשוואה הדיופנטית a x + b y = c {\displaystyle ax+by=c} (עבור a , b , c {\displaystyle a,b,c} שלמים נתונים) יש פתרון בשלמים אם ורק אם המחלק המשותף המקסימלי של a , b {\displaystyle a,b} מחלק את c {\displaystyle c} . אם התנאי מתקיים נסמן gcd { a , b } = d {\displaystyle \gcd\{a,b\}=d} ובאמצעות אלגוריתם אוקלידס המורחב נמצא z 1 , z 2 {\displaystyle z_{1},z_{2}} שלמים עבורם a z 1 + b z 2 = d {\displaystyle az_{1}+bz_{2}=d} . קל לראות כי אכן x 0 = z 1 c d , y 0 = z 2 c d {\displaystyle x_{0}=z_{1}{\frac {c}{d}},y_{0}=z_{2}{\frac {c}{d}}} יהוו פתרון למשוואה. פתרונות נוספים למשוואה יתקבלו לזוגות המספרים ( x , y ) = ( x 0 + t b d , y 0 − t a d ) {\displaystyle (x,y)=\left(x_{0}+t{\frac {b}{d}},y_{0}-t{\frac {a}{d}}\right)} לכל t {\displaystyle t} שלם. נתונה המשוואה 20 x + 17 y = 1000 {\displaystyle 20x+17y=1000} . d = gcd { 20 , 17 } = 1 {\displaystyle d=\gcd\{20,17\}=1} מחלק את c = 1000 {\displaystyle c=1000} ולכן קיים פתרון למשוואה. נמצא z 1 , z 2 {\displaystyle z_{1},z_{2}} עבורם 20 z 1 + 17 z 2 = 1 {\displaystyle 20z_{1}+17z_{2}=1} באמצעות אלגוריתם אוקלידס המורחב. נתחיל עם המספרים 17 ו-20. 20 = 1 ⋅ 17 + 3 17 = 5 ⋅ 3 + 2 3 = 1 ⋅ 2 + 1 2 = 2 ⋅ 1 2 = 17 − 5 ⋅ 3 = 17 − 5 ⋅ ( 20 − 1 ⋅ 17 ) = 17 − 5 ⋅ 20 + 5 ⋅ 17 = 6 ⋅ 17 − 5 ⋅ 20 1 = 3 − 1 ⋅ 2 = ( 20 − 1 ⋅ 17 ) − 1 ⋅ ( 6 ⋅ 17 − 5 ⋅ 20 ) = 6 ⋅ 20 − 7 ⋅ 17 {\displaystyle {\begin{aligned}20&=1\cdot 17+3\\17&=5\cdot 3+2\\3&=1\cdot 2+1\\2&=2\cdot 1\\\\2&=17-5\cdot 3\\&=17-5\cdot (20-1\cdot 17)\\&=17-5\cdot 20+5\cdot 17\\&=6\cdot 17-5\cdot 20\\\\1&=3-1\cdot 2\\&=(20-1\cdot 17)-1\cdot (6\cdot 17-5\cdot 20)\\&=6\cdot 20-7\cdot 17\end{aligned}}} קיבלנו כי z 1 = 6 , z 2 = − 7 {\displaystyle z_{1}=6,z_{2}=-7} יקיימו 20 z 1 + 17 z 2 = 1 {\displaystyle 20z_{1}+17z_{2}=1} . במקרה זה c = 1000 , d = 1 {\displaystyle c=1000,d=1} לכן c d = 1000 {\displaystyle {\frac {c}{d}}=1000} ולכן x 0 = 1000 z 1 = 6000 , y 0 = 1000 z 2 = − 7000 {\displaystyle x_{0}=1000z_{1}=6000,y_{0}=1000z_{2}=-7000} יהוו פתרונות למשוואה. ואכן 6000 ⋅ 20 − 7000 ⋅ 17 = 1000 {\displaystyle 6000\cdot 20-7000\cdot 17=1000} . כלומר ( x , y ) = ( 6000 + 17 t , − 7000 − 20 t ) {\displaystyle (x,y)=(6000+17t,-7000-20t)} יהוו פתרון לכל t שלם. על-פי עקרון הסה, למשוואה דיופנטית ריבועית (הומוגנית, בכל מספר של משתנים) יש פתרון במספרים שלמים אם ורק אם יש לה פתרון ממשי ובכל שדה p-אדי, כלומר מודולו כל חזקה של ראשוני. עקרון הסה חל במקרה זה, מכיוון שמדובר בעקום מגנוס 0. עקרון הסה אינו חל על משוואות מגנוס גבוה יותר, ואפילו על עקומים אליפטיים; את הכישלון של עקרון הסה במקרה האחרון מודדת חבורת שפרביץ', שמשערים כי היא סופית. Bogdan Grechuk, Diophantine equations: a systematic approach, (2021), preprint. משוואה דיופנטית, באתר אנציקלופדיה למתמטיקה (באנגלית) פירוט והדגמה של פתרון משוואה דיופנטית (אנגלית) משוואה דיופנטית, באתר MathWorld (באנגלית) משוואה דיופנטית, באתר אנציקלופדיה בריטניקה (באנגלית) חישוב הגובה של המשוואה, ניתן על ידי הצבת המספר 2 בכל נעלם, הכפלתו בכל מי שמופיע באותו איבר במשוואה, וחיבור כל הערכים המוחלטים של כל האיברים. למשל למשוואה של שלשה פיתגוראית יהיה גובה 12 (לכל איבר גובה 4), ולמשוואה הבלתי פתירה הראשונה שבהשערת פרמה, יהיה גובה 24 (לכל איבר גובה 3^2=8)