︠77001225-4a98-408b-bb80-798e1a18151ai︠ %md # Matrix ring over finite ring http://doc.sagemath.org/html/en/constructions/rings.html#matrix-rings ︡ebdc2591-924d-493a-9cdf-6830b7fb6ee1︡︡{"done":true,"md":"# Matrix ring over finite ring\n\nhttp://doc.sagemath.org/html/en/constructions/rings.html#matrix-rings"} ︠8a70e0e9-7862-4845-918c-a80ab3b3467d︠ R = IntegerModRing(10) R ︡014a4b2b-39f7-4f02-9b20-26efdd8be64f︡︡{"stdout":"Ring of integers modulo 10\n","done":false}︡{"done":true} ︠afd11000-0fd4-42c7-9c8e-ca4ec6a89764︠ M = MatrixSpace(R, 4, 4) M ︡360f7254-6426-41a5-a213-a69b552ec897︡︡{"stdout":"Full MatrixSpace of 4 by 4 dense matrices over Ring of integers modulo 10\n","done":false}︡{"done":true} ︠4e6a6ec2-ce71-47b8-898b-aef45dcfcd4ei︠ %md notice, that 99 ends up being 9 ︡847dd27d-385c-485c-8a86-bbea75103857︡︡{"done":true,"md":"notice, that 99 ends up being 9"} ︠fea8b948-663d-4f5f-8d98-e31357ce6c91︠ m = M([[1, 2, 3, 4], [4, 1,99, 1], [0, 8, 1, 8], [0, 0, 1, 2]]) m ︡60b3b068-9c1e-4364-acd0-1d5c11862c10︡︡{"stdout":"[1 2 3 4]\n[4 1 9 1]\n[0 8 1 8]\n[0 0 1 2]\n","done":false}︡{"done":true} ︠9005cd4b-9f92-4b08-98da-58569cafe3c6︠ m - 1 ︡2692b7c0-d9a8-4147-8cb9-87bf9aa1fcaf︡︡{"stdout":"[0 2 3 4]\n[4 0 9 1]\n[0 8 0 8]\n[0 0 1 1]\n","done":false}︡{"done":true} ︠f3593128-2fac-4670-9d51-85dd51151f44︠ m + m ︡65797a3d-b4fd-4cfb-8787-11794d732ced︡︡{"stdout":"[2 4 6 8]\n[8 2 8 2]\n[0 6 2 6]\n[0 0 2 4]\n","done":false}︡{"done":true} ︠5f0f3317-6015-4595-b3e5-eff8133865a9︠ m * m ︡7c0debe8-586b-468d-9058-465f7a67c84d︡︡{"stdout":"[9 8 8 8]\n[8 1 1 1]\n[2 6 1 2]\n[0 8 3 2]\n","done":false}︡{"done":true} ︠749e0a3a-4c8b-426f-92e1-a82d08915930︠ m^3 ︡be302555-1d03-4f07-84cd-010ceb0977d7︡︡{"stdout":"[1 0 5 4]\n[2 5 5 3]\n[6 8 3 6]\n[2 2 7 6]\n","done":false}︡{"done":true} ︠1c76d07d-bead-45aa-84eb-c167b451bd96︠ M(1) ︡f1720d29-44f8-4f37-8e80-bad7714b9d26︡︡{"stdout":"[1 0 0 0]\n[0 1 0 0]\n[0 0 1 0]\n[0 0 0 1]\n","done":false}︡{"done":true} ︠7e2b9fd6-4f47-409b-af02-ae50bbb23982︠ 2 * m + 9 * M(1) ︡b9fc2762-f0f8-41a1-b81a-598d2ac4353c︡︡{"stdout":"[1 4 6 8]\n[8 1 8 2]\n[0 6 1 6]\n[0 0 2 3]\n","done":false}︡{"done":true} ︠b10b6db3-a34b-4a9c-aefc-36b3fc7c07f7︠ m2 = m.apply_map(lambda x : 2*x + 1) m2 ︡596157c5-0d97-4ea9-a4c2-153bee419ecc︡︡{"stdout":"[3 5 7 9]\n[9 3 9 3]\n[1 7 3 7]\n[1 1 3 5]\n","done":false}︡{"done":true} ︠835fa8f6-ea87-4115-bd9d-1efccc492da1︠ m3 = 2 * m + M(1) - m2 m3 ︡4c44c719-db41-4673-bab5-b2ec503ef9fa︡︡{"stdout":"[0 9 9 9]\n[9 0 9 9]\n[9 9 0 9]\n[9 9 9 0]\n","done":false}︡{"done":true} ︠9a268092-79bc-4fee-8361-7cf43c1a6736︠ m3.is_symmetric() ︡006b37c9-975d-4ebf-a098-a468091ab1c3︡︡{"stdout":"True\n","done":false}︡{"done":true}