מחשבון מדעי: חזקות, שורשים, לוגריתמים וטריגונומטריה
מחשבון מדעי אונליין לחישוב חזקות, שורשים, log ו-ln, סינוס, קוסינוס וטנגנס במעלות או ברדיאנים, עצרות, אחוזים וזיכרון.
Scientific Calculator
Evaluates a typed or tapped expression with the usual order of operations, including powers, roots, logarithms, trigonometry and factorials.
Keypad
How this calculator reads an expression
History
No calculations yet. Press = to add one.
תיעוד
מחשבון מדעי
מחשבון מדעי מחשב את ערכו של ביטוי מתמטי כתוב. מחשבון זה קורא חזקות, שורשים, לוגריתמים, טריגונומטריה, עצרות ואחוזים, מחיל את סדר הפעולות המקובל ומציג תשובה אחת.
מה עושה המחשבון
ביטוי מוקלד בתיבת הביטוי או נבנה באמצעות לוח המקשים. המחשבון קורא אותו מיד עם שינויו, ולכן אין צורך במקש שוויון כדי לראות את התשובה. המקש = מוסיף במקום זאת את החישוב לרשימת ההיסטוריה.
הוא מקבל:
- ספרות, נקודה עשרונית ומספרים בצורת מעריך, כגון
1.5e-3; - את האופרטורים
+,-,*,/ו־^(חזקה), וכן סוגריים; - את הקבועים
piו־e; - את הפונקציות
sin,cos,tan,asin,acos,atan,log,ln,sqrtו־cbrt; - את הסימנים שאחרי המספר
!(עצרת) ו־%(אחוז).
הסימנים בלוח המקשים מתורגמים לסימנים המקבילים הפשוטים שלהם, ולכן ×, ÷, − ו־π פירושם זהה ל־*, /, - ו־pi.
log הוא לוגריתם בבסיס 10, ו־ln הוא לוגריתם טבעי, בבסיס e. זהו הסימון המשמש במחשבונים המדעיים של TI ושל Casio, וכן הסימון בספרייה הדיגיטלית של NIST לפונקציות מתמטיות, סעיף 4.2.
סדר הפעולות
הכלל שקובע את משמעותו של ביטוי הוא סדר הפעולות. מחשבון זה משתמש בדקדוק שלהלן. כל שורה קוראת לשורה שמתחתיה, ולכן הקינון הוא טבלת הקדימויות: השורה האחרונה קושרת באופן ההדוק ביותר ומחושבת ראשונה.
1expression := term (('+' | '-') term)*
2term := unary (('*' | '/' | juxtaposition) unary)*
3unary := ('-' | '+') unary | power
4power := postfix ('^' unary)?
5postfix := primary ('!' | '%')*
6primary := number | constant | name '(' expression ')' | '(' expression ')'
7ברשימה, מהמחושב ראשון ועד המחושב אחרון:
- כל מה שנמצא בתוך סוגריים, ופונקציה המופעלת על סוגריים;
!ו־%;^;- סימן
-או+בתחילת הביטוי; *,/ושני איברים הכתובים זה לצד זה;+ו־-.
המוסכמות המתקבלות תואמות לתקן ISO 80000-2:2019 ולערך "סדר הפעולות" בוויקיפדיה:
| כתוב | נקרא כ־ | ערך |
|---|---|---|
2^3^2 | 2^(3^2) | 512 |
-2^2 | -(2^2) | -4 |
2^-2 | 2^(-2) | 0.25 |
2^3! | 2^(3!) | 64 |
100+10% | 100 + (10/100) | 100.1 |
1/2pi | (1/2) * pi | 1.57079632679 |
6/2(1+2) | (6/2) * (1+2) | 9 |
שני מספרים או שמות הכתובים זה לצד זה מוכפלים, ולכן 2pi, 2(3+4) ו־3sin(30) פועלים כמצופה. הכפל הסמוי הזה נמצא באותה דרגת קדימות כמו * ו־/, ולכן הצמדה וחילוק נקראים משמאל לימין. מחשבונים מדעיים ידניים רבים נותנים להצמדה קדימות גבוהה יותר מחילוק וקוראים את 1/2pi כ־1/(2*pi), מה שמוביל לתשובה אחרת. ויקיפדיה מתארת את ההבדל בערך "שיטות הזנת קלט למחשבון". סוגריים מונעים כל אי־בהירות במקרה שבו ההבדל חשוב.
% מחלק ב־100 בכל מקום שבו הוא מופיע. לכן 20% הוא 0.2, ו־200*15% הוא 30. זה אינו המקש "אחוז מהסכום המצטבר" של קופה בחנות, ואינו אופרטור שארית.
דוגמה פתורה
הביטוי sin(30)+2^3*ln(4), במצב מעלות, מחושב בסדר הבא:
sin(30)הוא 0.5, מפני ש־30 מעלות הן מחצית מזווית ישרה, והסינוס שלהן הוא חצי.2^3הוא 8. חזקות מחושבות לפני כפל.ln(4)הוא 1.38629436112.8 * 1.38629436112הוא 11.090354889.0.5 + 11.090354889הוא 11.590354889.
המחשבון מציג 11.590354889.
דוגמה נוספת מדגימה את כלל הקריאה משמאל לימין. ב־6/2(1+2) הסוגריים מחושבים ראשונים, ומתקבל 6/2*3. לחילוק ולכפל הסמוי אותה דרגת קדימות, ולכן החילוק מתבצע ראשון: 6/2 הוא 3, ו־3*3 הוא 9.
מעלות ורדיאנים
הגדרת יחידת הזווית קובעת כיצד sin, cos ו־tan מפרשות את הקלט שלהן, ובאיזו יחידה asin, acos ו־atan מחזירות תוצאה. במצב מעלות סיבוב שלם הוא 360. במצב רדיאנים סיבוב שלם הוא 2pi, בערך 6.28318530718. אותו ביטוי יכול להניב תשובות שונות מאוד בשני המצבים: sin(30) הוא 0.5 במצב מעלות ו־-0.988031624093 במצב רדיאנים.
כיצד מספרים נשמרים ומוצגים
כל ערך הוא מספר double בינארי מסוג IEEE 754 binary64, סוג המספר המתואר ב־ECMA-262, במפרט שפת ECMAScript, בסעיף 6.1.6.1. מספר double מכיל בערך 15 עד 17 ספרות עשרוניות. התשובה מעוגלת פעם אחת, לצורך המסך בלבד, ל־12 ספרות משמעותיות. ערכים הנמוכים מ־0.000001 או השווים ל־1,000,000,000,000 ומעלה מוצגים בצורה מעריכית, ולכן 0.0000001 נקרא כ־1E-7.
המספר הנשמר שומר על מלוא הדיוק. הזיכרון שומר את התוצאה המדויקת, ולא את 12 הספרות שעל המסך, ו־MR מדביק בחזרה את הטקסט הקצר ביותר שנקרא כאותו מספר. ערך שלילי בזיכרון מודבק בתוך סוגריים, ולכן שליפתו אחרי 2 נקראת ככפל ולא כחיסור.
לעיגול אין כל תפקיד בקבלת החלטות. שארית זעירה מחישוב קודם היא מספר ממשי ומתייחסים אליה ככזו. 0.1*3-0.3 אינו אפס בבינארי; ערכו בערך 5.55111512313E-17, ולכן 5/(0.1*3-0.3) נותן 9.00719925474E16 במקום הודעה על חלוקה באפס.
מאותה סיבה sin(180) במצב מעלות מציג 1.22464679915E-16 ולא 0. השגיאה שם היא בערך חלק אחד מתוך עשרה קוודריליון, והיא נשארת קטנה כל כך. הטנגנס הוא היוצא מן הכלל, והוא מטופל להלן.
מה המחשבון מסרב לקבל
המחשבון מציג הודעה במקום תשובה כאשר:
- המכנה הוא בדיוק אפס, כולל מספר כתוב שקטן מדי עבור מספר double, כגון
1e-400, שכבר נקרא כאפס; - ל־
sqrtניתן מספר שלילי; - ל־
logאו ל־lnניתן מספר שאינו גדול מאפס; - ל־
asinאו ל־acosניתן מספר מחוץ לטווח -1 עד 1, שהוא התחום המוגדר בסעיף 4.14 של NIST DLMF; - משתמשים ב־
tanב־90 מעלות, או בכל כפולה אי־זוגית שלהן, שבה אין לו ערך; - מבקשים לחשב עצרת של דבר שאינו מספר שלם בטווח 0 עד 170;
- מספר כולל נקודה עשרונית שנייה, כמו ב־
1.2.3; - הביטוי ארוך מ־512 תווים.
מגבלת 170 היא תכונה של סוג המספר, ולא העדפה: עצרת 170 היא בערך 7.25741561531E306, ועדיין מתאימה למספר double, ואילו עצרת 171 אינה מתאימה. מגבלת 512 התווים נבדקת בקוד, מפני שאורך הביטוי הוא שקובע כמה עבודה המחשבון יבצע.
בדיקת הטנגנס מעגלת את הזווית ל־9 מקומות אחרי הנקודה העשרונית לפני הבדיקה. כך סטייה מחישובים קודמים מוחזרת לאסימפטוטה המדויקת, במחיר של חלון סירוב ברוחב של כ־5e-10 מעלות מכל צד. tan(89.9999999994) מחזיר 95,493,592,025, ואילו tan(89.9999999995) נדחה. במצב רדיאנים אין בדיקה כזו, מפני שערך רדיאני שהוקלד בקרבת מחצית הפאי הוא פשוט מספר נוסף, ללא מעמד מיוחד.
שאלות נפוצות
מה עושה כאן המקש %?
הוא מחלק ב־100 בכל מקום שבו הוא מופיע. 100+10% הוא 100.1, מפני שפירושו 100 ועוד 0.1. הוא אינו מחשב אחוז מתוך מה שהופיע לפניו.
האם 2^3^2 הוא 64 או 512?
512. חזקות מקובצות מימין, ולכן פירושו 2^(3^2), שהוא 2^9. כך קובע תקן ISO 80000-2:2019.
מדוע 6/2(1+2) הוא 9 ולא 1?
לכפל סמוי אותה דרגת קדימות כמו לחילוק, ודרגות שוות נקראות משמאל לימין. מחשבונים שנותנים להצמדה קדימות גבוהה יותר מחזירים 1. סוגריים מסלקים את הספק.
מדוע sin(180) אינו מציג 0?
מפני ש־180 מעלות מומרות תחילה לרדיאנים, ואי־אפשר לכתוב את pi בדיוק בבינארי. התוצאה היא בערך 1.2e-16, וזהו הערך האמיתי של הסינוס עבור המספר שבו המכונה השתמשה בפועל.
מה ההבדל בין log ל־ln?
log הוא בבסיס 10, ולכן log(1000) הוא 3. ln הוא בבסיס e, ולכן ln(e) הוא 1. הסימונים בלוח המקשים פועלים לפי אותה מוסכמה כמו במחשבונים המדעיים של TI ושל Casio.
מדוע עצרת מעל 170 נדחית? עצרת 171 גדולה מכל מספר שמספר double מסוגל להכיל, ולכן התשובה תהיה אינסוף ולא מספר. המחשבון מציין זאת במקום להציג תוצאה חסרת משמעות.
מקורות
- IEEE 754-2019, התקן של IEEE לחשבון בנקודה צפה.
- ECMA-262, מפרט שפת ECMAScript, סעיף 6.1.6.1, "סוג Number".
- ISO 80000-2:2019, גדלים ויחידות, חלק 2: סימנים וסמלים מתמטיים.
- הספרייה הדיגיטלית של NIST לפונקציות מתמטיות, סעיפים 4.2 ו־4.14.
- ויקיפדיה, "סדר הפעולות".
- ויקיפדיה, "שיטות הזנת קלט למחשבון".