Code:
private void buttonKrilovIzracunaj_Click(object sender, System.EventArgs e)
{
matKkolone[0,r] = 1;
for (int i = 1; i<=r; i++)
{
matKkolone[i,r] = 0;
}
for (int i = 0; i<=r;i++)
{
matKkolone[i,r-1] = matKrilov[i,0];
}
if (r==2)//3x3 matrica
{
matKkolone[0,0] = matKrilov[0,0]*matKkolone[0,1] + matKrilov[0,1]*matKkolone[1,1] + matKrilov[0,2]*matKkolone[2,1];
matKkolone[1,0] = matKrilov[1,0]*matKkolone[0,1] + matKrilov[1,1]*matKkolone[1,1] + matKrilov[1,2]*matKkolone[2,1];
matKkolone[2,0] = matKrilov[2,0]*matKkolone[0,1] + matKrilov[2,1]*matKkolone[1,1] + matKrilov[2,2]*matKkolone[2,1];
matKkolone[0,3] = matKrilov[0,0]*matKkolone[0,0] + matKrilov[0,1]*matKkolone[1,0] + matKrilov[0,2]*matKkolone[2,0];
matKkolone[1,3] = matKrilov[1,0]*matKkolone[0,0] + matKrilov[1,1]*matKkolone[1,0] + matKrilov[1,2]*matKkolone[2,0];
matKkolone[2,3] = matKrilov[2,0]*matKkolone[0,0] + matKrilov[2,1]*matKkolone[1,0] + matKrilov[2,2]*matKkolone[2,0];
}
else//4x4
{
matKkolone[0,1] = matKrilov[0,0]*matKkolone[0,2] + matKrilov[0,1]*matKkolone[1,2] + matKrilov[0,2]*matKkolone[2,2] + matKrilov[0,3]*matKkolone[3,2];
matKkolone[1,1] = matKrilov[1,0]*matKkolone[0,2] + matKrilov[1,1]*matKkolone[1,2] + matKrilov[1,2]*matKkolone[2,2] + matKrilov[1,3]*matKkolone[3,2];
matKkolone[2,1] = matKrilov[2,0]*matKkolone[0,2] + matKrilov[2,1]*matKkolone[1,2] + matKrilov[2,2]*matKkolone[2,2] + matKrilov[2,3]*matKkolone[3,2];
matKkolone[3,1] = matKrilov[3,0]*matKkolone[0,2] + matKrilov[3,1]*matKkolone[1,2] + matKrilov[3,2]*matKkolone[2,2] + matKrilov[3,3]*matKkolone[3,2];
matKkolone[0,0] = matKrilov[0,0]*matKkolone[0,1] + matKrilov[0,1]*matKkolone[1,1] + matKrilov[0,2]*matKkolone[2,1] + matKrilov[0,3]*matKkolone[3,1];
matKkolone[1,0] = matKrilov[1,0]*matKkolone[0,1] + matKrilov[1,1]*matKkolone[1,1] + matKrilov[1,2]*matKkolone[2,1] + matKrilov[1,3]*matKkolone[3,1];
matKkolone[2,0] = matKrilov[2,0]*matKkolone[0,1] + matKrilov[2,1]*matKkolone[1,1] + matKrilov[2,2]*matKkolone[2,1] + matKrilov[2,3]*matKkolone[3,1];
matKkolone[3,0] = matKrilov[3,0]*matKkolone[0,1] + matKrilov[3,1]*matKkolone[1,1] + matKrilov[3,2]*matKkolone[2,1] + matKrilov[3,3]*matKkolone[3,1];
matKkolone[0,4] = matKrilov[0,0]*matKkolone[0,0] + matKrilov[0,1]*matKkolone[1,0] + matKrilov[0,2]*matKkolone[2,0] + matKrilov[0,3]*matKkolone[3,0];
matKkolone[1,4] = matKrilov[1,0]*matKkolone[0,0] + matKrilov[1,1]*matKkolone[1,0] + matKrilov[1,2]*matKkolone[2,0] + matKrilov[1,3]*matKkolone[3,0];
matKkolone[2,4] = matKrilov[2,0]*matKkolone[0,0] + matKrilov[2,1]*matKkolone[1,0] + matKrilov[2,2]*matKkolone[2,0] + matKrilov[2,3]*matKkolone[3,0];
matKkolone[3,4] = matKrilov[3,0]*matKkolone[0,0] + matKrilov[3,1]*matKkolone[1,0] + matKrilov[3,2]*matKkolone[2,0] + matKrilov[3,3]*matKkolone[3,0];
}
for (int i = 0; i<=r;i++)
{
label91.Text +=matKkolone[i,0] + "\n";
label92.Text +=matKkolone[i,1] + "\n";
label93.Text +=matKkolone[i,2] + "\n";
label94.Text +=matKkolone[i,3] + "\n";
if (r==3)
{
label97.Text +=matKkolone[i,4] + "\n";
}
}
matKkolone = GausovAlgoritam(matKkolone,r);
izracunajResenjaKrilova();
label119.Visible = true;
for (int i = 0; i<=r; i++)
{ matresKrilov[i] = Math.Round(matresKrilov[i],2);}
label114.Text = "p0 = 1";
label115.Text = "p1 = "+ matresKrilov[0];
label116.Text = "p2 = "+ matresKrilov[1];
label117.Text = "p3 = "+ matresKrilov[2];
if (r==3)
{
label119.Left = 300;
label118.Text = "p1 = "+ matresKrilov[3];
label109.Text = "x^4 - ( " + matresKrilov[0] + " )x^3 - ( " + matresKrilov[1] + " )x^2 - ( " + matresKrilov[2] + " )x - ( " + matresKrilov[3] + " )";
}
else
{
label119.Left = 232;
label109.Text = "x^3 - ( " + matresKrilov[0] + " )x^2 - ( " + matresKrilov[1] + " )x - ( " + matresKrilov[2] + " )";
}
}
Evo, videcete o cemu se radi. Ovde 'nesto' racuna. jako prosto. Zakili ce znati jer je on sa FON-a, a i ostali vidim da su sa tehnickih fakulteta. Ovo je metod Krilova za izracunavanje spostvenih vrednosti i spostvenih vektora. Poziva metodu Gusa koja radi OK, ali kada mi izdaje rezultate sve zivo je bio pomesao. Odbranio sam ovo, ali me cisto zanima zasto se to desilo. Hvala svima.
MoNsTrUm