Курсовая работа: Знаходження власних значеннь лінійого оператора
begin
h:=0; g:=0; f:=0; y:=0;
for i:=1 to n do
begin
x:=sqr(a[i,k]);d:=sqr(a[i,j]); y:=y+x-d;
if (i<>k) and (i<>j) then
begin
h:=h+a[k,i]*a[j,i]-a[i,k]*a[i,j];
p:=x+sqr(a[j,i]); r:=d+sqr(a[k,i]);
g:=g+p+r; f:=f-p+r;
end;
end;
h:=2*h; d:=a[k,k]-a[j,j];
p:=a[k,j]+a[j,k]; r:=a[k,j]-a[j,k];
if abs(p)<=e then begin c:=1; s:=0; end
else
begin
x:=d/p; c:=x+zn(x)*sqrt(1+x*x);
s:=zn(x)/sqrt(1+c*c); c:=s*c;
end;
if y<0 then begin x:=c; c:=s; s:=-x; end;
co:=c*c-s*s; si:=2*s*c; d:=d*co+p*si;
h:=h*co-f*si; x:=(r*d-h/2)/(g+2*(r*r+d*d));
if abs(x)<=e
then begin ch:=1; sh:=0; end
else begin ch:=1/sqrt(1-x*x); sh:=ch*x; end;
c1:=ch*c-sh*s; c2:=ch*c+sh*s;
s1:=ch*s+sh*c; s2:=-ch*s+sh*c;
if (abs(s1)>e)or(abs(s2)>e) then