An algebra problem by Rocco Dalto

Algebra Level pending

Let f : C 4 C 4 f: \mathbb C^4 \rightarrow \mathbb 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 ( 11 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 + 11 i ) z 2 + ( 2 i ) z 3 + ( 5 + 3 i ) z 4 ) f \left( \begin{array}{cccc} z_{1} \\ z_{2} \\ z_{3} \\ z_{4} \\ \end{array} \right) = \left( \begin{array}{cccc} (2 - i) * z_{1} + (3 + 5i) * z_{2} + (-7 + 2i) * z_{3} + (1 + 3i) * z_{4}\\ (11 - 5i) * z_{1} + (2 + 4i) * z_{2} + (6 + 5i) * z_{3} + (4 + 2i) * z_{4}\\ (-1 + 2i) * z_{1} + (-3 + 4i) * z_{2} = (9 - 7i) * z_{3} + (6 + 5i) * z_{4} \\ (3 - 2i) * z_{1} + (8 + 11i) * z^2 + (2 - i) * z^3 + (5 + 3i) * z_{4} \end{array} \right) , where z 1 , z 2 , z 3 , z 4 C z_{1},z_{2},z_{3},z_{4} \in \mathbb C

and A = { ( 1 2 i 3 4 i 5 6 i 7 8 i ) , ( 2 5 i 6 + 11 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 ) } A = \left \{ \left( \begin{array}{cccc} 1 - 2i \\ 3 - 4i \\ 5 - 6i \\ 7 - 8i \end{array} \right), \left( \begin{array}{cccc} 2 - 5i \\ 6 + 11i \\ 8 - 7i \\ 3 + 2i \end{array} \right), \left( \begin{array}{cccc} 8 - 7i \\ 5 - 6i \\ 3 - 4i \\ 2 + i \\ \end{array} \right), \left( \begin{array}{cccc} 9 - 8i \\ 7 - 5i \\ 6 + 4i \\ 3 -2i \\ \ \end{array} \right) \right \} be basis for C 4 \mathbb C^4 (Domain ( f ) ) (f)) and

B = { ( 1 + 2 i 3 + 4 i 5 + 6 i 7 + 8 i ) , ( 7 + i 2 3 i 11 + 7 i 6 + 5 i ) , ( 8 7 i 5 6 i 4 + 2 i 1 11 i ) , ( 7 i 3 + 2 i 4 + 8 i 17 11 i ) } B = \left \{ \left( \begin{array}{cccc} 1 + 2i\\ 3 + 4i \\ 5 + 6i \\ 7 + 8i \end{array} \right), \left( \begin{array}{cccc} -7 + i \\ 2 - 3i \\ 11 + 7i \\ 6 + 5i \end{array} \right), \left( \begin{array}{cccc} 8 - 7i \\ 5 - 6i \\ 4 + 2i \\ 1 - 11i \end{array} \right), \left( \begin{array}{cccc} 7 - i \\ 3 + 2i \\ -4 + 8i \\ 17 - 11i \\ \ \end{array} \right) \right \} be a basis for C 4 \mathbb C^4 (Range ( f ) ) (f)) .

If M = [ a j k + b j k i ] 4 x 4 M = [a_{jk} + b_{jk}i]_{4 \: x \: 4} represents the linear transform above and for ( 1 < = j < = 4 ) , (1 <= j <= 4), λ j = α j + β j i \lambda_{j} = \alpha_{j} + \beta_{j}i are eigenvalues for matrix M M , find j = 1 4 λ j \sum_{j = 1}^{4} \lambda_{j} and express the answer as j = 1 4 α j + j = 1 4 β j \sum_{j = 1}^{4} \alpha_{j} + \sum_{j = 1}^{4} \beta_{j} .

General Case:

Let f : C 4 C 4 f: \mathbb C^4 \rightarrow \mathbb C^4 be linear transform defined by:

f ( z 1 z 2 z 3 z 4 ) = ( c 11 z 1 + c 12 z 2 + c 13 z 3 + c 14 z 4 c 21 z 1 + c 22 z 2 + c 23 z 3 + c 24 z 4 c 31 z 1 + c 32 z 2 + c 33 z 3 + c 34 z 4 c 41 z 1 + c 42 z k + c 43 z n + c 44 z 4 ) f \left( \begin{array}{cccc} z_{1} \\ z_{2} \\ z_{3} \\ z_{4} \\ \end{array} \right) = \left( \begin{array}{cccc} c_{11} * z_{1} + c_{12} * z_{2} + c_{13} * z_{3} + c_{14} * z_{4}\\ c_{21} * z_{1} + c_{22} * z_{2} + c_{23} * z_{3} + c_{24} * z{4}\\ c_{31} * z_{1} + c_{32} * z_{2}+ c_{33} * z_{3} + c_{34} * z{4} \\ c_{41} * z_{1} + c_{42} * z_{k}+ c_{43} * z_{n} + c_{44} * z_{4} \end{array} \right) , where z k , c j k C z_{k}, c_{jk} \in \mathbb C for each ( 1 < = k < = 4 ) (1 <= k <= 4) and ( 1 < = j < = 4 ) (1 <= j <= 4)

Let V j = ( v 1 j v 2 j v 3 j v 4 j ) C 4 V_{j} = \left( \begin{array}{cccc} v_{1j} \\ v_{2j} \\ v_{3j} \\ v_{4j} \\ \end{array} \right) \in \mathbb C^4

and A = { V j ( 1 < = j < = 4 ) } A = \{ V_{j} | (1 <= j <= 4) \} be a basis for C 4 ( D o m a i n ( f ) ) \mathbb C^4 (Domain(f)) .

Let W j = ( w 1 j w 2 j w 3 j w 4 j ) C 4 W_{j} = \left( \begin{array}{cccc} w_{1j} \\ w_{2j} \\ w_{3j} \\ w_{4j} \end{array} \right) \in \mathbb C^4 .

and B = { W j ( 1 < = j < = 4 ) } B = \{ W_{j} | (1 <= j <= 4) \} be a basis for C 4 ( R a n g e ( f ) ) \mathbb C^4(Range(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 M = [a_{jk} + b_{jk}i]_{4 \: x \: 4} and j = 1 4 λ j \sum_{j = 1}^{4} \lambda_{j} and compute the sum j = 1 4 α j + j = 1 4 β j \sum_{j = 1}^{4} \alpha_{j} + \sum_{j = 1}^{4} \beta_{j} .

You can use the program written to compute j = 1 4 α j + j = 1 4 β j \sum_{j = 1}^{4} \alpha_{j} + \sum_{j = 1}^{4} \beta_{j} for the given problem above.


The answer is 14.5535.

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.

1 solution

Rocco Dalto
May 7, 2017

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 f: \mathbb C^4 \rightarrow \mathbb C^4 is a linear transform, for each integer j ( 1 < = j < = 4 ) j \ni (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 11 + 7 i 6 + 5 i ) + α 3 j ( 8 7 i 5 6 i 4 + 2 i 1 11 i ) + α 4 j ( 7 i 3 + 2 i 4 + 8 i 17 11 i ) f \left( \begin{array}{ccc} z_{1j} \\ z_{2j} \\ z_{3j} \\ z_{4j} \\ \end{array} \right) = \alpha_{1j} * \left( \begin{array}{cccc} 1 + 2i\\ 3 + 4i \\ 5 + 6i \\ 7 + 8i \end{array} \right) + \alpha_{2j} * \left( \begin{array}{cccc} -7 + i \\ 2 - 3i \\ 11 + 7i \\ 6 + 5i \end{array} \right) + \alpha_{3j} * \left( \begin{array}{cccc} 8 - 7i \\ 5 - 6i \\ 4 + 2i \\ 1 - 11i \end{array} \right) +\alpha_{4j} * \left( \begin{array}{cccc} 7 - i \\ 3 + 2i \\ -4 + 8i \\ 17 - 11i \end{array} \right)

= [ 1 + 2 i 7 + i 8 7 i 7 i 3 + 4 i 2 3 i 5 6 i 3 + 2 i 5 + 6 i 11 + 7 i 4 + 2 i 4 + 8 i 7 + 8 i 6 + 5 i 1 11 i 17 11 i ] α 1 j α 2 j α 3 j α 4 j = \begin{bmatrix}{1 + 2i} && {-7 + i} && {8 - 7i} && {7 - i}\\ {3 + 4i} && {2 - 3i} && {5 - 6i} && {3 + 2i}\\ {5 + 6i} && {11 + 7i} && {4 +2i} && {-4 + 8i}\\ {7 + 8i} && {6 + 5i} && {1 - 11i} && {17 - 11i} \end{bmatrix} * \begin{vmatrix}{\alpha_{1j}} \\{\alpha_{2j}} \\ {\alpha_{3j}} \\ {\alpha_{4j}}\end{vmatrix}

where α 1 j , α 2 j , α 3 j , α 4 j C \alpha_{1j}, \alpha_{2j}, \alpha_{3j}, \alpha_{4j} \in \mathbb C

and f ( 1 2 i 3 4 i 5 6 i 7 8 i ) = ( 37 + 63 i 83 + 127 i 40 + 26 i 15 14 i ) f \left( \begin{array}{cccc} 1 - 2i \\ 3 - 4i \\ 5 - 6i \\ 7 - 8i \\ \end{array} \right) = \left( \begin{array}{cccc} 37 + 63i \\ -83 + 127i \\ 40 + 26i \\ 15 - 14i \\ \end{array} \right)

f ( 2 5 i 6 + 11 i 8 7 i 3 + 2 i ) = ( 127 52 i 56 7 i 131 110 i 125 63 i ) f \left( \begin{array}{cccc} 2 - 5i \\ 6 + 11i \\ 8 - 7i \\ 3 + 2i \\ \end{array} \right) = \left( \begin{array}{cccc} 127 - 52i \\ 56 - 7i \\ 131 - 110i \\ 125 - 63i \end{array} \right)

f ( 8 7 i 5 6 i 3 4 i 2 + i ) = ( 95 74 i 23 92 i 21 + 20 i 116 + 66 i ) f \left( \begin{array}{cccc} 8 - 7i \\ 5 - 6i \\ 3 - 4i \\ 2 + i \\ \end{array} \right) = \left( \begin{array}{cccc} 95 - 74i \\ -23 - 92i \\ 21 + 20i \\ 116 + 66i \\ \end{array} \right)

f ( 9 8 i 7 5 i 6 + 4 i 3 2 i ) = ( 130 43 i 59 + 132 i 125 30 i 159 4 i ) f \left( \begin{array}{cccc} 9 - 8i \\ 7 - 5i \\ 6 + 4i \\ 3 -2i \\ \end{array} \right) = \left( \begin{array}{cccc} 130 - 43i \\ -59 + 132i \\ 125 - 30i \\ 159 - 4i \\ \end{array} \right)

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 7 + i 8 7 i 7 i 37 + 63 i 83 + 127 i 40 + 26 i 15 + 14 i 3 + 4 i 2 3 i 5 6 i 3 + 2 i 127 52 i 56 7 i 131 110 i 125 63 i 5 + 6 i 11 + 7 i 4 + 2 i 4. + 8 i 95 74 i 23 i 92 i 21 + 20 i 116 + 66 i 7 + 8 i 6 + 5 i 1 11 i 17 11 i 130 43 i 59 + 132 i 125 30 i 159 4 i ] \left[ \begin{array}{cccc|cccc} 1 + 2i & -7 + i & 8 - 7i & 7 - i & 37 + 63i & -83 + 127i & 40 + 26i & 15 + - 14i\\ 3 + 4i & 2 - 3i & 5 - 6i & 3 + 2i & 127 - 52i & 56 - 7i & 131 - 110i & 125 - 63i \\ 5 + 6i & 11 + 7i & 4 + 2i & -4. + 8i & 95 - 74i & -23 i- 92i & 21 +20i & 116 + 66i \\ 7 + 8i & 6 + 5i & 1 - 11i & 17 - 11i & 130 - 43i & -59 + 132i & 125 - 30i & 159 - 4i \\ \ \end{array} \right]

Refer to previous problem for row operations. . .

Using row operation we solve for matrix M M obtaining:

M = [ 9.5092 17.3602 i 19.5531 11.4032 i 22.3483 8.2119 i 3.7798 11.1438 i 5.8734 + 3.3746 i 7.8190 + 7.8931 i 14.6273 + 7.3921 i 10.2018 + 5.9260 i 1.4659 + 13.7409 i 7.1655 + 18.5113 i 9.4243 + 16.1723 i 5.2315 + 6.5938 i 7.5783 + 1.4119 i 13.9574 + 1.8195 i 5.6573 + 6.7085 i 2.3819 + 2.4960 i ] M = \begin{bmatrix}{-9.5092 - 17.3602i} && {-19.5531 - 11.4032i} && {-22.3483 - 8.2119i} && {-3.7798 - 11.1438i}\\ {5.8734 + 3.3746i} && {7.8190 + 7.8931i} && {14.6273 + 7.3921i} && {10.2018 + 5.9260i}\\ {1.4659 + 13.7409i} && { -7.1655 + 18.5113i} && {9.4243 + 16.1723i} && { 5.2315 + 6.5938i}\\ {-7.5783 + 1.4119i} && {-13.9574 +1.8195i} && {-5.6573 +6.7085i} && {-2.3819 + 2.4960i}\end{bmatrix}

To find the eigenvalues we calculate det ( M λ I ) = 0 \det(M - \lambda * I) = 0 obtaining:

λ 4 + ( 5.3522 9.2013 i ) λ 3 + ( 585.2473 102.4948 i ) λ 2 + ( 1686.5838 + 3479.3919 i ) λ \lambda^4 + (-5.3522 -9.2013i) * \lambda^3 + (585.2473 -102.4948i) * \lambda^2 + (-1686.5838 + 3479.3919i) * \lambda + ( 7356.6016 + 9105.8547 i ) = 0 + (7356.6016 + 9105.8547i) = 0

\implies

λ 1 = 4.0062 + 31.0478 i \lambda_{1} = 4.0062 + 31.0478i

λ 2 = 4.3122 17.1633 i \lambda_{2} = -4.3122 -17.1633i

λ 3 = 6.6889 6.6688 i \lambda_{3} = 6.6889 - 6.6688i

λ 4 = 1.0307 + 1.9855 i \lambda_{4} = -1.0307 + 1.9855i

w h e r e , λ j = α j + β j i where, \lambda_{j} = \alpha_{j} + \beta_{j}i for ( 1 < = j < = 4 ) (1 <= j <= 4)

\implies

j = 1 4 α j + j = 1 4 β j = 14.5535 \sum_{j = 1}^{4} \alpha_{j} + \sum_{j = 1}^{4} \beta{j} = \boxed{14.5535}

I wrote the program in Free Pascal:

program matrixrepresentaionoflineartransform complex extension;

{special case - restricted to f:R4 --> R4}

uses crt;

                                {self contained for brillant}

const maxnum = 100;

type matrix = array[1 .. maxnum,1 .. maxnum] of real;

var coeffa,coeffb,reb,imgb,rea,imga,resol,imgsol:matrix;

n,m,l,p,v:integer;

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;

  count:integer;

begin{nroot}

IF (ABS(X) >= 1) THEN

BEGIN

left:= 1; right:= ABS(x);

END;

IF (ABS(X) < 1) THEN

BEGIN

LEFT:= ABS(X);    RIGHT:= 1;

END;

    midpt:= (left + right)/2;

count:= 1;

 repeat

if power(midpt,n) > ABS(x) then {X CAN < 0 FOR N ODD}

    right:= midpt                {ASSUMES X >= 0 FOR N EVEN}

else

    left:= midpt;


    count:= count + 1;

midpt:= (left + right)/2;

diff:= abs(ABS(x) - power(midpt,n));

  until((diff < error) or (count = 100));

IF (X < 0) AND (N MOD 2 = 1) THEN

nroot:= -1 * midpt;

IF (X >= 0) THEN

NROOT:= MIDPT;

IF (X < 0) AND (N MOD 2 = 0) THEN

HALT;

 end;{nroot}

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;

revec,imgvec:matrix;

resum,imgsum:real;

myfile:text;

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;

z,w:real;

begin{switch}

for q:= 1 to m + n do

begin{m}

   z:= c[l,q];

   c[l,q]:= c[p,q];

   c[p,q]:= z;

   w:= d[l,q];

   d[l,q]:= d[p,q];

   d[p,q]:= w;

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}

        p:= q + 1;

        switch(c,d,l,p);

        v:= 0;

end;{then}

q:= q + 1;

end;{loop}

end;{then}

end;{safeguard}

procedure operation1(var a,b:matrix; l:integer);

var q,k:integer;

res,imgs:matrix;

reinvz,imginvz:real;

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;

x,y:real;

res,imgs:matrix;

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;

myfile2:text;

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) *

    (-B2 + S));

IMGU1:= (1/(2 * R1)) * ((A1/R1) * (-B2 + S) - (B1/R1) *

     (-A2 + C));

REU2:= (1/(2 * R1)) * ((A1/R1) * (-A2 - C) + (B1/R1) *

    (-B2 - S));

IMGU2:= (1/(2 * R1)) * ((A1/R1) * (-B2 - S) - (B1/R1) *

     (-A2 - C));

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) -

 B1 * (B3 * A2 + A3 * B2)) + 27 * (A0 * (POWER(A3,2) - POWER(B3,2)) -

 2 * A3 * B3 * B0);   {RETOPQ}

S2:= 2 * (-POWER(B2,3) + 3 * B2 * POWER(A2,2)) - 9 * (B1 * (A3 * A2 - B3 * B2) +

 A1 * (B3 * A2 + A3 * B2)) + 27 * (B0 * (POWER(A3,2) - POWER(B3,2)) +

 2 * A3 * B3 * A0);   {IMGTOPQ}

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)

  - POWER(B3 * A4 - A3 * B4,2)))/DP;

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)) -

  8 * (POWER(A4,2) + POWER(B4,2)) * ((A2 * A3 - B2 * B3) *

(POWER(A4,2) - POWER(B4,2)) +

  2 * (B2 * A3 + A2 * B3) * (A4 * B4)) + 2 * (A33 * (POWER(A4,3) - 3 * A4 *

POWER(B4,2)) -

  B33 * (POWER(B4,3) - 3 * POWER(A4,2) * B4)))/DQ;

IMGQ:= (16 * (POWER(POWER(A4,2) + POWER(B4,2),2) * (A4 * B1 - B4 * A1)) -

  8 * (POWER(A4,2) + POWER(B4,2)) * ((B2 * A3 + A2 * B3) *

(POWER(A4,2) - POWER(B4,2)) -

  2 * (A2 * A3 - B2 * B3) * (A4 * B4)) + 2 * (B33 * (POWER(A4,3) - 3 * A4 *

POWER(B4,2)) +

  A33 * (POWER(B4,3) - 3 * POWER(A4,2) * B4)))/DQ;

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 * A3 - B1 * B3) * (POWER(A4,2) - POWER(B4,2)) + 2 * (B1 * A3 + B3

* A1) * (A4 * B4))

  + 16 * (POWER(A4,2) + POWER(B4,2)) * ((A2 * (POWER(A3,2) -

POWER(B3,2)) - 2 * A3 * B2 * B3)

  * (POWER(A4,3) - 3 * A4 * POWER(B4,2)) - (B2 * (POWER(A3,2) -

POWER(B3,2)) + 2 * A2 * A3 * B3)

  * (POWER(B4,3) - 3 * B4 * POWER(A4,2))) - 3 * (POWER(A3 * A4 + B3 *

B4,4) - 6 * (POWER(A3 * A4 + B3 * B4,2))

  * POWER(B3 * A4 - A3 * B4,2) + POWER(B3 * A4 - A3 * B4,4)))/DR;

IMGR:= (-256 * POWER(POWER(A4,2) + POWER(B4,2),3) * (B4 * A0 - A4 * B0) - 64 * POWER(POWER(A4,2) + POWER(B4,2),2)

  * ((B1 * A3 + B3 * A1) * (POWER(A4,2) - POWER(B4,2)) - 2 * (A1 * A3 - B1

* B3) * (A4 * B4))

  + 16 * (POWER(A4,2) + POWER(B4,2)) * ((B2 * (POWER(A3,2) -

POWER(B3,2)) + 2 * A2 * A3 * B3)

  * (POWER(A4,3) - 3 * A4 * POWER(B4,2)) + (A2 * (POWER(A3,2) -

POWER(B3,2)) - 2 * A3 * B2 * B3)

  * (POWER(B4,3) - 3 * B4 * POWER(A4,2))) - 3 * (4 * POWER(A3 * A4 + B3

* B4,3) * (B3 * A4 - A3 * B4)

  - 4 * (A3 * A4 + B3 * B4) * POWER(B3 * A4 - A3 * B4,3)))/DR;

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.

0 pending reports

×

Problem Loading...

Note Loading...

Set Loading...