Метод квадратних коренів

170 days ago by semerikov

#auto html('<h1>Метод квадратних коренів</h1>') @interact def KvadratnieKorni( m=slider(vmin=2, vmax=6, step_size=1, label="Розмірність системи рівнянь :", default=3)): n=m LT=[] for i in range(m): for j in range(n): if i>j: LT.append( var('a%s%s'%(j+1,i+1)) ) else: LT.append( var('a%s%s'%(i+1,j+1)) ) A = matrix(m,n,LT) x=matrix(n,1,var(",".join("x%s"%(i+1) for i in range(n)))) y=matrix(n,1,var(",".join("y%s"%(i+1) for i in range(n)))) b=matrix(n,1,var(",".join("b%s"%(i+1) for i in range(m)))) s="$\\left \\{ \\begin{eqnarray}" for i in range(m): s=s+"%s=%s \\\\"%(latex((A*x)[i][0]),latex(b[i][0])) s=s+"\\end{eqnarray} \\right." html("</pre>Система рівнянь:<br>"+s) html("<p>Матриця коефіцієнтів: <b>A</b>=$%s$"%latex(A)) html("<p>Вектор невідомих: <b><i>x</i></b>=$%s$"%latex(x)) html("<p>Вектор вільних коефіцієнтів: <b><i>b</i></b>=$%s$"%latex(b)) LT=[] for i in range(m): for j in range(n): if i>j: LT.append(0) else: LT.append( var('t%s%s'%(i+1,j+1)) ) T = matrix(m,n,LT) html("<p>Трикутні матриці: <b>T</b>=$%s$, <b>T</b><i><sup>T</sup></i>=$%s$<br>"%(latex(T),latex(T.transpose()))) systema=[] s="$\\left \\{ \\begin{eqnarray}" for i in range(m): for j in range(n): if i<=j: s=s+"%s=%s \\\\"%(latex((T*T.transpose())[i][j]),latex(A[i][j])) systema=systema+[(T*T.transpose())[i][j]==A[i][j]] s=s+"\\end{eqnarray} \\right." html("</pre>Система рівнянь:<br>"+s) LT=[] for k in T.list(): if k!=0: LT.append(k) sol=solve(systema,LT)[0] LT=[] s='' index=0 for i in range(m): for j in range(n): if i>j: LT.append(0) else: k=sol[index] index=index+1 s+='$'+latex(k)+'$'+"<br>" LT.append(k.rhs()) T = matrix(m,n,LT) html("<br></pre>Розв'язок:<br>"+s) systema=[] s="$\\left \\{ \\begin{eqnarray}" for i in range(m): s=s+"%s=%s \\\\"%(latex((T.transpose()*y)[i][0]),latex(b[i][0])) systema=systema+[(T.transpose()*y)[i][0]==b[i][0]] s=s+"\\end{eqnarray} \\right." html("</pre>Система рівнянь для <b>T<i></b><sup>T</sup><b></i><i>y=b</i></b>:<br>"+s) sol=solve(systema,y.list())[0] s='' for k in sol: s+='$'+latex(k)+'$'+"<br>" html("<br></pre>Розв'язок:<br>"+s) s="$\\left \\{ \\begin{eqnarray}" for i in range(m): s=s+"%s=%s \\\\"%(latex((T*x)[i][0]),latex(y[i][0])) s=s+"\\end{eqnarray} \\right." html("</b><br></pre>Система рівнянь для <b>T<i>x=y</i></b>:<br>"+s) LT=[] for k in sol: LT.append(k.rhs()) y=matrix(n,1,LT) systema=[] for i in range(m): systema=systema+[(T*x)[i][0]==y[i][0]] sol=solve(systema,x.list())[0] s='' for k in sol: s+='$'+latex(k)+'$'+"<br>" html("<br></pre>Остаточний розв'язок :<br>"+s) 
       

Метод квадратних коренів

Розмірність системи рівнянь : 

Click to the left again to hide and once more to show the dynamic interactive window