מייפל/סקירת יכולות

מתוך ויקיספר, אוסף ספרי הלימוד והמדריכים החופשי.

קפיצה אל: ניווט, חיפוש


תוכן עניינים

[עריכה] סקירת יכולות

[עריכה] חישובים פשוטים

sum(n^2,n=1..1e9);
333333333833333333500000000
  • הריבוע אוטומטית הופך לכתב עילי
  • ה-e הופך מנטוי לרגיל.
100/3; %*4;
100\over 3
400\over 3
  • סימן ה-% (בגרסאות ישנות יותר זהו סימן ה-") אומר למייפל להשתמש בתוצאה האחרונה. בדומה, %% זה התוצאה לפני האחרונה, ו-%%% זו הקודמת להיא (הדרגה השלישית היא המקסימלית).

[עריכה] פתרון מערכת משואות לינאריות

יש להעביר לפונקציה solve שני פרמטרים: האחד הוא מערכת משוואות והשני הוא המשתנים שרוצים לקבל את הביטוי עבורם:

solve({x+2*y+3*z = c, x-2*y+4*z = d, 3*x+6*y-2*z = e}, {z, x, d})
\left\{z = {3\over 11}c-{1\over 11}e, x = -2y+{2\over 11}c+{3\over 11}e, d = -4y+{14\over 11}c-{1\over 11}e \right\}
  • שימו לב כי כאן מייפל יודעת להבחין בין e המספר ו-e כמשתנה (כאן ההתייחסות ל-e היא כאל פרמטר לא ידוע), אך בכל זאת לא מומלץ להשתמש באותיות שמורות על מנת למנוע שגיאות.

[עריכה] גזירה ואינטגרציה

out:=diff(e^x*sin^3*x, x)
\ e^x \ln(e) \sin^3 x+e^x sin^3
int(out,x)
\ e^x \sin^3x
int(1/x^2, x = 2 .. infinity)
1\over 2

[עריכה] פתרון מד"ר

נבצע השמה:

ode:=3*y''+2*y'-y=3*exp(x)
\ 3 \left( \frac{d^2}{dx^2}y(x) \right)+2 \left( \frac{d}{dx}y(x) \right) -y(x) = 3 e^x
  • הפקודה הראשונה משתמש בשני אופרטורים. האופרטור הראשון הוא השמה, אשר אומר למייפל להשים משוואה לתוך המשתנה ode.
  • שימו לב כי מייפל זיהתה לבד שy היא פונקציה של x וכתבה את הביטוי מעט אחרת (ניתן גם להזין אותו בלשון diff)

כעת נשתמש בפקודה dsolve לשם פתרון. יש להעביר כפרמטרים את המשוואה (ניתן היה לכתוב אותה ישירות), תנאי התחלה, ואת המשתנה עבורו פותרים (במקרה שלנו - y)

sol:=dsolve({y(0) = 1, (D(y))(0) = 1, ode}, y(x));
\ y(x) = -{1\over 8} e^{-x}+{3\over 8}e^{{1\over 3}x}+{3\over 4}e^x
  • שימו לב כי רק עבור dsolve, פירושו של D הוא נגזרת.
plot(rhs(sol),x=-5..5);
  • הפקודה rhs מחלצת את אגף ימין של הביטוי.
  • גרף בתחום הנ"ל יתווסף לגיליון העבודה.

[עריכה] פתרונות נומריים ודיוק

  • גובה הדיוק מאוחסן במשתנה שמור בשם Digits בתור מספר הספרות אחרי הנקודה העשרונית:
Digits:=10:
solve(x+1 = tan(x), x);
RootOf(-tan(_Z)+_Z+1)
  • התקבל פתרון סימבולי, אך ניתן "להעריך" אותו נומרית:
evalf(%)
1.132267725


  • התקבל, כמבוקש, דיוק של 10 ספרות. ניתן להעביר פרמטר ל-evalf שיתעלם מברירת המחדל:
evalf(%%,3)
1.13


  • לחילופין, ניתן להשתמש בפקודה fsolve כלהלן:
fsolve(x+1 = tan(x), x);
1.132267725
Digits:=20:
fsolve(x+1 = tan(x), x);
1.1322677252728851316

[עריכה] מטריצות

A := matrix(2, 2, [1, 2, 3, 4])
\ \begin{bmatrix} 1 & 2 \\3 & 4 \end{bmatrix}
det(A)
det(A)
with(linalg):
det(A)
-2
eigenvalues(A)
\ {5\over 2}+{1\over 2}\sqrt{33}, {5\over 2}-{1\over 2}\sqrt{33}
  • עד עתה השתמשנו בפקודות פשוטות אשר הkernel יודע לפתור. על מנת להשתמש בפקודות מטריציות, היינו צריכים לטעון את הספרייה linalg.

[עריכה] פרוצדורות

for i to 5 do print(i^i) end do
1

4
27
256

3125
toothF := proc (x) if x<5 or x>10 then 0 else 1 fi end;
proc (x) if x < 5 or 10 < x then 0 else 1 end if end proc
toothF(3); toothF(6.5);
1
0

[עריכה] גרפיקה

plot3d(x^2+y^2,x=-2..2,y=-2..2,color=x^2+y^2)
Maplesoft Maple-11 x2-plus-y2 3D plot.png



- סקירת יכולות הפרק הבא:
חיפוש עזרה