#auto
def nicedet(M):
s="$\\left|\\begin{array}{ccc} "
for i in range(M.nrows()):
for j in range(M.ncols()):
s=s+" "+latex(M[i,j])
if j!=M.ncols()-1:
s=s+"&"
s=s+"\\\\"
s=s+"\\end{array}\\right|$"
return s
x1,x2,x3=var("x1,x2,x3")
@interact
def mkr1(numvar = input_box(default=11, label="Кількість варіантів")):
answers=[]
for var in range(numvar):
html("</pre><center><font size=+2>Варіант %s</font></center>"%(var+1))
A=matrix(QQ,3,3)
for i in range(3):
for j in range(3):
A[i,j]=randint(-5,5)
answers.append(det(A))
html("<p>1. Обчисліть визначник %s, використовуючи: "%nicedet(A))
html("а) правило трикутників; ")
html("б) метод розкладання визначника за елементами деякого рядка або стовпця; ")
html("в) метод зведення до трикутного вигляду.<br>")
html("<p>2. Обчисліть добуток <b>AB</b> та <b>BA</b>:<br>")
A=matrix(QQ,randint(1,3),randint(1,3))
for i in range(A.nrows()):
for j in range(A.ncols()):
A[i,j]=randint(-5,5)
B=matrix(QQ,randint(1,3),randint(1,3))
for i in range(B.nrows()):
for j in range(B.ncols()):
B[i,j]=randint(-5,5)
html("<b>A</b>=$%s$, <b>B</b>=$%s$"%(latex(A),latex(B)))
try:
res=A*B
except:
res="Добуток AB не існує"
answers.append(res)
try:
res=B*A
except:
res="Добуток BA не існує"
answers.append(res)
A=matrix(QQ,3,3)
for i in range(3):
for j in range(3):
A[i,j]=randint(-5,5)
try:
res=A^-1
except:
res="Обернена матриця не існує"
answers.append(res)
html("<p>3. Знайдіть матрицю, обернену до $%s$:<br>"%latex(A))
html("<p>а) за допомогою алгебраїчних доповнень;<br>")
html("<p>б) методом Гауса.<br>")
html("<p>4. Розв'яжіть матричне рівняння: <b>ABX=C</b>:<br>")
A=matrix(QQ,2,2)
for i in range(A.nrows()):
for j in range(A.ncols()):
A[i,j]=randint(-5,5)
B=matrix(QQ,2,2)
for i in range(B.nrows()):
for j in range(B.ncols()):
B[i,j]=randint(-5,5)
C=matrix(QQ,2,2)
for i in range(C.nrows()):
for j in range(C.ncols()):
C[i,j]=randint(-5,5)
html("<b>A</b>=$%s$, <b>B</b>=$%s$, <b>C</b>=$%s$<br>"%(latex(A),latex(B),latex(C)))
try:
res=((A*B)^-1)*C
except:
res="Матричне рівняння нерозв'язне"
answers.append(res)
res=[randint(-5,5),randint(-5,5),randint(-5,5)]
k=vector(res)
A=matrix(QQ,3,3)
for i in range(A.nrows()):
for j in range(A.ncols()):
A[i,j]=randint(-5,5)
a=randint(-5,5)
b=randint(-5,5)
c=randint(-5,5)
f=a*x^2+b*x+c
html("<p>5. Обчисліть $f($<b>A</b>$)$, якщо <b>A</b>=$%s$, $f(x)=%s$<br>"%(latex(A),latex(f)))
answers.append(a*A^2+b*A+c)
html("<p>6. Розв'яжіть систему рівнянь: ")
html("а) методом Крамера; ")
html("б) методом оберненої матриці; ")
html("в) методом Гауса.<br>")
res=[randint(-5,5),randint(-5,5),randint(-5,5)]
k=vector(res)
answers.append(k)
A=matrix(QQ,3,3)
for i in range(A.nrows()):
for j in range(A.ncols()):
A[i,j]=randint(-5,5)
B=matrix(QQ,3,1)
for i in range(A.nrows()):
for j in range(A.ncols()):
B[i,0]=B[i,0]+A[i,j]*res[j]
L=[x1,x2,x3]
X=matrix(3,1,L)
s="$\\left \\{ \\begin{eqnarray}"
for i in range(3):
s=s+"%s=%s \\\\"%(latex((A*X)[i][0]),latex(B[i][0]))
s=s+"\\end{eqnarray} \\right.$"
html(s)
html("<hr>")
html("<p><p><p><p><p><p><p><p>")
for var in range(numvar):
html("<p><b>Варіант %s</b>: "%(var+1))
html("1. $%s$; 2. <b>AB</b>=$%s$, <b>BA</b>=$%s$; 3. $%s$; 4. $%s$; 5. $%s$; 6. $%s$"% \
(latex(answers[var*7+0]),\
latex(answers[var*7+1]), latex(answers[var*7+2]), latex(answers[var*7+3]), latex(answers[var*7+4]), \
latex(answers[var*7+5]), latex(answers[var*7+6])))
|
|
Click to the left again to hide and once more to show the dynamic interactive window
|