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.
Potpis
MoNsTrUm