מייפל/סקירת יכולות
< מייפל
סקירת יכולות
עריכהחישובים פשוטים
עריכהsum(n^2,n=1..1e9);
- הריבוע אוטומטית הופך לכתב עילי
- ה-e הופך מנטוי לרגיל.
100/3; %*4;
- סימן ה-% (בגרסאות ישנות יותר זהו סימן ה-") אומר למייפל להשתמש בתוצאה האחרונה. בדומה, %% זה התוצאה לפני האחרונה, ו-%%% זו הקודמת להיא (הדרגה השלישית היא המקסימלית).
פתרון מערכת משואות לינאריות
עריכהיש להעביר לפונקציה solve שני פרמטרים: האחד הוא מערכת משוואות והשני הוא המשתנים שרוצים לקבל את הביטוי עבורם:
solve({x+2*y+3*z = c, x-2*y+4*z = d, 3*x+6*y-2*z = e}, {z, x, d})
- שימו לב כי כאן מייפל יודעת להבחין בין e המספר ו-e כמשתנה (כאן ההתייחסות ל-e היא כאל פרמטר לא ידוע), אך בכל זאת לא מומלץ להשתמש באותיות שמורות על מנת למנוע שגיאות.
גזירה ואינטגרציה
עריכהout:=diff(e^x*sin^3*x, x)
int(out,x)
int(1/x^2, x = 2 .. infinity)
פתרון מד"ר
עריכהנבצע השמה:
ode:=3*y''+2*y'-y=3*exp(x)
- הפקודה הראשונה משתמש בשני אופרטורים. האופרטור הראשון הוא השמה, אשר אומר למייפל להשים משוואה לתוך המשתנה ode.
- שימו לב כי מייפל זיהתה לבד שy היא פונקציה של x וכתבה את הביטוי מעט אחרת (ניתן גם להזין אותו בלשון diff)
כעת נשתמש בפקודה dsolve לשם פתרון. יש להעביר כפרמטרים את המשוואה (ניתן היה לכתוב אותה ישירות), תנאי התחלה, ואת המשתנה עבורו פותרים (במקרה שלנו - y)
sol:=dsolve({y(0) = 1, (D(y))(0) = 1, ode}, y(x));
- שימו לב כי רק עבור dsolve, פירושו של D הוא נגזרת.
plot(rhs(sol),x=-5..5);
- הפקודה rhs מחלצת את אגף ימין של הביטוי.
- גרף בתחום הנ"ל יתווסף לגיליון העבודה.
פתרונות נומריים ודיוק
עריכה- גובה הדיוק מאוחסן במשתנה שמור בשם Digits בתור מספר הספרות אחרי הנקודה העשרונית:
Digits:=10: solve(x+1 = tan(x), x);
- התקבל פתרון סימבולי, אך ניתן "להעריך" אותו נומרית:
evalf(%)
- התקבל, כמבוקש, דיוק של 10 ספרות. ניתן להעביר פרמטר ל-evalf שיתעלם מברירת המחדל:
evalf(%%,3)
- לחילופין, ניתן להשתמש בפקודה fsolve כלהלן:
fsolve(x+1 = tan(x), x);
Digits:=20:
fsolve(x+1 = tan(x), x);
מטריצות
עריכהA := matrix(2, 2, [1, 2, 3, 4])
det(A)
with(linalg):
det(A)
eigenvalues(A)
- עד עתה השתמשנו בפקודות פשוטות אשר הkernel יודע לפתור. על מנת להשתמש בפקודות מטריציות, היינו צריכים לטעון את הספרייה linalg.
פרוצדורות
עריכהfor i to 5 do print(i^i) end do
4
27
256
toothF := proc (x) if x<5 or x>10 then 0 else 1 fi end;
toothF(3); toothF(6.5);
0
גרפיקה
עריכהplot3d(x^2+y^2,x=-2..2,y=-2..2,color=x^2+y^2)
- | סקירת יכולות | הפרק הבא: חיפוש עזרה |