lab8 listing

background image

Kod programu (środowisko Dev-C++ 5)


#include

<stdio.h>

#include

<stdlib.h>

#include

<math.h>

int

main()

{

int

n,i,j,k,ile = 0;

double

eps = 0.0001, suma, norma, suma2;



printf(

"Podaj rozmiar macierzy: "

);

scanf(

"%d"

, &n);

double

macA[n][n], macB[n][n];

double

y[n], yp[n], wlasny[n], lambda , lambdap;



printf(

"Podaj wyrazy (wierszami):\n"

);

for

(i = 0; i < n; i++)

{
printf(

"Wiersz nr %d:\n"

, i+1);

for

(j = 0; j < n; j++)

{
scanf(

"%lf"

, &macA[i][j]);

}
}
FILE *wynik;
wynik = fopen(

"wynik.txt"

,

"wt"

);


printf(

"\nMacierz postaci:\n"

);

for

(i = 0; i < n; i++)

{
printf(

"| "

);

fprintf(wynik,

"| "

);

for

(j = 0; j < n; j++)

{
printf(

"%-10.5lf "

, macA[i][j]);

fprintf(wynik,

"%-10.5lf "

, macA[i][j]);


}
printf(

"|\n"

);

fprintf(wynik,

"|\n"

);

}

for

(k = 0; k < n; k++)

{

for

(i = 0; i < n; i++)

{
y[i] = 0;
yp[i] = 0;
}
yp[0] = 1;
ile = 0;
lambda = 1;
lambdap = 0;
suma2 = 0;

while

(fabs(lambda - lambdap > eps))

{
suma = 0;

for

(i = 0; i < n; i++)

{

for

(j = 0; j < n; j++)

{

background image

y[i] += yp[j]*macA[i][j];
}
suma += y[i]/yp[i];
}

for

(i = 0; i < n; i++)

{
yp[i] = y[i];
wlasny[i] = y[i];
y[i] = 0;
}

if

(ile > 1)

{
lambdap = lambda;
lambda = (1.0/n)*suma;
}
ile++;
}

//wyznaczanie wektora U = V/|V|

for

(i = 0; i < n; i++)

{
suma2 += pow(wlasny[i],2);
}
norma = sqrt(suma2);

for

(i = 0; i < n; i++)

{
wlasny[i] = wlasny[i]/norma;
}

//macierz B = lambda*U*U'

for

(i = 0; i < n; i++)

{

for

(j = 0; j < n; j++)

{
macB[i][j] = lambda*wlasny[j]*wlasny[i];
}
}

//nowa macierz A

for

(i = 0; i < n; i++)

{

for

(j = 0; j < n; j++)

{
macA[i][j] = macA[i][j] - macB[i][j];
}
}

//wynik

printf(

"\nlambda[%d] = %lf\niteracji: %d\n\n"

,k+1,lambda,ile);

fprintf(wynik,

"lambda[%d] = %lf\n"

, k+1, lambda);

fprintf(wynik,

"["

);

for

(i = 0; i < n; i++)

{
fprintf(wynik,

"%-8.4lf "

,wlasny[i]);

if

(i < n-1) fprintf(wynik,

"; "

);

}
fprintf(wynik,

"]\n"

);

}

fclose(wynik);

system(

"pause"

);

return

0;

}


Wyszukiwarka

Podobne podstrony:
lab8(1) id 260269 Nieznany
[8]konspekt new, Elektrotechnika AGH, Semestr II letni 2012-2013, Fizyka II - Laboratorium, laborki,
Rafał Polak 12k2 lab8, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
sprawko modelowanie?p lab8 g3
lab8 przyklad
Lab8 occ id 260283 Nieznany
lab8 1 uklady rownan liniowych
cw8 wyniki, Elektrotechnika AGH, Semestr II letni 2012-2013, Fizyka II - Laboratorium, laborki, labo
SHSBC 220 GA LISTING BY TIGER BUTTONS, PART II
lab8 AC
SHSBC 219 3GA LISTING BY TIGER
Listing choinki
listing01
SHSBC 307 TV?MO LISTING ASSESSMENT FOR ENGRAM
SHSBC212 LISTING LINES
8 opracowanie, Elektrotechnika AGH, Semestr II letni 2012-2013, Fizyka II - Laboratorium, laborki, l
lab8 VHDL

więcej podobnych podstron