Algebra-with-Python/各章代码/chapt03.ipynb

323 lines
7.5 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "1030c7c5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[210100/12907]\n",
" [188400/12907]\n",
" [183300/12907]\n",
" [223400/12907]]\n"
]
}
],
"source": [
"#例3-3\n",
"import numpy as np\n",
"from fractions import Fraction as F\n",
"np.set_printoptions(formatter={'all':lambda x:\n",
" str(F(x).limit_denominator())})\n",
"A=np.array([[9,-2,0,-1],\n",
" [-2,12,-3,0],\n",
" [0,-3,15,-4],\n",
" [-1,0,-4,10]])\n",
"b=np.array([100,100,100,100])\n",
"X=np.linalg.solve(A, b)\n",
"print(X.reshape(4,1))"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "bda4b172",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[1]\n",
" [0]]\n"
]
}
],
"source": [
"#练习3-2\n",
"import numpy as np\n",
"from fractions import Fraction as F\n",
"np.set_printoptions(formatter={'all':lambda x:\n",
" str(F(x).limit_denominator())})\n",
"A=np.array([[1,2],\n",
" [2,5]])\n",
"b=np.array([1,2])\n",
"X=np.linalg.solve(A, b)\n",
"print(X.reshape(2,1))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "4f8fd56a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[1 0 0 5]\n",
" [0 1 0 0]\n",
" [0 0 1 3]]\n",
"3\n",
"[0 1 2]\n"
]
}
],
"source": [
"#例3-7、例3-8\n",
"import numpy as np\n",
"from utility import rowLadder,simplestLadder\n",
"A=np.array([[1,-1,-1],\n",
" [2,-1,-3],\n",
" [3,2,-5]],dtype='float')\n",
"b=np.array([2,1,0])\n",
"B=np.hstack((A,b.reshape(3,1)))\n",
"rank, order=rowLadder(B,3,3)\n",
"simplestLadder(B,rank)\n",
"print(B)\n",
"print(rank)\n",
"print(order)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "95fe7f86",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[1 0 0 -1 4]\n",
" [0 1 0 -1 3]\n",
" [0 0 1 0 -3]\n",
" [0 0 0 0 0]]\n",
"3\n",
"[0 1 3 2]\n"
]
}
],
"source": [
"#练习3-6、练习3-7\n",
"import numpy as np\n",
"from utility import rowLadder,simplestLadder\n",
"from fractions import Fraction as F\n",
"A=np.array([[2,-1,-1,1],\n",
" [1,1,-2,1],\n",
" [4,-6,2,-2],\n",
" [3,6,-9,7]],dtype='float')\n",
"b=np.array([2,4,4,9])\n",
"B=np.hstack((A,b.reshape(4,1)))\n",
"rank, order=rowLadder(B,4,4)\n",
"simplestLadder(B,rank)\n",
"print(B)\n",
"print(rank)\n",
"print(order)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "94bd3eb3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[0 3/17 -13/17]\n",
" [0 19/17 -20/17]\n",
" [0 1 0]\n",
" [0 0 1]]\n",
"[[0 2 5/3]\n",
" [0 -2 -4/3]\n",
" [0 1 0]\n",
" [0 0 1]]\n"
]
}
],
"source": [
"#例3-13、练习3-12\n",
"import numpy as np\n",
"from utility import mySolve\n",
"from fractions import Fraction as Q\n",
"np.set_printoptions(formatter=\n",
" {'all':lambda x:str(Q(x).limit_denominator())})\n",
"A=np.array([[3,4,-5,7],\n",
" [2,-3,3,-2],\n",
" [4,11,-13,16],\n",
" [7,-2,1,3]],dtype='float')\n",
"b=np.array([0,0,0,0])\n",
"s=mySolve(A,b)\n",
"print(s)\n",
"A=np.array([[1,2,2,1],\n",
" [2,1,-2,-2],\n",
" [1,-1,-4,-3]],dtype='float')\n",
"b=np.array([0,0,0])\n",
"s=mySolve(A,b)\n",
"print(s)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "0cb4577c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[5]\n",
" [0]\n",
" [3]]\n",
"[[1]\n",
" [0]\n",
" [0]]\n"
]
}
],
"source": [
"#例3-14、练习3-13\n",
"import numpy as np\n",
"from utility import mySolve,Q\n",
"np.set_printoptions(formatter=\n",
" {'all':lambda x: str(Q(x).limit_denominator())})\n",
"A=np.array([[1,-1,-1], #系数矩阵\n",
" [2,-1,-3],\n",
" [3,2,-5]],dtype='float')\n",
"b=np.array([2,1,0]) #常数矩阵\n",
"s=mySolve(A,b)\n",
"print(s)\n",
"A=np.array([[1,2,3], #系数矩阵\n",
" [2,1,5],\n",
" [3,5,1]],dtype='float')\n",
"b=np.array([1,2,3]) #常数矩阵\n",
"s=mySolve(A,b)\n",
"print(s)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "da97b208",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[]\n",
"[]\n"
]
}
],
"source": [
"#例3-15、练习3-14\n",
"import numpy as np\n",
"from utility import Q\n",
"from utility import mySolve\n",
"np.set_printoptions(formatter={'all':lambda x: str(Q(x).limit_denominator())})\n",
"A=np.array([[4,2,-1], #系数矩阵\n",
" [3,-1,2],\n",
" [11,3,0]],dtype='float')\n",
"b=np.array([2,10,8]) #常数矩阵\n",
"s=mySolve(A,b)\n",
"print(s)\n",
"A=np.array([[1,-2,3,-1], #系数矩阵\n",
" [3,-1,5,-3],\n",
" [2,1,2,-2]],dtype='float')\n",
"b=np.array([1,2,3]) #常数矩阵\n",
"s=mySolve(A,b)\n",
"print(s)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "c2245d03",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[1/2 1/2 -1/2]\n",
" [0 0 1]\n",
" [0 1 0]\n",
" [0 0 0]]\n",
"[[6/7 1/7 1/7]\n",
" [-5/7 5/7 -9/7]\n",
" [0 1 0]\n",
" [0 0 1]]\n"
]
}
],
"source": [
"#例3-16、练习3-15\n",
"import numpy as np\n",
"from utility import Q\n",
"from utility import mySolve\n",
"np.set_printoptions(formatter={'all':lambda x: str(Q(x).limit_denominator())})\n",
"A=np.array([[2,1,-1,1],\n",
" [4,2,-2,1],\n",
" [2,1,-1,-1]],dtype='float')\n",
"b=np.array([1,2,1])\n",
"s=mySolve(A,b)\n",
"print(s)\n",
"A=np.array([[2,1,-1,1],\n",
" [3,-2,1,-3],\n",
" [1,4,-3,5]],dtype='float')\n",
"b=np.array([1,4,-2])\n",
"s=mySolve(A,b)\n",
"print(s)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bb11d5b1",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}