Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

ارائه‌دهنده: فاطمه توانگر

Liknende presentasjoner


Presentasjon om: "ارائه‌دهنده: فاطمه توانگر"— Utskrift av presentasjonen:

1 ارائه‌دهنده: فاطمه توانگر
بسمه تعالی ماتریس ها در نرم‌افزار Sage استاد مربوطه: جناب آقای دکتر محمد فرشی ارائه‌دهنده: فاطمه توانگر

2 بردار تعریف بردار W=vector ([1,1,-4]) تعریف بردار روی فضای گویا
U=vector (QQ,[1,3/2,-1]) V=vector (ZZ,[1,8,-2]) معرفی بردار روی فضای گویا با بعد 3 r3 =Vector Space (QQ,3) P= r3([5,6,8])

3 فراخوانی مؤلفه‌ها و دستکاری عناصر بردار
نمایش مولفه های بردار و ماتریس وقتی بعد ماتریس بزرگ باشد “U=” + str (U) تغییر مقدار مولفه دوم بردار U[2]= numerical – approx (pi, digits=5) فراخوانی مؤلفه 0 ام بردار: U[0]=18 فراخوانی مولفه 0تا(1-2)بردار U[0:2] تعداد عناصر در بردار Len (U) اطلاعات در مورد بردار V به ما می‌دهد V . parent()

4 عملیات روی بردارها U.dot- product (V) U.inner- product (V)
جمع دو بردار V+U ترکیب خطی var(‘a,b’) a*U+b*V ضرب عدد در بردار 7 * V ضرب داخلی U,V با سه روش V * U U.dot- product (V) U.inner- product (V) ضرب خارجی بردار U,V U.cross- product (V) ضرب دو به دو یا دوتایی U.pairwise- product (V)

5 محاسبه نرم در بردار محاسبه نرم دو نرم 1 یا مجموع مؤلفه‌ها
V.norm() نرم 1 یا مجموع مؤلفه‌ها V.norm(1) نرم بی‌نهایت یا max مؤلفه V.norm(Infinity) محاسبه نرم 3 V.norm(3)

6 ماتریس تعريف ماتريس A = Matrix([[1,2,3],[3,2,1],[1,1,1]])
w = vector([1,1,-4]) عمل ضرب، منها و جمع P=A*w S=A+A P=A-A

7 ساخت ماتريس ماتريس 2 در 3 روي حلقه اعداد صحيح ,6]]) 5A = matrix(ZZ, [[1,2],[3,4],[ ماتريس 2 در 3 روي حلقه اعداد گويا (دوتا دوتا برمي دارد) B = matrix(QQ, 2, [ 1,2,3,4,5,6]) ماتريس دو در دو روي اعداد مختلط با دقت 53 بيت C = matrix(CDF, 2, 2, [[5*I, 4*I], [I,6]]) ماتريس 2 در 2 صفر روي حلقه اعداد صحيح Z = matrix(QQ, 2, 2,0) ماتريس قطري دو در دو با عناصر قطري هشت و بقيه صفر D = matrix(QQ, 2, 2,8) ماتريس بلوكي E = block_matrix([[P,0],[1,R]]), ماتريس هماني با بعد5 II = identity_matrix(5) توجه شود I براي مولفه موهومي اعداد مختلط به كار مي رود ماتريس سه قطري 3 بعدي با عناصر قطري - 2 و بالا و پايين قطر برابر 1 J = jordan_block(-2,3) ماتريس با عناصر متغير var('x y z'); K = matrix(SR, [[x,y+z],[0,x^2*z]]) ماتريس تنك 20 در 80 با تعيين دو درايه L = matrix(ZZ, 20, 80, {(5,9):30, (15,77):-6})

8 عمليات روي ماتريس ها خود بردار را طوری در نظر میگیرد که قابلیت ضرب در ماتریس را داشته باشد.نیازی به استفاده از ترانهاده در بردار نیست A*v v*A A.iterates(v,6) == vB0, vB1, vB2 ,vB3 ,vB4, vB5 محاسبه توان ماتريس A.exp() A.inverse()==A^(-1) ترانهاده A.transpose() مزدوج A.conjugate() A.conjugate_transpose() A.antitranspose() الحاق ماتريس A.adjoint()

9 عمليات سطري ستوني ضرب يك سطر در عددي ثابت A.rescale_row(i,a)
اضافه كردن مضربي از يك سطر به سطر ديگر A.add_multiple_of_row(i,j,a) جابه جايي دو سطر A.swap_rows(i,j) فرم اقليدسي ماتريس(ماتریس را به شکل ماتریس پلکانی تبدیل میکند) A.echelon_form()

10 اجزاء ماتريس درايه مرتبط از ماتريس A[i,j] سطر مربوطه A[i]
A.row(i) ستون مربوطه از ماتريس A.column(j) تبديل ماتريس به يك بردار سطري با اولويت سطرها A.list() ماتريس جديد كه از ستونهاي ذكر شده از ماتريس قبلی تشکیل میشود. A.matrix_from_columns([8,2,8]) ماتريس جديد كه از سطرهاي ذكر شده از ماتريس قبلي تشکیل میشود. A.matrix_from_rows([2,5,1]) A.matrix_from_rows_and_columns([2,4,2],[3,1]) ماتريس جديد كه به ترتيب از سطرها و ستونهاي ذكر شده از ماتريس قبل ي تشكيل مي شود سطرها به صورت يك بردار در كنار هم مي آيند A.rows() سطرها به صورت يك بردار در كنار هم مي آيند A.columns() ماتريس جديد با شروع از دو عدد اول و با بعد از دو عدد دوم A.submatrix(i,j,nr,nc) اجزاء ماتريس

11 تركيب ماتريس ها و توابع عددي روي ماتريس
قرار دادن دو ماتريس در كنار هم و ايجاد ماتريس جديد A.augment(B) قرار دادن دو ماتريس روي هم و ايجاد ماتريس جديد A.stack(B) قرار دادن دو ماتريس به صورت بلوكي در عناصر قطري ماتريس هماني 2 در 2 و ايجاد ماتريس جديد A.block_sum(B) ضرب تانسوري دو ماتريس A.tensor_product(B) بعد ماتريسA.rank(), دترمينان A.determinant() == A.det() پرمننت A.permanent(), رد يك ماتريس A.trace()

12 سوالاتي در مورد خصوصيات ماتريس
صفر بودن .is_zero() تقارني بودن .is_symmetric() هرميتي بودن .is_hermitian(); مربعي بودن .is_square() متعامد بودن .is_orthogonal() يكه بودن .is_unitary() منفرد بودن .is_singular() معكوس پذير بودن .is_invertible() يك بودن .is_one() قطري پذير بودن .is_diagonalizable()

13 مقادير و بردارهاي وِيژه
A.charpoly('t')==A.characteristic_polynomial() == A.charpoly() چند جمله مشخصه ماتريس با متغير تعيين شده چند جمله مشخصه ماتريس با متغير تعيين شده به صورت فاكتور شده A.fcp('t') چندجمله اي مينيمم A.minpoly() A.minimal_polynomial() == A.minpoly() بردارهاي ويژه چپ A.eigenvalues() ليست مقادير ويژه وبردار ويژه مربوطه با ذكر تكرار A.eigenvectors_left() ماتريس ويژه (طیفی) A.eigenmatrix_right()

14 تجزيه فرم جردن A.jordan_form(transformation=True)
تجزيه اسميت A.smith_form() تجزیه LU A.LU() تجزيه SVD A.SVD() تجزيه شور A.schur() A.rational_form() فرم متقارن A.symplectic_form() فرم هسنبرگ A.hessenberg_form()

15 محاسبات براي حل دستگاه AX=Y نيز از دستور زير استفاده خواهيم كرد Y=vector([-1,1,0]) A=matrix(3,3,[1,2,3,4,5,6,7,8,9]) X=A.solve_right(Y) یا بصورت ساده تر A\Y َ اگر پاسخي براي دستگاه وجود نداشته باشد عبارت زير را خواهيم داشت Traceback (most recent call last): ... ValueError: matrix equation has no solutions براي حل دستگاه XA=Y نيز از دستور زير استفاده خواهيم كرد X=A.solve_left(Y)

16 آشنایی با ماتریس تنک ماتریسی را تنک می نامیم که تعداد مولفه های صفر آن زیاد باشد در مورد ذخیره سازی ماتریسهای بزرگ،تنک بودن این مزیت را دارد ک میتوان تنها مولفه های ناصفرش را ذخیره کرد.که در این نرم افزار نیز با ترتیب لغت نامه ای عناصر ناصفر را ذخیره میکند.در این نرم افزار معرفی ماتریس به شکل تنک تنها در شکل ذخیره سازی متفاوت است به عبارتی حتی اگر ماتریسی که هیچ یک از درایه های آن صفر نیست اگر به شکل ماتریس تنک تعریف شود هیچ خطایی ظاهر نمیشود و تنها شکل ذخیره سازیش متفاوت میشود.البته معرفی ماتریس به شکل ماتریس تنک سرعت را خیلی پایین می آورد در نتیجه توصیه میشود ماتریسهای تنک با بعد پایین به شکل عادی تعریف شوند.نکته دیگر اینکه این نرم افزار هیچ ماتریسی را به صورت خودکار به شکل تنک ذخیره نمیکند مگر اینکه به صورت تنک تعریف شود

17 ماتريس تنك و چگال M = MatrixSpace(QQ, 100, sparse=True)
A = M.random_element(density = 0.05) چگال بودن ماتريس .is_dense() تنك بودن ماتريس .is_sparse() برگرداندن ماتريسي تنك از ماتريس داده شده A.sparse_matrix() برگرداندن بردارهاي سطري چگال ماتريس A.dense_rows() میزان چگال بودن ماتریس A.density()

18


Laste ned ppt "ارائه‌دهنده: فاطمه توانگر"

Liknende presentasjoner


Annonser fra Google