Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

11th grade-all tasks

2151 views
Kernel: Python 3 (Ubuntu Linux)
#names = [ , ] import sympy as sp import matplotlib.pyplot as plt sp.init_printing() %matplotlib inline

מטריצות-בשביל מה זה טוב?

שמות:

בעבודה הקודמת הכרתם את המטריצות ואת האלגברה שלהן. בסעיף זה תכירו את היתרונות והשימושים השונים של ההצגה המטריציונית

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

שימוש אחד הוא בהצגה ופיתרון של מערכת משוואות ליניארית. נתונה מערכת המשוואות הבאה :
$$ 3x + 2y + z = 2$$ $$ x + 5y+z=1$$ $$2x-y-7z=14$$

נגדיר את מטריצת המקדמים : A=(321151217) A=\begin{pmatrix} 3 & 2 & 1 \\ 1 & 5 & 1\\ 2 & -1& -7 \end{pmatrix} נגדיר שני ווקטורי עמודה: $$\begin{equation}

X= (xyz)\begin{pmatrix} x\\ y \\ z \end{pmatrix},

B=(2114)\begin{pmatrix} 2\\ 1\\ 14 \end{pmatrix} \end{equation}$$

A=sp.Matrix([[3,3.2],[3.5,3.6]]) A.inv()*sp.Matrix([[118.4],[135.2]])
[16.022.0000000000003]\left[\begin{matrix}16.0\\22.0000000000003\end{matrix}\right]

תרגילים

1. מצאו בעזרת הפונקציה solve של החבילה sympy את הפתרון של מערכת המשוואות: 3x+2y+z=2 3x + 2y + z = 2 x+5y+z=1 x + 5y+z=1 2xy7z=142x-y-7z=14
import sympy as sp x,y,z = sp.symbols("x y z") a = sp.Eq(3*x + 2*y + z, 2) b = sp.Eq(x + 5*y + z, 1) c = sp.Eq(2*x - y - 7*z, 14) d = [a,b,c] aSol = sp.solve(d,[x,y,z])[x] bSol = sp.solve(d,[x,y,z])[y] cSol = sp.solve(d,[x,y,z])[z] display(float(aSol), float(bSol), float(cSol))
1.02105263157894741.0210526315789474
0.34736842105263160.3473684210526316
1.7578947368421052-1.7578947368421052
2. הגדירו בעזרת sympy את מטריצת המקדמים A , המטריצה B ואת מטריצת העמודה X.
import sympy as sp A = sp.Matrix([[3,2,1],[1,5,1],[2,-1,-7]]) X = sp.Matrix([[x],[y],[z]]) B = sp.Matrix([[2],[1],[14]])
3. הראו כי ניתן להציג את מערכת המשוואות בצורה: AX=BAX=B
import sympy as sp x,y,z = sp.symbols("x y z") a = sp.Eq(3*x + 2*y + z, 2) b = sp.Eq(x + 5*y + z, 1) c = sp.Eq(2*x - y - 7*z, 14) d = [a,b,c] aSol = sp.solve(d,[x,y,z])[x] bSol = sp.solve(d,[x,y,z])[y] cSol = sp.solve(d,[x,y,z])[z] A = sp.Matrix([[3,2,1],[1,5,1],[2,-1,-7]]) X = sp.Matrix([[aSol],[bSol],[cSol]]) B = sp.Matrix([[2],[1],[14]]) C = A * X display(C==B)
True
4. הראו כי המכפלה A1BA^{-1}B נותנת וקטור שרכביו הם פתרונות המערכת.
תוכלו לקרוא על חישוב המטריצה ההופכית כאן
import sympy as sp x,y,z = sp.symbols("x y z") a = sp.Eq(3*x + 2*y + z, 2) b = sp.Eq(x + 5*y + z, 1) c = sp.Eq(2*x - y - 7*z, 14) d = [a,b,c] aSol = sp.solve(d,[x,y,z])[x] bSol = sp.solve(d,[x,y,z])[y] cSol = sp.solve(d,[x,y,z])[z] A = sp.Matrix([[3,2,1],[1,5,1],[2,-1,-7]]) X = sp.Matrix([[aSol],[bSol],[cSol]]) B = sp.Matrix([[2],[1],[14]]) C = A.inv() * B display(C==X)
True
5. מסתו של הגוף היא 4 ק"ג. הוא נע לכיוון אופקי בתאוצה קבועה של 20m/s220m/s^2. על הגוף פועלים שני כוחות, כוח F1F_1 הפועל בזווית 30o30^o לתאוצה ולמעלה וכוח F2F_2 הפועל מטה.
א. הרכיבו מערכת משוואות באמצעותה תוכלו לחשב את גודלו של כל אחד מהכוחות.
ב. הגדירו את מטריצת המקדמים.
ג. בעזרת sympy מצאו פתרון למערכת המשוואות.

ד. קטע הקוד שבהמשך משרטט חץ על המסך. הרחיבו את קטע הקוד באופן כזה שישרטט את תרשים הכוחות של הבעיה וידפיס ליד כל כוח את גודלו.

import sympy as sp F1,F2=sp.symbols("F1 F2") eq1= sp.Eq(sp.sin(30)*F1-F2,0) eq2= sp.Eq(sp.cos(30)*F1,4*20) eq = [eq1,eq2] G=sp.Matrix([[sp.sin(30),1],[sp.cos(30),0]]) F=sp.solve(eq) G
[sin(30)1cos(30)0]\left[\begin{matrix}\sin{\left (30 \right )} & 1\\\cos{\left (30 \right )} & 0\end{matrix}\right]
#Daria: #מטריצת המקדים אינה נכונה. המקדם של #F2 #הוא מינוס 1 #בשאלה זו הייתם צריכים להשתמש במטריצת המקדמים במקום במערכת המשוואות.
import sympy as sp G= sp.Matrix([[sp.sin(30),1],[sp.cos(30),0]]) G
[sin(30)1cos(30)0]\left[\begin{matrix}\sin{\left (30 \right )} & 1\\\cos{\left (30 \right )} & 0\end{matrix}\right]
import sympy as sp import matplotlib.pyplot as plt fig = plt.figure(figsize = (5,5)) plt.arrow(0, 0, 0.5, 0.5, head_width=0.05, head_length=0.1, fc='m', ec='m') plt.text(0.3,0.25, "$F_1$",fontsize = 15) plt.title('Force diagram') plt.show() F1,F2,m,a=sp.symbols("F1 F2 m a")
Image in a Jupyter notebook
#לא סיימתם את סעיף ד
שאלה 6 בוטלה
נגדיר את שני ווקטורי העמודה הבאים:
e1 = sp.Matrix([[1, 0]]).T e2 = sp.Matrix([[0, 1]]).T e1, e2
([10],[01])\left ( \left[\begin{matrix}1\\0\end{matrix}\right], \quad \left[\begin{matrix}0\\1\end{matrix}\right]\right )
7. הראו כי כל וקטור דו מימדי שרכיביו הם C1C_1 ו- C2C_2 ניתן לכתוב בצורה: C1e1+C2e2C_1\cdot e_1+C_2\cdot e_2.

הווקטורים e1e_1 ו- e2e_2 נקראים וקטורי יחידה כיוון שאורכיהם שווים ל-1.

מערכת הוקטורים הזאת מכונה בסיס פורס אורתונורמאלי – היא מורכבת מווקטורי יחידה המאונכים זה לזה.

e1 = sp.Matrix([[1, 0]]).T e2 = sp.Matrix([[0, 1]]).T c1,c2=sp.symbols("c1 c2") c = sp.Matrix([[c1,0],[0,c2]]) c[0,0]*e1+c[1,1]*e2
Matrix([ [c1], [c2]])

8.נתונה מערכת הצירים x-y\mbox{x-y} שבתמונה. הווקטורים e1e_1 ו-e2e_2 הם וקטורי יחידה במערכת הזאת.
א. מהו הכיוון של כל אחד מהווקטורים e1e_1 ו-e2e_2 במערכת הצירים x-y\mbox{x-y}? הסבירו למה הם מהווים בסיס אורתונורמאלי?
ב. מערכת הצירים x’-y’\mbox{x'-y'} מסובבת יחסית למערכת הצירים x-y בזווית θ\theta. נסמן ב-ii את וקטור היחידה המצביע לכיוון x’\mbox{x'} וב-jj את וקטור היחידה y’\mbox{y'}. בטאו את הוקטורים ii ו- jj באמצעות הוקטורים e1e_1 ו-e2e_2 ובאמצעות הזווית θ\theta


![axis-rotation](../data/images/axis_rotation.png)

![axis-rotation](../../data/images/axis_rotation.png)
"א.כיוון הווקטור אי1 הוא 90 מעלות מציר האיקס כנגד כיוון השעון, וכיוון הוקטור אי2 הוא ככיוון ציר האיקס מעלות מציר האיקס כנגד כיוון השעון והם מהווים בסיס אורתונורמאלי מכיוון שהם מאונכים זה לזה" import sympy as sp θ=sp.symbols("θ") i=(1,θ) j=(1,θ+90) i j
(1,θ+90)\left ( 1, \quad θ + 90\right )
הערות!!
א. לרוב האיבר הראשון מציין את x והשני מציין את yתקנו את תשובתכם.
ב. תשובתכם מוזרה. כדי להציג וקטור במערכת צירים צריך להשתמש בהיטלים של הוקטור באמצעות פונקציות טריגונומטריות. תקנו.
9. כעת נסתכל על מערכת הצירים x-y מנקודת מבטה של מערת הצירים המסובבת. הוקטורים ii ו-jj הם וקטורי היחידה המצביעים בכיוון x’\mbox{x'} ו-y’\mbox{y'}, ולכן מהווים מערכת אורתונורמאלית.
בטאו את הווקטורים e1e_1 ו- e2e_2 בעזרת ii ו- jj. וודאו שקיבלתם בחזרה את ההגדרה המקורית של e1e_1 ו-e2e_2.

רמז: כדאי מאוד להעתיק את הציור שלמעלה במחברת כפי שהוא פעם אחת, ופעם נוספת לסובב אותו כך שמערכת הצירים x’-y’\mbox{x'-y'} .תהייה מיושרת

e1=(1,0)#(1,θ-θ) e2=(1,90)#(1,90+θ-θ)
הערות!!
אותה הערה כמו לסעיך ב' בשאלה 8

שימו לב: אותו הוקטור יכול להיות מיוצג באופנים שונים במערכות צירים שונות באמצעות הבסיס הפורס המתאים

מטריצת הסיבוב

המטריצה R=(cos(θ)sin(θ)sin(θ)cos(θ)) R=\begin{pmatrix} \cos(\theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\theta) \\ \end{pmatrix} נקראת מטריצת הסיבוב . בהנתן וקטור המוגדר במערכת הצירים המקורית : v=(v1v2)v=\begin{pmatrix} v_1 \\ v_2 \end{pmatrix} נוכל למצוא כיצד ישתנה הוקטור עם נסובב אותו בזווית θ\theta בניגוד לכיוון השעון, באמצעות המכפלה Rv R\cdot v 10.הגדירו את המטריצה R ומיצאו באמצעותה את הוקטורים שיתקבלו אם נסובב את וקטורי היחידה e1e_1 ו-e2e_2 . בזווית θ\theta בניגוד לכיוון השעון. השוו את תשובתכם לשאלה 8.
import sympy as sp e1 = sp.Matrix([[1, 0]]).T e2 = sp.Matrix([[0, 1]]).T θ=sp.symbols("θ") R=sp.Matrix([[sp.cos(θ),-sp.sin(θ)],[sp.sin(θ),-sp.cos(θ)]]) e1R=R*e1 e1R e2R=R*e2 e2R R
[cos(θ)sin(θ)sin(θ)cos(θ)]\left[\begin{matrix}\cos{\left (θ \right )} & - \sin{\left (θ \right )}\\\sin{\left (θ \right )} & - \cos{\left (θ \right )}\end{matrix}\right]
הערות!!
מטריצת הסיבוב אינה מוגדרת נכון. שמתם לב שבהשוואה לשאלה 8 קיבלת תוצאות שונות?
11.הפעילו את מטריצת הסיבוב על הוקטור C
c1,c2=sp.symbols("c1 c2") c = sp.Matrix([[c1,0],[0,c2]]) R=sp.Matrix([[sp.cos(θ),-sp.sin(θ)],[sp.sin(θ),-sp.cos(θ)]]) R*c
[c1cos(θ)c2sin(θ)c1sin(θ)c2cos(θ)]\left[\begin{matrix}c_{1} \cos{\left (θ \right )} & - c_{2} \sin{\left (θ \right )}\\c_{1} \sin{\left (θ \right )} & - c_{2} \cos{\left (θ \right )}\end{matrix}\right]
12. חשבו את איברי המטריצה RR עבור θ=30o\theta=30^o
import sympy as sp θ=sp.symbols("θ") R=sp.Matrix([[sp.cos(θ),-sp.sin(θ)],[sp.sin(θ),-sp.cos(θ)]]) R=R.subs({θ:30}) R.simplify()
[cos(30)sin(30)sin(30)cos(30)]\left[\begin{matrix}\cos{\left (30 \right )} & - \sin{\left (30 \right )}\\\sin{\left (30 \right )} & - \cos{\left (30 \right )}\end{matrix}\right]
13. סובבו את ווקטורי הכוחות שחישבתם בשאלה 5 ב-30 מעלות בניגוד לכיוון השעון. צרו באותה מערכת הצירים את תרשים הכוחות המקורי ואת תרשים הכוחות המסובב, בצבעים שונים עבור המערכת המסובבת. האם קיבלתם את התוצאה הצפויה?
R=sp.Matrix([[sp.cos(30), -1 * sp.sin(30)],[sp.sin(30), -1 * sp.cos(30)]]) G= sp.Matrix([[sp.sin(30),1],[sp.cos(30),0]]) R*G
[0cos(30)cos2(30)+sin2(30)sin(30)]\left[\begin{matrix}0 & \cos{\left (30 \right )}\\- \cos^{2}{\left (30 \right )} + \sin^{2}{\left (30 \right )} & \sin{\left (30 \right )}\end{matrix}\right]
הערות!!
לא ציירתם תרשים כוחות כנדרש. לו ציירתם אותו הייתם רואים שיש בעיה במטריצת הסיבוב.

שאלת סיכום

1. חרק יושב במרחק dd ממרכזו של דיסק מסתובב. החרק נאחז טוב בדיסק ואינו מחליק. הדיסק מסתובב במהירות זוויתית קבועה ω\omega. השתמשו במטריצת הסיבוב כדי למצוא את מקומו של החרק בזמן tt יחסית לחדר (מערכת צירים שאינה מסתובבת). אפשר להניח שמקומו ההתחלתי של החרק הוא על ציר ה-x, כלומר r0=de1r_0=d*e1. 2. כעבור כמה זמן החרק יחזור למקומו המקורי? 3. השתמשו ב-matplotlib כדי לצייר את מסלולו של החרק על גבי מערכת צירים דו-מימדית במשך זמן מחזור שלם. דאגו שציר x וציר y יהיו בקנה מידה זהה. מהי צורת המסלול? 4. החרק מחליט להתקרב אל פירור עסיסי שנמצא במרכז הדיסק. לשם כך הוא מתחיל לנוע במהירות קווית קבועה vv אל עבר מרכז הדיסק (מנקודת ראותו של החרק הוא נע בקו ישר!). תוך כמה סיבובים של הדיסק החרק יגיע למרכז? 5. ציירו את מסלולו כעת.
import sympy as sp import matplotlib.pyplot as plt w,t,d=sp.symbols("w t d") θ=w*t/(2*sp.pi) R=sp.Matrix([[sp.cos(θ),-sp.sin(θ)],[sp.sin(θ),-sp.cos(θ)]]) R eq1 = sp.Eq(θ,2*sp.pi) tsolve = sp.solve(eq1,[t,w])[0][t] T=tsolve #4*pi**2/w e1 = sp.Matrix([[1, 0]]).T e2 = sp.Matrix([[0, 1]]).T r0=e1*d display(r0) T=T.subs({w:2}) r_list = [] vector1 = [] vector2 = [] for i in range(0,101): t = i/T θ = t * 360 / 180 * sp.pi R=sp.Matrix([[sp.cos(θ),-sp.sin(θ)],[sp.sin(θ),-sp.cos(θ)]]) r=R*r0.subs({d:3}) x=r[0]*e1 y=r[1]*e2 x=r[0]*e1 vector1.append(x[0]) vector2.append(y[1]) print(vector1) print(vector2) plt.figure(figsize=[5,5]) plt.plot(vector1, vector2) plt.xlabel('x') plt.ylabel('y') plt.grid(True) plt.show() for i in range(0,101): t = i/T θ = t * 360 / 180 * sp.pi R=sp.Matrix([[sp.cos(t),-sp.sin(t)],[sp.sin(t),-sp.cos(t)]]) r=R*r0.subs({d:3}) x=r[0]*e1 y=r[1]*e2 x = r[0,0]-sp.cos(θ)*t y = r[0,1]-sp.sin(θ)*t display(x,y) vector1.append(x[0]) vector2.append(y[1]) print(vector1) print(vector2) plt.figure(figsize=[5,5]) plt.plot(vector1, vector2) plt.xlabel('x') plt.ylabel('y') plt.grid(True) plt.show()
Matrix([ [d], [0]])
[3, 3*cos(1/pi), 3*cos(2/pi), 3*cos(3/pi), 3*cos(4/pi), 3*cos(5/pi), 3*cos(6/pi), 3*cos(7/pi), 3*cos(8/pi), 3*cos(9/pi), 3*cos(10/pi), 3*cos(11/pi), 3*cos(12/pi), 3*cos(13/pi), 3*cos(14/pi), 3*cos(15/pi), 3*cos(16/pi), 3*cos(17/pi), 3*cos(18/pi), 3*cos(19/pi), 3*cos(20/pi), 3*cos(21/pi), 3*cos(22/pi), 3*cos(23/pi), 3*cos(24/pi), 3*cos(25/pi), 3*cos(26/pi), 3*cos(27/pi), 3*cos(28/pi), 3*cos(29/pi), 3*cos(30/pi), 3*cos(31/pi), 3*cos(32/pi), 3*cos(33/pi), 3*cos(34/pi), 3*cos(35/pi), 3*cos(36/pi), 3*cos(37/pi), 3*cos(38/pi), 3*cos(39/pi), 3*cos(40/pi), 3*cos(41/pi), 3*cos(42/pi), 3*cos(43/pi), 3*cos(44/pi), 3*cos(45/pi), 3*cos(46/pi), 3*cos(47/pi), 3*cos(48/pi), 3*cos(49/pi), 3*cos(50/pi), 3*cos(51/pi), 3*cos(52/pi), 3*cos(53/pi), 3*cos(54/pi), 3*cos(55/pi), 3*cos(56/pi), 3*cos(57/pi), 3*cos(58/pi), 3*cos(59/pi), 3*cos(60/pi), 3*cos(61/pi), 3*cos(62/pi), 3*cos(63/pi), 3*cos(64/pi), 3*cos(65/pi), 3*cos(66/pi), 3*cos(67/pi), 3*cos(68/pi), 3*cos(69/pi), 3*cos(70/pi), 3*cos(71/pi), 3*cos(72/pi), 3*cos(73/pi), 3*cos(74/pi), 3*cos(75/pi), 3*cos(76/pi), 3*cos(77/pi), 3*cos(78/pi), 3*cos(79/pi), 3*cos(80/pi), 3*cos(81/pi), 3*cos(82/pi), 3*cos(83/pi), 3*cos(84/pi), 3*cos(85/pi), 3*cos(86/pi), 3*cos(87/pi), 3*cos(88/pi), 3*cos(89/pi), 3*cos(90/pi), 3*cos(91/pi), 3*cos(92/pi), 3*cos(93/pi), 3*cos(94/pi), 3*cos(95/pi), 3*cos(96/pi), 3*cos(97/pi), 3*cos(98/pi), 3*cos(99/pi), 3*cos(100/pi)] [0, 3*sin(1/pi), 3*sin(2/pi), 3*sin(3/pi), 3*sin(4/pi), 3*sin(5/pi), 3*sin(6/pi), 3*sin(7/pi), 3*sin(8/pi), 3*sin(9/pi), 3*sin(10/pi), 3*sin(11/pi), 3*sin(12/pi), 3*sin(13/pi), 3*sin(14/pi), 3*sin(15/pi), 3*sin(16/pi), 3*sin(17/pi), 3*sin(18/pi), 3*sin(19/pi), 3*sin(20/pi), 3*sin(21/pi), 3*sin(22/pi), 3*sin(23/pi), 3*sin(24/pi), 3*sin(25/pi), 3*sin(26/pi), 3*sin(27/pi), 3*sin(28/pi), 3*sin(29/pi), 3*sin(30/pi), 3*sin(31/pi), 3*sin(32/pi), 3*sin(33/pi), 3*sin(34/pi), 3*sin(35/pi), 3*sin(36/pi), 3*sin(37/pi), 3*sin(38/pi), 3*sin(39/pi), 3*sin(40/pi), 3*sin(41/pi), 3*sin(42/pi), 3*sin(43/pi), 3*sin(44/pi), 3*sin(45/pi), 3*sin(46/pi), 3*sin(47/pi), 3*sin(48/pi), 3*sin(49/pi), 3*sin(50/pi), 3*sin(51/pi), 3*sin(52/pi), 3*sin(53/pi), 3*sin(54/pi), 3*sin(55/pi), 3*sin(56/pi), 3*sin(57/pi), 3*sin(58/pi), 3*sin(59/pi), 3*sin(60/pi), 3*sin(61/pi), 3*sin(62/pi), 3*sin(63/pi), 3*sin(64/pi), 3*sin(65/pi), 3*sin(66/pi), 3*sin(67/pi), 3*sin(68/pi), 3*sin(69/pi), 3*sin(70/pi), 3*sin(71/pi), 3*sin(72/pi), 3*sin(73/pi), 3*sin(74/pi), 3*sin(75/pi), 3*sin(76/pi), 3*sin(77/pi), 3*sin(78/pi), 3*sin(79/pi), 3*sin(80/pi), 3*sin(81/pi), 3*sin(82/pi), 3*sin(83/pi), 3*sin(84/pi), 3*sin(85/pi), 3*sin(86/pi), 3*sin(87/pi), 3*sin(88/pi), 3*sin(89/pi), 3*sin(90/pi), 3*sin(91/pi), 3*sin(92/pi), 3*sin(93/pi), 3*sin(94/pi), 3*sin(95/pi), 3*sin(96/pi), 3*sin(97/pi), 3*sin(98/pi), 3*sin(99/pi), 3*sin(100/pi)]
Image in a Jupyter notebook
--------------------------------------------------------------------------- IndexError Traceback (most recent call last) /ext/anaconda3/lib/python3.5/site-packages/sympy/matrices/dense.py in __getitem__(self, key) 96 try: ---> 97 i, j = self.key2ij(key) 98 return self._mat[i*self.cols + j] /ext/anaconda3/lib/python3.5/site-packages/sympy/matrices/matrices.py in key2ij(self, key) 2854 return [a2idx(i, n) if not isinstance(i, slice) else i -> 2855 for i, n in zip(key, self.shape)] 2856 elif isinstance(key, slice): /ext/anaconda3/lib/python3.5/site-packages/sympy/matrices/matrices.py in <listcomp>(.0) 2854 return [a2idx(i, n) if not isinstance(i, slice) else i -> 2855 for i, n in zip(key, self.shape)] 2856 elif isinstance(key, slice): /ext/anaconda3/lib/python3.5/site-packages/sympy/matrices/matrices.py in a2idx(j, n) 4017 if not (j >= 0 and j < n): -> 4018 raise IndexError("Index out of range: a[%s]" % j) 4019 return int(j) IndexError: Index out of range: a[1] During handling of the above exception, another exception occurred: IndexError Traceback (most recent call last) <ipython-input-7-7b411d200dd6> in <module>() 44 y=r[1]*e2 45 x = r[0,0]-sp.cos(θ)*t ---> 46 y = r[0,1]-sp.sin(θ)*t 47 display(x,y) 48 vector1.append(x[0]) /ext/anaconda3/lib/python3.5/site-packages/sympy/matrices/dense.py in __getitem__(self, key) 119 else: 120 j = [j] --> 121 return self.extract(i, j) 122 else: 123 # row-wise decomposition of matrix /ext/anaconda3/lib/python3.5/site-packages/sympy/matrices/common.py in extract(self, rowsList, colsList) 331 # ensure everything is in range 332 rowsList = [a2idx(k, self.rows) for k in rowsList] --> 333 colsList = [a2idx(k, self.cols) for k in colsList] 334 335 return self._eval_extract(rowsList, colsList) /ext/anaconda3/lib/python3.5/site-packages/sympy/matrices/common.py in <listcomp>(.0) 331 # ensure everything is in range 332 rowsList = [a2idx(k, self.rows) for k in rowsList] --> 333 colsList = [a2idx(k, self.cols) for k in colsList] 334 335 return self._eval_extract(rowsList, colsList) /ext/anaconda3/lib/python3.5/site-packages/sympy/matrices/common.py in a2idx(j, n) 2278 j += n 2279 if not (j >= 0 and j < n): -> 2280 raise IndexError("Index out of range: a[%s]" % (j,)) 2281 return int(j) 2282 IndexError: Index out of range: a[1]