Let f : C 4 → C 4 be linear transform defined by:
f ⎝ ⎜ ⎜ ⎛ z 1 z 2 z 3 z 4 ⎠ ⎟ ⎟ ⎞ = ⎝ ⎜ ⎜ ⎛ ( 2 − i ) ∗ z 1 + ( 3 + 5 i ) ∗ z 2 + ( − 7 + 2 i ) ∗ z 3 + ( 1 + 3 i ) ∗ z 4 ( 1 1 − 5 i ) ∗ z 1 + ( 2 + 4 i ) ∗ z 2 + ( 6 + 5 i ) ∗ z 3 + ( 4 + 2 i ) ∗ z 4 ( − 1 + 2 i ) ∗ z 1 + ( − 3 + 4 i ) ∗ z 2 = ( 9 − 7 i ) ∗ z 3 + ( 6 + 5 i ) ∗ z 4 ( 3 − 2 i ) ∗ z 1 + ( 8 + 1 1 i ) ∗ z 2 + ( 2 − i ) ∗ z 3 + ( 5 + 3 i ) ∗ z 4 ⎠ ⎟ ⎟ ⎞ , where z 1 , z 2 , z 3 , z 4 ∈ C
and A = ⎩ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎧ ⎝ ⎜ ⎜ ⎛ 1 − 2 i 3 − 4 i 5 − 6 i 7 − 8 i ⎠ ⎟ ⎟ ⎞ , ⎝ ⎜ ⎜ ⎛ 2 − 5 i 6 + 1 1 i 8 − 7 i 3 + 2 i ⎠ ⎟ ⎟ ⎞ , ⎝ ⎜ ⎜ ⎛ 8 − 7 i 5 − 6 i 3 − 4 i 2 + i ⎠ ⎟ ⎟ ⎞ , ⎝ ⎜ ⎜ ⎜ ⎜ ⎛ 9 − 8 i 7 − 5 i 6 + 4 i 3 − 2 i ⎠ ⎟ ⎟ ⎟ ⎟ ⎞ ⎭ ⎪ ⎪ ⎪ ⎪ ⎬ ⎪ ⎪ ⎪ ⎪ ⎫ be basis for C 4 (Domain ( f ) ) and
B = ⎩ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎧ ⎝ ⎜ ⎜ ⎛ 1 + 2 i 3 + 4 i 5 + 6 i 7 + 8 i ⎠ ⎟ ⎟ ⎞ , ⎝ ⎜ ⎜ ⎛ − 7 + i 2 − 3 i 1 1 + 7 i 6 + 5 i ⎠ ⎟ ⎟ ⎞ , ⎝ ⎜ ⎜ ⎛ 8 − 7 i 5 − 6 i 4 + 2 i 1 − 1 1 i ⎠ ⎟ ⎟ ⎞ , ⎝ ⎜ ⎜ ⎜ ⎜ ⎛ 7 − i 3 + 2 i − 4 + 8 i 1 7 − 1 1 i ⎠ ⎟ ⎟ ⎟ ⎟ ⎞ ⎭ ⎪ ⎪ ⎪ ⎪ ⎬ ⎪ ⎪ ⎪ ⎪ ⎫ be a basis for C 4 (Range ( f ) ) .
If M = [ a j k + b j k i ] 4 x 4 represents the linear transform above and for ( 1 < = j < = 4 ) , λ j = α j + β j i are eigenvalues for matrix M , find ∑ j = 1 4 λ j and express the answer as ∑ j = 1 4 α j + ∑ j = 1 4 β j .
General Case:
Let f : C 4 → C 4 be linear transform defined by:
f
⎝
⎜
⎜
⎛
z
1
z
2
z
3
z
4
⎠
⎟
⎟
⎞
=
⎝
⎜
⎜
⎛
c
1
1
∗
z
1
+
c
1
2
∗
z
2
+
c
1
3
∗
z
3
+
c
1
4
∗
z
4
c
2
1
∗
z
1
+
c
2
2
∗
z
2
+
c
2
3
∗
z
3
+
c
2
4
∗
z
4
c
3
1
∗
z
1
+
c
3
2
∗
z
2
+
c
3
3
∗
z
3
+
c
3
4
∗
z
4
c
4
1
∗
z
1
+
c
4
2
∗
z
k
+
c
4
3
∗
z
n
+
c
4
4
∗
z
4
⎠
⎟
⎟
⎞
,
where
z
k
,
c
j
k
∈
C
for each
(
1
<
=
k
<
=
4
)
and
(
1
<
=
j
<
=
4
)
Let V j = ⎝ ⎜ ⎜ ⎛ v 1 j v 2 j v 3 j v 4 j ⎠ ⎟ ⎟ ⎞ ∈ C 4
and A = { V j ∣ ( 1 < = j < = 4 ) } be a basis for C 4 ( D o m a i n ( f ) ) .
Let W j = ⎝ ⎜ ⎜ ⎛ w 1 j w 2 j w 3 j w 4 j ⎠ ⎟ ⎟ ⎞ ∈ C 4 .
and B = { W j ∣ ( 1 < = j < = 4 ) } be a basis for C 4 ( R a n g e ( f ) ) .
You can write a program(in any language) for the general case to find the matrix M = [ a j k + b j k i ] 4 x 4 and ∑ j = 1 4 λ j and compute the sum ∑ j = 1 4 α j + ∑ j = 1 4 β j .
You can use the program written to compute ∑ j = 1 4 α j + ∑ j = 1 4 β j for the given problem above.
This section requires Javascript.
You are seeing this because something didn't load right. We suggest you, (a) try
refreshing the page, (b) enabling javascript if it is disabled on your browser and,
finally, (c)
loading the
non-javascript version of this page
. We're sorry about the hassle.
Problem Loading...
Note Loading...
Set Loading...
After doing the problem I supply the program I wrote for the general case which generated the output for this specific problem. I added to the program written from the previous problem. Refer to previous problem. . .
Since f : C 4 → C 4 is a linear transform, for each integer j ∋ ( 1 < = j < = 4 )
f ⎝ ⎜ ⎜ ⎛ z 1 j z 2 j z 3 j z 4 j ⎠ ⎟ ⎟ ⎞ = α 1 j ∗ ⎝ ⎜ ⎜ ⎛ 1 + 2 i 3 + 4 i 5 + 6 i 7 + 8 i ⎠ ⎟ ⎟ ⎞ + α 2 j ∗ ⎝ ⎜ ⎜ ⎛ − 7 + i 2 − 3 i 1 1 + 7 i 6 + 5 i ⎠ ⎟ ⎟ ⎞ + α 3 j ∗ ⎝ ⎜ ⎜ ⎛ 8 − 7 i 5 − 6 i 4 + 2 i 1 − 1 1 i ⎠ ⎟ ⎟ ⎞ + α 4 j ∗ ⎝ ⎜ ⎜ ⎛ 7 − i 3 + 2 i − 4 + 8 i 1 7 − 1 1 i ⎠ ⎟ ⎟ ⎞
= ⎣ ⎢ ⎢ ⎡ 1 + 2 i 3 + 4 i 5 + 6 i 7 + 8 i − 7 + i 2 − 3 i 1 1 + 7 i 6 + 5 i 8 − 7 i 5 − 6 i 4 + 2 i 1 − 1 1 i 7 − i 3 + 2 i − 4 + 8 i 1 7 − 1 1 i ⎦ ⎥ ⎥ ⎤ ∗ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ α 1 j α 2 j α 3 j α 4 j ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣
where α 1 j , α 2 j , α 3 j , α 4 j ∈ C
and f ⎝ ⎜ ⎜ ⎛ 1 − 2 i 3 − 4 i 5 − 6 i 7 − 8 i ⎠ ⎟ ⎟ ⎞ = ⎝ ⎜ ⎜ ⎛ 3 7 + 6 3 i − 8 3 + 1 2 7 i 4 0 + 2 6 i 1 5 − 1 4 i ⎠ ⎟ ⎟ ⎞
f ⎝ ⎜ ⎜ ⎛ 2 − 5 i 6 + 1 1 i 8 − 7 i 3 + 2 i ⎠ ⎟ ⎟ ⎞ = ⎝ ⎜ ⎜ ⎛ 1 2 7 − 5 2 i 5 6 − 7 i 1 3 1 − 1 1 0 i 1 2 5 − 6 3 i ⎠ ⎟ ⎟ ⎞
f ⎝ ⎜ ⎜ ⎛ 8 − 7 i 5 − 6 i 3 − 4 i 2 + i ⎠ ⎟ ⎟ ⎞ = ⎝ ⎜ ⎜ ⎛ 9 5 − 7 4 i − 2 3 − 9 2 i 2 1 + 2 0 i 1 1 6 + 6 6 i ⎠ ⎟ ⎟ ⎞
f ⎝ ⎜ ⎜ ⎛ 9 − 8 i 7 − 5 i 6 + 4 i 3 − 2 i ⎠ ⎟ ⎟ ⎞ = ⎝ ⎜ ⎜ ⎛ 1 3 0 − 4 3 i − 5 9 + 1 3 2 i 1 2 5 − 3 0 i 1 5 9 − 4 i ⎠ ⎟ ⎟ ⎞
Using the above we can set up the augmented matrix below to solve for the
four 4 X 4 systems of equations.
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 + 2 i 3 + 4 i 5 + 6 i 7 + 8 i − 7 + i 2 − 3 i 1 1 + 7 i 6 + 5 i 8 − 7 i 5 − 6 i 4 + 2 i 1 − 1 1 i 7 − i 3 + 2 i − 4 . + 8 i 1 7 − 1 1 i 3 7 + 6 3 i 1 2 7 − 5 2 i 9 5 − 7 4 i 1 3 0 − 4 3 i − 8 3 + 1 2 7 i 5 6 − 7 i − 2 3 i − 9 2 i − 5 9 + 1 3 2 i 4 0 + 2 6 i 1 3 1 − 1 1 0 i 2 1 + 2 0 i 1 2 5 − 3 0 i 1 5 + − 1 4 i 1 2 5 − 6 3 i 1 1 6 + 6 6 i 1 5 9 − 4 i ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
Refer to previous problem for row operations. . .
Using row operation we solve for matrix M obtaining:
M = ⎣ ⎢ ⎢ ⎡ − 9 . 5 0 9 2 − 1 7 . 3 6 0 2 i 5 . 8 7 3 4 + 3 . 3 7 4 6 i 1 . 4 6 5 9 + 1 3 . 7 4 0 9 i − 7 . 5 7 8 3 + 1 . 4 1 1 9 i − 1 9 . 5 5 3 1 − 1 1 . 4 0 3 2 i 7 . 8 1 9 0 + 7 . 8 9 3 1 i − 7 . 1 6 5 5 + 1 8 . 5 1 1 3 i − 1 3 . 9 5 7 4 + 1 . 8 1 9 5 i − 2 2 . 3 4 8 3 − 8 . 2 1 1 9 i 1 4 . 6 2 7 3 + 7 . 3 9 2 1 i 9 . 4 2 4 3 + 1 6 . 1 7 2 3 i − 5 . 6 5 7 3 + 6 . 7 0 8 5 i − 3 . 7 7 9 8 − 1 1 . 1 4 3 8 i 1 0 . 2 0 1 8 + 5 . 9 2 6 0 i 5 . 2 3 1 5 + 6 . 5 9 3 8 i − 2 . 3 8 1 9 + 2 . 4 9 6 0 i ⎦ ⎥ ⎥ ⎤
To find the eigenvalues we calculate det ( M − λ ∗ I ) = 0 obtaining:
λ 4 + ( − 5 . 3 5 2 2 − 9 . 2 0 1 3 i ) ∗ λ 3 + ( 5 8 5 . 2 4 7 3 − 1 0 2 . 4 9 4 8 i ) ∗ λ 2 + ( − 1 6 8 6 . 5 8 3 8 + 3 4 7 9 . 3 9 1 9 i ) ∗ λ + ( 7 3 5 6 . 6 0 1 6 + 9 1 0 5 . 8 5 4 7 i ) = 0
⟹
λ 1 = 4 . 0 0 6 2 + 3 1 . 0 4 7 8 i
λ 2 = − 4 . 3 1 2 2 − 1 7 . 1 6 3 3 i
λ 3 = 6 . 6 8 8 9 − 6 . 6 6 8 8 i
λ 4 = − 1 . 0 3 0 7 + 1 . 9 8 5 5 i
w h e r e , λ j = α j + β j i for ( 1 < = j < = 4 )
⟹
∑ j = 1 4 α j + ∑ j = 1 4 β j = 1 4 . 5 5 3 5
I wrote the program in Free Pascal:
program matrixrepresentaionoflineartransform complex extension;
{special case - restricted to f:R4 --> R4}
uses crt;
const maxnum = 100;
type matrix = array[1 .. maxnum,1 .. maxnum] of real;
var coeffa,coeffb,reb,imgb,rea,imga,resol,imgsol:matrix;
mywork:text;
RECOEFF 1,RECOEFF 2,RECOEFF 3,RECOEFF 4,RECOEFF 5,IMGCO EFF 1,IMGCOEFF 2,IMGCOEFF 3,IMGCOEFF 4,IMGCOEFF 5,REW, IMGW,REU1,IMGU1,REU2,IMGU2,REU3,IMGU3,REU4,IMGU4,REZ1,IMGZ1,REZ2,IMGZ2,REZ3,IMGZ3,REZ4,IMGZ4:EXTENDED;
function power(base:real; exponent:integer):real;
var n:integer;
product:real;
begin
product:= 1;
for n:= 1 to exponent do
product:= product * base;
power:= product;
end;
function nroot(x:real; n:integer):real;
const error = 0.0000000001;
var right,left,midpt,diff:real;
begin{nroot}
IF (ABS(X) >= 1) THEN
BEGIN
left:= 1; right:= ABS(x);
END;
IF (ABS(X) < 1) THEN
BEGIN
END;
count:= 1;
if power(midpt,n) > ABS(x) then {X CAN < 0 FOR N ODD}
else
midpt:= (left + right)/2;
diff:= abs(ABS(x) - power(midpt,n));
procedure getsize; {modified previous program}
begin
writeln('Let f:R4 ---> R4 be linear transform ');
n:= 4;
m:= 4;
end;
procedure getcoefficients;
var j,k:integer;
begin
for j:= 1 to m do
begin
writeln('For row,', j, ', enter each coefficient of Xj for Rm');
for k:= 1 to n do
begin
read(coeffa[j,k]);
read(coeffb[j,k]);
end;
end;
end;
procedure complexinverse(var reinvz,imginvz:real; rez,imgz:real);
var lengthsqr:real;
begin
lengthsqr:= power(rez,2) + power(imgz,2);
reinvz:= rez/lengthsqr;
imginvz:= -imgz/lengthsqr;
end;
function reproduct(rez1,imgz1,rez2,imgz2:real):real;
begin
reproduct:= rez1 * rez2 - imgz1 * imgz2;
end;
function imgproduct(rez1,imgz1,rez2,imgz2:real):real;
begin
imgproduct:= rez2 * imgz1 + rez1 * imgz2;
end;
procedure getaugmentedmatrix;
var j,k,q,r,s:integer;
begin
assign(myfile,'holdcmatrix.txt');
rewrite(myfile);
writeln('To Enter ', n, ' basis vectors for Rn: ');
for q:= 1 to n do
begin
write('Enter elements of vector ', q, ' : ');
for k:= 1 to n do
begin
read(reb[k,q]);
read(imgb[k,q]);
end;
for j:= 1 to m do
begin
resum:= 0;
imgsum:= 0;
for k:= 1 to n do
begin
resum:= resum + reproduct(coeffa[j,k],coeffb[j,k],reb[k,q],imgb[k,q]);
imgsum:= imgsum + imgproduct(coeffa[j,k],coeffb[j,k],reb[k,q],imgb[k,q]);
end;
revec[j,q]:= resum;
imgvec[j,q]:= imgsum;
end;
end;
writeln('To Enter ', m, ' basis vectors for Rm: ');
for q:= 1 to m do
begin
write('Enter elements of vector ', q, ' : ');
for k:= 1 to m do
begin
read(rea[k,q]);
read(imga[k,q]);
end;
end;
for q:= 1 to m do
begin
for k:= 1 to m do
begin
write(myfile,rea[q,k]:0:4,' ',imga[q,k],' ');
end;
for r:= 1 to n do
begin
write(myfile,revec[q,r]:0:4,' ',imgvec[q,r],' ');
end;
writeln(myfile);
end;
reset(myfile);
for j:= 1 to m do
begin
for k:= 1 to m + n do
begin
read(myfile,rea[j,k]);
read(myfile,imga[j,k]);
end;
end;
close(myfile);
{To show augmented matrix - for show work}
writeln(mywork,' Augmented Matrix');
writeln(mywork);
for q:= 1 to m do
begin
for k:= 1 to m do
begin
write(mywork,rea[q,k]:0:4,' + i', imga[q,k]:0:4,' ');
end;
for r:= 1 to n do
begin
write(mywork,revec[q,r]:0:4,' + i', imgvec[q,r]:0:4,' ');
end;
writeln(mywork);
end;
writeln(mywork);
writeln(mywork);
end;
procedure switch(var c,d:matrix; l,p:integer);
var q:integer;
begin{switch}
for q:= 1 to m + n do
begin{m}
end;{m}
end;{switch}
procedure safeguard(var c,d:matrix; l:integer; var p:integer; var v:integer);
var q:integer;
begin{safeguard} {Still to do!}
v:=0;
if (c[l,l] = 0) and (d[l,l] = 0) then
begin{then}
v:= 1;
q:= l;
while ((q + 1) <= n + m) and (v = 1) do
begin{loop}
if (c[q + 1,l] <> 0) or (d[q + 1,l] <> 0) then
begin{then}
end;{then}
q:= q + 1;
end;{loop}
end;{then}
end;{safeguard}
procedure operation1(var a,b:matrix; l:integer);
var q,k:integer;
begin{op1}
for q:= 1 to m + n do
begin{q}
complexinverse(reinvz,imginvz,a[l,l],b[l,l]);
res[l,q]:= reproduct(a[l,q],b[l,q],reinvz,imginvz);
imgs[l,q]:= imgproduct(a[l,q],b[l,q],reinvz,imginvz);
end;{q}
for q:= 1 to m + n do
begin{q}
a[l,q]:= res[l,q];
b[l,q]:= imgs[l,q];
end;{q}
writeln(mywork,'(',reinvz:0:4,' + i', imginvz:0:4,') * ROW ', l);
writeln(mywork);
writeln(mywork);
for q:= 1 to m do
begin
for k:= 1 to m + n do
begin
write(mywork,a[q,k]:0:4,' + i', b[q,k]:0:4,' ');
end;
writeln(mywork);
end;
writeln(mywork);
writeln(mywork);
end;{op1}
procedure operation2(var a,b:matrix; l:integer);
var q,r,k:integer;
begin{op2}
for q:= 1 to m do
begin{q}
if q <> l then
begin{then}
x:= -1 * a[q,l];
y:= -1 * b[q,l];
for r:= 1 to m + n do
begin{r}
res[q,r]:= reproduct(x,y,a[l,r],b[l,r]) + a[q,r];
imgs[q,r]:= imgproduct(x,y,a[l,r],b[l,r]) + b[q,r];
end;{r}
writeln(mywork,'(',x:0:4, ' + i',y:0:4,' ) * ROW ', l,' + ROW ', q);
for r:= 1 to m + n do
begin{r}
a[q,r]:= res[q,r];
b[q,r]:= imgs[q,r];
end;{r}
end;{then}
end;{q}
writeln(mywork);
for q:= 1 to m do
begin
for k:= 1 to m + n do
begin
write(mywork,a[q,k]:0:4,' + i ',b[q,k]:0:4,' ');
end;
writeln(mywork);
end;
writeln(mywork);
writeln(mywork);
end;{op2}
PROCEDURE SHOWDATA;
VAR J,k:INTEGER;
BEGIN
assign(myfile2,'holdsolution6.txt');
rewrite(myfile2);
writeln;
writeln('Matrix Representation of linear transformation f: Rn ---> Rm:');
writeln('-------------------------------------------------------------');
writeln;
for j:= 1 to m do
begin
for k:= m + 1 to m + n do
begin
write(myfile2,rea[j,k]:0:4,' ',imga[j,k],' ');
end;
writeln(myfile2);
end;
reset(myfile2);
for j:= 1 to m do
begin
for k:= 1 to n do
begin
read(myfile2,resol[j,k]);
read(myfile2,imgsol[j,k]);
end;
end;
close(myfile2);
for j:= 1 to m do
begin
for k:= 1 to n do
begin
write(resol[j,k]:0:4,' + i', imgsol[j,k]:0:4,' ');
end;
writeln;
end;
END;
function reproduct2(rez1,imgz1,rez2,imgz2,rez3,imgz3:extended):extended;
begin
reproduct2:= rez3 * reproduct(rez1,imgz1,rez2,imgz2) - imgz3 *
imgproduct(rez1,imgz1,rez2,imgz2);
end;
function imgproduct2(rez1,imgz1,rez2,imgz2,rez3,imgz3:extended):extended;
begin
imgproduct2:= rez3 * imgproduct(rez1,imgz1,rez2,imgz2) + imgz3 *
reproduct(rez1,imgz1,rez2,imgz2);
end;
function reproduct3(rez1,imgz1,rez2,imgz2,rez3,imgz3,rez4,imgz4:extended):extended;
begin
reproduct3:= rez4 * reproduct2(rez1,imgz1,rez2,imgz2,rez3,imgz3) - imgz4 *
imgproduct2(rez1,imgz1,rez2,imgz2,rez3,imgz3);
end;
function imgproduct3(rez1,imgz1,rez2,imgz2,rez3,imgz3,rez4,imgz4:extended):extended;
begin
imgproduct3:= rez4 * imgproduct2(rez1,imgz1,rez2,imgz2,rez3,imgz3) + imgz4 *
reproduct2(rez1,imgz1,rez2,imgz2,rez3,imgz3);
end;
PROCEDURE COMPLEX POLY COEFFS(VAR RECOEFF 1,RECOEFF 2,RECOEFF 3,RECOEFF 4,RECOEFF 5, IMGCOEFF 1,IMGCOEFF 2,IMGCOEFF 3,IMGCOEFF 4,IMGCOEFF 5:extended; A,B:MATRIX);
BEGIN
RECOEFF_1:= 1;
IMGCOEFF_1:= 0;
RECOEFF_2:= -(A[1,1] + A[2,2] + A[3,3] + A[4,4]);
IMGCOEFF_2:= -(B[1,1] + B[2,2] + B[3,3] + B[4,4]);
RECOEFF_3:= reproduct(A[1,1],B[1,1],A[2,2],B[2,2]) + reproduct(A[1,1],B[1,1],A[3,3],B[3,3]) + reproduct(A[1,1],B[1,1],A[4,4],B[4,4]) + reproduct(A[2,2],B[2,2],A[3,3],B[3,3]) + reproduct(A[2,2],B[2,2],A[4,4],B[4,4]) + reproduct(A[3,3],B[3,3],A[4,4],B[4,4]) - reproduct(A[1,2],B[1,2],A[2,1],B[2,1]) - reproduct(A[3,4],B[3,4],A[4,3],B[4,3] - reproduct(A[2,3],B[2,3],A[3,2],B[3,2]) - reproduct(A[2,4],B[2,4],A[4,2],B[4,2] - reproduct(A[1,3],B[1,3],A[3,1],B[3,1]) - reproduct(A[1,4],B[1,4],A[4,1],B[4,1]);
IMGCOEFF_3:= imgproduct(A[1,1],B[1,1],A[2,2],B[2,2]) + imgproduct(A[1,1],B[1,1],A[3,3],B[3,3]) + imgproduct(A[1,1],B[1,1],A[4,4],B[4,4]) + imgproduct(A[2,2],B[2,2],A[3,3],B[3,3]) + imgproduct(A[2,2],B[2,2],A[4,4],B[4,4]) + imgproduct(A[3,3],B[3,3],A[4,4],B[4,4]) - imgproduct(A[1,2],B[1,2],A[2,1],B[2,1]) - imgproduct(A[3,4],B[3,4],A[4,3],B[4,3]) - imgproduct(A[2,3],B[2,3],A[3,2],B[3,2]) - imgproduct(A[2,4],B[2,4],A[4,2],B[4,2]) - imgproduct(A[1,3],B[1,3],A[3,1],B[3,1]) - imgproduct(A[1,4],B[1,4],A[4,1],B[4,1]);
RECOEFF_4:= -(reproduct2(A[1,1],B[1,1],A[2,2],B[2,2],A[3,3],B[3,3]) + reproduct2(A[1,1],B[1,1],A[2,2],B[2,2],A[4,4],B[4,4]) + reproduct2(A[1,1],B[1,1],A[3,3],B[3,3],A[4,4],B[4,4]) + reproduct2(A[2,2],B[2,2],A[3,3],B[3,3],A[4,4],B[4,4]) + reproduct2(A[3,4],B[3,4],A[4,2],B[4,2],A[2,3],B[2,3]) + reproduct2(A[2,4],B[2,4],A[3,2],B[3,2],A[4,3],B[4,3])+ reproduct2(A[1,2],B[1,2],A[2,3],B[2,3],A[3,1],B[3,1]) + reproduct2(A[1,2],B[1,2],A[2,4],B[2,4],A[4,1],B[4,1])+ reproduct2(A[1,3],B[1,3],A[2,1],B[2,1],A[3,2],B[3,2]) + reproduct2(A[1,3],B[1,3],A[3,4],B[3,4],A[4,1],B[4,1]) + reproduct2(A[1,4],B[1,4],A[4,2],B[4,2],A[2,1],B[2,1]) + reproduct2(A[1,4],B[1,4],A[3,1],B[3,1],A[4,3],B[4,3]) - reproduct2(A[3,4],B[3,4],A[4,3],B[4,3],A[1,1],B[1,1]) - reproduct2(A[3,4],B[3,4],A[4,3],B[4,3],A[2,2],B[2,2]) - reproduct2(A[1,1],B[1,1],A[2,3],B[2,3],A[3,2],B[3,2]) - reproduct2(A[1,1],B[1,1],A[2,4],B[2,4],A[4,2],B[4,2]) - reproduct2(A[2,3],B[2,3],A[3,2],B[3,2],A[4,4],B[4,4]) - reproduct2(A[3,3],B[3,3],A[4,2],B[4,2],A[2,4],B[2,4]) - reproduct2(A[1,2],B[1,2],A[2,1],B[2,1],A[3,3],B[3,3]) - reproduct2(A[1,2],B[1,2],A[2,1],B[2,1],A[4,4],B[4,4]) - reproduct2(A[1,3],B[1,3],A[3,1],B[3,1],A[4,4],B[4,4]) - reproduct2(A[1,3],B[1,3],A[3,1],B[3,1],A[2,2],B[2,2]) - reproduct2(A[1,4],B[1,4],A[4,1],B[4,1],A[2,2],B[2,2]) - reproduct2(A[1,4],B[1,4],A[4,1],B[4,1],A[3,3],B[3,3]));
IMGCOEFF_4:= -(imgproduct2(A[1,1],B[1,1],A[2,2],B[2,2],A[3,3],B[3,3]) + imgproduct2(A[1,1],B[1,1],A[2,2],B[2,2],A[4,4],B[4,4]) + imgproduct2(A[1,1],B[1,1],A[3,3],B[3,3],A[4,4],B[4,4]) + imgproduct2(A[2,2],B[2,2],A[3,3],B[3,3],A[4,4],B[4,4]) + imgproduct2(A[3,4],B[3,4],A[4,2],B[4,2],A[2,3],B[2,3]) + imgproduct2(A[2,4],B[2,4],A[3,2],B[3,2],A[4,3],B[4,3]) + imgproduct2(A[1,2],B[1,2],A[2,3],B[2,3],A[3,1],B[3,1]) + imgproduct2(A[1,2],B[1,2],A[2,4],B[2,4],A[4,1],B[4,1]) + imgproduct2(A[1,3],B[1,3],A[2,1],B[2,1],A[3,2],B[3,2]) + imgproduct2(A[1,3],B[1,3],A[3,4],B[3,4],A[4,1],B[4,1]) + imgproduct2(A[1,4],B[1,4],A[4,2],B[4,2],A[2,1],B[2,1]) + imgproduct2(A[1,4],B[1,4],A[3,1],B[3,1],A[4,3],B[4,3]) - imgproduct2(A[3,4],B[3,4],A[4,3],B[4,3],A[1,1],B[1,1]) - imgproduct2(A[3,4],B[3,4],A[4,3],B[4,3],A[2,2],B[2,2]) - imgproduct2(A[1,1],B[1,1],A[2,3],B[2,3],A[3,2],B[3,2]) - imgproduct2(A[1,1],B[1,1],A[2,4],B[2,4],A[4,2],B[4,2]) - imgproduct2(A[2,3],B[2,3],A[3,2],B[3,2],A[4,4],B[4,4]) - imgproduct2(A[3,3],B[3,3],A[4,2],B[4,2],A[2,4],B[2,4]) - imgproduct2(A[1,2],B[1,2],A[2,1],B[2,1],A[3,3],B[3,3]) - imgproduct2(A[1,2],B[1,2],A[2,1],B[2,1],A[4,4],B[4,4]) - imgproduct2(A[1,3],B[1,3],A[3,1],B[3,1],A[4,4],B[4,4]) - imgproduct2(A[1,3],B[1,3],A[3,1],B[3,1],A[2,2],B[2,2]) - imgproduct2(A[1,4],B[1,4],A[4,1],B[4,1],A[2,2],B[2,2]) - imgproduct2(A[1,4],B[1,4],A[4,1],B[4,1],A[3,3],B[3,3]));
RECOEFF_5:= reproduct3(A[1,1],B[1,1],A[2,2],B[2,2],A[3,3],B[3,3],A[4,4],B[4,4]) + reproduct3(A[1,1],B[1,1],A[3,4],B[3,4],A[4,2],B[4,2],A[2,3],B[2,3]) + reproduct3(A[1,1],B[1,1],A[2,4],B[2,4],A[3,2],B[3,2],A[4,3],B[4,3]) + reproduct3(A[1,2],B[1,2],A[2,1],B[2,1],A[3,4],B[3,4],A[4,3],B[4,3]) + reproduct3(A[1,2],B[1,2],A[2,3],B[2,3],A[3,1],B[3,1],A[4,4],B[4,4]) + reproduct3(A[1,2],B[1,2],A[2,4],B[2,4],A[3,3],B[3,3],A[4,1],B[4,1]) + reproduct3(A[1,3],B[1,3],A[2,1],B[2,1],A[3,2],B[3,2],A[4,4],B[4,4]) + reproduct3(A[1,3],B[1,3],A[3,1],B[3,1],A[2,4],B[2,4],A[4,2],B[4,2]) + reproduct3(A[1,3],B[1,3],A[2,2],B[2,2],A[3,4],B[3,4],A[4,1],B[4,1]) + reproduct3(A[1,4],B[1,4],A[4,1],B[4,1],A[2,3],B[2,3],A[3,2],B[3,2]) + reproduct3(A[1,4],B[1,4],A[2,1],B[2,1],A[4,2],B[4,2],A[3,3],B[3,3]) + reproduct3(A[1,4],B[1,4],A[2,2],B[2,2],A[3,1],B[3,1],A[4,3],B[4,3]) - reproduct3(A[1,1],B[1,1],A[2,3],B[2,3],A[3,2],B[3,2],A[4,4],B[4,4]) - reproduct3(A[1,1],B[1,1],A[3,3],B[3,3],A[4,2],B[4,2],A[2,4],B[2,4]) - reproduct3(A[1,1],B[1,1],A[2,2],B[2,2],A[3,4],B[3,4],A[4,3],B[4,3]) - reproduct3(A[1,2],B[1,2],A[2,4],B[2,4],A[3,1],B[3,1],A[4,3],B[4,3]) - reproduct3(A[1,2],B[1,2],A[2,1],B[2,1],A[3,3],B[3,3],A[4,4],B[4,4]) - reproduct3(A[1,2],B[1,2],A[2,3],B[2,3],A[3,4],B[3,4],A[4,1],B[4,1]) - reproduct3(A[1,3],B[1,3],A[2,1],B[2,1],A[3,4],B[3,4],A[4,2],B[4,2]) - reproduct3(A[1,3],B[1,3],A[3,1],B[3,1],A[2,2],B[2,2],A[4,4],B[4,4]) - reproduct3(A[1,3],B[1,3],A[2,4],B[2,4],A[3,2],B[3,2],A[4,1],B[4,1]) - reproduct3(A[1,4],B[1,4],A[2,1],B[2,1],A[3,2],B[3,2],A[4,3],B[4,3]) - reproduct3(A[1,4],B[1,4],A[4,1],B[4,1],A[2,2],B[2,2],A[3,3],B[3,3]) - reproduct3(A[1,4],B[1,4],A[2,3],B[2,3],A[3,1],B[3,1],A[4,2],B[4,2]);
IMGCOEFF_5:= imgproduct3(A[1,1],B[1,1],A[2,2],B[2,2],A[3,3],B[3,3],A[4,4],B[4,4]) + imgproduct3(A[1,1],B[1,1],A[3,4],B[3,4],A[4,2],B[4,2],A[2,3],B[2,3]) + imgproduct3(A[1,1],B[1,1],A[2,4],B[2,4],A[3,2],B[3,2],A[4,3],B[4,3]) + imgproduct3(A[1,2],B[1,2],A[2,1],B[2,1],A[3,4],B[3,4],A[4,3],B[4,3]) + imgproduct3(A[1,2],B[1,2],A[2,3],B[2,3],A[3,1],B[3,1],A[4,4],B[4,4]) + imgproduct3(A[1,2],B[1,2],A[2,4],B[2,4],A[3,3],B[3,3],A[4,1],B[4,1]) + imgproduct3(A[1,3],B[1,3],A[2,1],B[2,1],A[3,2],B[3,2],A[4,4],B[4,4]) + imgproduct3(A[1,3],B[1,3],A[3,1],B[3,1],A[2,4],B[2,4],A[4,2],B[4,2]) + imgproduct3(A[1,3],B[1,3],A[2,2],B[2,2],A[3,4],B[3,4],A[4,1],B[4,1]) + imgproduct3(A[1,4],B[1,4],A[4,1],B[4,1],A[2,3],B[2,3],A[3,2],B[3,2]) + imgproduct3(A[1,4],B[1,4],A[2,1],B[2,1],A[4,2],B[4,2],A[3,3],B[3,3]) + imgproduct3(A[1,4],B[1,4],A[2,2],B[2,2],A[3,1],B[3,1],A[4,3],B[4,3]) - imgproduct3(A[1,1],B[1,1],A[2,3],B[2,3],A[3,2],B[3,2],A[4,4],B[4,4]) - imgproduct3(A[1,1],B[1,1],A[3,3],B[3,3],A[4,2],B[4,2],A[2,4],B[2,4]) - imgproduct3(A[1,1],B[1,1],A[2,2],B[2,2],A[3,4],B[3,4],A[4,3],B[4,3]) - imgproduct3(A[1,2],B[1,2],A[2,4],B[2,4],A[3,1],B[3,1],A[4,3],B[4,3]) - imgproduct3(A[1,2],B[1,2],A[2,1],B[2,1],A[3,3],B[3,3],A[4,4],B[4,4]) - imgproduct3(A[1,2],B[1,2],A[2,3],B[2,3],A[3,4],B[3,4],A[4,1],B[4,1]) - imgproduct3(A[1,3],B[1,3],A[2,1],B[2,1],A[3,4],B[3,4],A[4,2],B[4,2]) - imgproduct3(A[1,3],B[1,3],A[3,1],B[3,1],A[2,2],B[2,2],A[4,4],B[4,4]) - imgproduct3(A[1,3],B[1,3],A[2,4],B[2,4],A[3,2],B[3,2],A[4,1],B[4,1]) - imgproduct3(A[1,4],B[1,4],A[2,1],B[2,1],A[3,2],B[3,2],A[4,3],B[4,3]) - imgproduct3(A[1,4],B[1,4],A[4,1],B[4,1],A[2,2],B[2,2],A[3,3],B[3,3]) - imgproduct3(A[1,4],B[1,4],A[2,3],B[2,3],A[3,1],B[3,1],A[4,2],B[4,2]);
END;
procedure COMPLEX_QUADRADTIC(A1,B1,A2,B2,A3,B3:EXTENDED; VAR reu1,imgu1,reu2,imgu2:EXTENDED);
VAR R,ALPHA,BETA,R1,C,S:EXTENDED;
BEGIN
ALPHA:= POWER(A2,2) - POWER(B2,2) - 4 * (A1 * A3 - B1 * B3);
BETA:= 2 * A2 * B2 - 4 * (A1 * B3 + B1 * A3);
R:= SQRT(POWER(ALPHA,2) + POWER(BETA,2));
R1:= SQRT(POWER(A1,2) + POWER(B1,2));
C:= SQRT(ABS((R + ALPHA))/2);
S:= SQRT(ABS((R - ALPHA))/2);
IF BETA < 0 THEN
S:= -S;
REU1:= (1/(2 * R1)) * ((A1/R1) * (-A2 + C) + (B1/R1) *
IMGU1:= (1/(2 * R1)) * ((A1/R1) * (-B2 + S) - (B1/R1) *
REU2:= (1/(2 * R1)) * ((A1/R1) * (-A2 - C) + (B1/R1) *
IMGU2:= (1/(2 * R1)) * ((A1/R1) * (-B2 - S) - (B1/R1) *
END;
PROCEDURE CUBICCOMPLEX2(A3,B3,A2,B2,A1,B1,A0,B0:EXTENDED; VAR REW,IMGW:EXTENDED);
VAR M1,M2,N1,N2,S1,S2,T1,T2,REP,IMGP,COEFFP,ALPHA,BETA,COEFF2,R,C,S, LAMDA,V,RAD,ANGLE,REW1,REW2,REW3,IMGW1,IMGW2,IMGW3,REU1,REU2,REU3, IMGU1,IMGU2,IMGU3,REV1,REV2,REV3,IMGV1,IMGV2,IMGV3,POW,POW2, REfZ1,REfZ2,REfZ3,IMGfZ1,IMGfZ2,IMGfZ3,THETA:EXTENDED;
BEGIN
COEFFP:= 1/(3 * (POWER(POWER(A3,2) + POWER(B3,2),2)));
M1:= 3 * (A3 * A1 - B3 * B1) - (POWER(A2,2) - POWER(B2,2));
M2:= 3 * (A1 * B3 + A3 * B1) - 2 * A2 * B2;
N1:= (POWER(A3,2) - POWER(B3,2)) * M1 + 2 * A3 * B3 * M2;
N2:= (POWER(A3,2) - POWER(B3,2)) * M2 - 2 * A3 * B3 * M1;
REP:= COEFFP * ((POWER(A3,2) - POWER(B3,2)) * M1 + 2 * A3 * B3 * M2);
IMGP:= COEFFP * ((POWER(A3,2) - POWER(B3,2)) * M2 - 2 * A3 * B3 * M1);
S1:= 2 * (POWER(A2,3) - 3 * A2 * POWER(B2,2)) - 9 * (A1 * (A3 * A2 - B3 * B2) -
S2:= 2 * (-POWER(B2,3) + 3 * B2 * POWER(A2,2)) - 9 * (B1 * (A3 * A2 - B3 * B2) +
T1:= POWER(A3,3) - 3 * A3 * POWER(B3,2);{REBOTTOMQ}
T2:= 3 * POWER(A3,2) * B3 - POWER(B3,3); {IMGBOTTOMQ}
{NEED TO ADD FOR ALL Q = 0 + 0i}
{I.E; FOR Q <> 0 + 0i THEN DO BELOW ... ELSE Q = 0 + 0i.}
COEFF2:= 1/(2916 * POWER(POWER(T1,2) + POWER(T2,2),2));
ALPHA:= COEFF2 * (POWER(S1 * T1 + S2 * T2,2) - POWER(S2 * T1 - T2 * S1,2)) +
(POWER(N1,3) - 3 * N1 * POWER(N2,2))/(POWER(3 * (POWER(A3,2) + POWER(B3,2)),6));
{ALPHA = REDISC}
BETA:= COEFF2 * (2 * (S1 * T1 + S2 * T2) * (S2 * T1 - T2 * S1)) +
(-POWER(N2,3) + 3 * N2 * POWER(N1,2))/(POWER(3 * (POWER(A3,2) + POWER(B3,2)),6));
{BETA = IMGDISC}
R:= SQRT(POWER(ALPHA,2) + POWER(BETA,2));
C:= SQRT(ABS((R + ALPHA))/2); {C = SQRT(R) * COS(THETA/2)}
S:= SQRT(ABS((R - ALPHA))/2); {S = SQRT(R) * SIN(THETA/2)}
{DISC^(1/2) = C + iS}
IF BETA < 0 THEN
S:= -S;
LAMDA:= -(1/(54 * (POWER(T1,2) + POWER(T2,2)))) * (S1 * T1 + S2 * T2) + C;
V:= -(1/(54 * (POWER(T1,2) + POWER(T2,2)))) * (S2 * T1 - T2 * S1) + S;
RAD:= SQRT(POWER(LAMDA,2) + POWER(V,2));
IF (LAMDA = 0) AND (V > 0) THEN {NEED |LAMDA| < 1/10^(N) FOR LARGE N}
ANGLE:= PI/2;
IF (LAMDA = 0) AND (V < 0) THEN
ANGLE:= 3 * PI/2;
IF LAMDA <> 0 THEN
BEGIN
ANGLE:= ARCTAN(ABS(V/LAMDA)); {INCLUDES V = 0}
{NEXT DO ALL 4 CASES FOR LAMDA AND V}
IF (LAMDA < 0) AND (V > 0) THEN
ANGLE:= PI - ANGLE;
IF (LAMDA < 0) AND (V < 0) THEN
ANGLE:= PI + ANGLE;
IF (LAMDA > 0) AND (V < 0) THEN
ANGLE:= 2 * PI - ANGLE;
IF (LAMDA > 0) AND (V > 0) THEN
ANGLE:= ANGLE;
END;
REW1:= NROOT(RAD,3) * COS(ANGLE/3);
REW2:= NROOT(RAD,3) * COS(ANGLE/3 + 2 * PI/3);
REW3:= NROOT(RAD,3) * COS(ANGLE/3 + 4 * PI/3);
IMGW1:= NROOT(RAD,3) * SIN(ANGLE/3);
IMGW2:= NROOT(RAD,3) * SIN(ANGLE/3 + 2 * PI/3);
IMGW3:= NROOT(RAD,3) * SIN(ANGLE/3 + 4 * PI/3);
POW:= POWER(NROOT(RAD,3),2);
REU1:= (1/(3 * POW)) * ((3 * POW - REP) * REW1 - IMGP * IMGW1);
REU2:= (1/(3 * POW)) * ((3 * POW - REP) * REW2 - IMGP * IMGW2);
REU3:= (1/(3 * POW)) * ((3 * POW - REP) * REW3 - IMGP * IMGW3);
IMGU1:= (1/(3 * POW)) * ((3 * POW + REP) * IMGW1 - IMGP * REW1);
IMGU2:= (1/(3 * POW)) * ((3 * POW + REP) * IMGW2 - IMGP * REW2);
IMGU3:= (1/(3 * POW)) * ((3 * POW + REP) * IMGW3 - IMGP * REW3);
POW2:= POWER(A3,2) + POWER(B3,2);
REV1:= (1/(3 * POW2)) * (3 * POW2 * REU1 - (A2 * A3 + B2 * B3));
REV2:= (1/(3 * POW2)) * (3 * POW2 * REU2 - (A2 * A3 + B2 * B3));
REV3:= (1/(3 * POW2)) * (3 * POW2 * REU3 - (A2 * A3 + B2 * B3));
IMGV1:= (1/(3 * POW2)) * (3 * POW2 * IMGU1 - (B2 * A3 - A2 * B3));
IMGV2:= (1/(3 * POW2)) * (3 * POW2 * IMGU2 - (B2 * A3 - A2 * B3));
IMGV3:= (1/(3 * POW2)) * (3 * POW2 * IMGU3 - (B2 * A3 - A2 * B3));
REW:= REV1; {NEED ONE ROOT FOR DEGREE4_COMPLEX}
IMGW:= IMGV1;
END;
PROCEDURE DEGREE4_COMPLEX(VAR A4,B4,A3,B3,A2,B2,A1,B1,A0,B0:EXTENDED; VAR REALX1,IMGX1,REALX2,IMGX2,REALX3,IMGX3,REALX4,IMGX4:EXTENDED);
VAR REP,IMGP,REQ,IMGQ,RER,IMGR,RE1,IMG1,RE2,IMG2,RE3,IMG3,R,THETA,REC,IMGC, TREA,TIMGA,REB,IMGB,RED,IMGD,ABSC2:EXTENDED; DP,DQ,DR,DZ,A33,B33:EXTENDED; STRREALX,STRIMGX:STRING; Sum:extended;
BEGIN
COMPLEX POLY COEFFS(RECOEFF 1,RECOEFF 2,RECOEFF 3,RECO EFF 4,RECOEFF_5,
IMGCOEFF 1,IMGCOEFF 2,IMGCOEFF 3,IMGCOEFF 4,IMGCOEFF_5,RE SOL,IMGSOL);
WRITELN(RECOEFF 1:0:4,' + i',IMGCOEFF 1:0:4,' * z^4 + ',RECOEFF 2:0:4,' + i',IMGCOEFF 2:0:4,' * z^3 + ');
WRITELN(RECOEFF 3:0:4,' + i',IMGCOEFF 3:0:4,' * z^2 + ',RECOEFF 4:0:4,' + i',IMGCOEFF 4:0:4,' * z + ');
WRITELN(RECOEFF 5:0:4,' + i',IMGCOEFF 5:0:4,' = 0');
writeln(mywork);
WRITELN(mywork,RECOEFF 1:0:4,' + i',IMGCOEFF 1:0:4,' * z^4 + ',RECOEFF 2:0:4,' + i',IMGCOEFF 2:0:4,' * z^3 + ');
WRITELN(mywork,RECOEFF 3:0:4,' + i',IMGCOEFF 3:0:4,' * z^2 + ',RECOEFF 4:0:4,' + i',IMGCOEFF 4:0:4,' * z + ');
WRITELN(mywork,RECOEFF 5:0:4,' + i',IMGCOEFF 5:0:4);
writeln(mywork);
DP:= 8 * POWER(POWER(A4,2) + POWER(B4,2),2);
REP:= (8 * (POWER(A4,2) + POWER(B4,2)) * (A2 * A4 + B2 * B4) - 3 * (POWER(A3 * A4 + B3 * B4,2)
IMGP:= (8 * (POWER(A4,2) + POWER(B4,2)) * (B2 * A4 - A2 * B4) - 6 * (A4 * B3 - B4 * A3) * (A3 * A4 + B3 * B4))/DP;
DQ:= 16 * POWER(POWER(A4,2) + POWER(B4,2),3);
A33:= POWER(A3,3) - 3 * A3 * POWER(B3,2);
B33:= 3 * POWER(A3,2) * B3 - POWER(B3,3);
REQ:= (16 * (POWER(POWER(A4,2) + POWER(B4,2),2) * (A1 * A4 + B1 * B4)) -
(POWER(A4,2) - POWER(B4,2)) +
POWER(B4,2)) -
IMGQ:= (16 * (POWER(POWER(A4,2) + POWER(B4,2),2) * (A4 * B1 - B4 * A1)) -
(POWER(A4,2) - POWER(B4,2)) -
POWER(B4,2)) +
DR:= 256 * POWER(POWER(A4,2) + POWER(B4,2),4);
RER:= (256 * POWER(POWER(A4,2) + POWER(B4,2),3) * (A4 * A0 + B4 * B0) - 64 * POWER(POWER(A4,2) + POWER(B4,2),2)
* A1) * (A4 * B4))
POWER(B3,2)) - 2 * A3 * B2 * B3)
POWER(B3,2)) + 2 * A2 * A3 * B3)
B4,4) - 6 * (POWER(A3 * A4 + B3 * B4,2))
IMGR:= (-256 * POWER(POWER(A4,2) + POWER(B4,2),3) * (B4 * A0 - A4 * B0) - 64 * POWER(POWER(A4,2) + POWER(B4,2),2)
* B3) * (A4 * B4))
POWER(B3,2)) + 2 * A2 * A3 * B3)
POWER(B3,2)) - 2 * A3 * B2 * B3)
* B4,3) * (B3 * A4 - A3 * B4)
RE1:= 2 * REP;
IMG1:= 2 * IMGP;
RE2:= POWER(REP,2) - POWER(IMGP,2) - 4 * RER;
IMG2:= 2 * REP * IMGP - 4 * IMGR;
RE3:= -(POWER(REQ,2) - POWER(IMGQ,2));
IMG3:= -(2 * REQ * IMGQ);
CUBICCOMPLEX2(1,0,RE1,IMG1,RE2,IMG2,RE3,IMG3,REW,IMGW);
R:= SQRT(POWER(REW,2) + POWER(IMGW,2));
R:= SQRT(R);
if rew = 0 then
begin
if imgw > 0 then
theta:= pi/2;
if imgw < 0 then
theta:= 3 * pi/2;
end;
if rew <> 0 then
begin
theta:= arctan(abs(imgw/rew));
if (imgw < 0) and (rew > 0) then
theta:= 2 * pi - theta;
if (imgw > 0) and (rew < 0) then
theta:= pi - theta;
if (imgw < 0) and (rew < 0) then
theta:= pi + theta;
if (imgw = 0) and (rew > 0) then
theta:= 0;
if (imgw = 0) and (rew < 0) then
theta:= pi;
end;
REC:= R * COS(THETA/2);
IMGC:= R * SIN(THETA/2);
TREA:= -REC;
TIMGA:= -IMGC;
ABSC2:= POWER(REC,2) + POWER(IMGC,2);
REB:= (ABSC2 * (POWER(REC,2) - POWER(IMGC,2)) + ABSC2 * REP + REQ * REC + IMGQ * IMGC)/(2 * ABSC2);
IMGB:= (2 * ABSC2 * REC * IMGC + ABSC2 * IMGP + IMGQ * REC - REQ * IMGC)/(2 * ABSC2);
RED:= (ABSC2 * (POWER(REC,2) - POWER(IMGC,2)) + ABSC2 * REP - (REQ * REC + IMGQ * IMGC))/(2 * ABSC2);
IMGD:= (2 * ABSC2 * REC * IMGC + ABSC2 * IMGP - (IMGQ * REC - REQ * IMGC))/(2 * ABSC2);
COMPLEX_QUADRADTIC(1,0,TREA,TIMGA,REB,IMGB,REU1,IMGU1,REU2, IMGU2);
COMPLEX_QUADRADTIC(1,0,REC,IMGC,RED,IMGD,REU3,IMGU3,REU4,I MGU4);
DZ:= 4 * (POWER(A4,2) + POWER(B4,2));
REALX1:= (DZ * REU1 - (A3 * A4 + B3 * B4))/DZ;
IMGX1:= (DZ * IMGU1 - (B3 * A4 - A3 * B4))/DZ;
REALX2:= (DZ * REU2 - (A3 * A4 + B3 * B4))/DZ;
IMGX2:= (DZ * IMGU2 - (B3 * A4 - A3 * B4))/DZ;
REALX3:= (DZ * REU3 - (A3 * A4 + B3 * B4))/DZ;
IMGX3:= (DZ * IMGU3 - (B3 * A4 - A3 * B4))/DZ;
REALX4:= (DZ * REU4 - (A3 * A4 + B3 * B4))/DZ;
IMGX4:= (DZ * IMGU4 - (B3 * A4 - A3 * B4))/DZ;
STR(REALX1:0:4,STRREALX);
STR(IMGX1:0:4,STRIMGX);
WRITELN(STRREALX + ' + i' + STRIMGX);
writeln(mywork,STRREALX + ' + i' + STRIMGX);
STR(REALX2:0:4,STRREALX);
STR(IMGX2:0:4,STRIMGX);
WRITELN(STRREALX + ' + i' + STRIMGX);
writeln(mywork,STRREALX + ' + i' + STRIMGX);
STR(REALX3:0:4,STRREALX);
STR(IMGX3:0:4,STRIMGX);
WRITELN(STRREALX + ' + i' + STRIMGX);
WRITELN(mywork,STRREALX + ' + i' + STRIMGX);
STR(REALX4:0:4,STRREALX);
STR(IMGX4:0:4,STRIMGX);
WRITELN(STRREALX + ' + i' + STRIMGX);
writeln(mywork,STRREALX + ' + i' + STRIMGX);
{For brillant only}
sum:= realx1 + realx2 + realx3+ realx4 + imgx1 + imgx2 + imgx3 + imgx4;
writeln(mywork);
writeln(mywork,'Sum = ',sum:0:4);
writeln;
writeln('Sum = ',sum:0:4);
END;
PROCEDURE GETCOMPLEXROOTS(VAR REZ1,IMGZ1,REZ2,IMGZ2,REZ3,IMGZ3,REZ4,IMGZ4:EXTENDED);
BEGIN
DEGREE4 COMPLEX(RECOEFF 1,IMGCOEFF 1,RECOEFF 2,IMGCOEFF 2,RECOEFF 3,IMGCOEFF 3,RECOEFF 4,IMGCOEFF 4, RECOEFF 5,IMGCOEFF_5,REZ1,IMGZ1,REZ2,IMGZ2,REZ3,IMGZ3,REZ4,IMGZ4);
END;
begin
assign(mywork,'cmywork.txt');
rewrite(mywork);
getsize;
getcoefficients;
getaugmentedmatrix;
for l:= 1 to m do
begin{l}
safeguard(rea,imga,l,p,v);
if v = 0 then
begin{then}
operation1(rea,imga,l);
operation2(rea,imga,l);
end;{then}
end;{l}
showdata;
GETCOMPLEXROOTS(REZ1,IMGZ1,REZ2,IMGZ2,REZ3,IMGZ3,REZ4,IMGZ4);
close(mywork);
readln;
readln;
end.