Let f : P 2 → A 2 X 2 be linear transform defined by:
f ( p 1 + p 2 ∗ x + p 3 ∗ x 2 ) = ∣ ∣ ∣ ∣ p 1 − p 2 + p 3 3 ∗ p 1 + p 2 − 2 ∗ p 3 2 ∗ p 1 − 3 ∗ p 2 − p 3 4 ∗ p 1 + 2 ∗ p 2 + p 3 ∣ ∣ ∣ ∣
Let A = { 1 + 2 ∗ x + 3 ∗ x 2 , 3 − 2 ∗ x + 4 ∗ x 2 , 5 + 4 ∗ x + 3 ∗ x 2 } be a basis for P 2 .
Let B = { ∣ ∣ ∣ ∣ 1 3 2 4 ∣ ∣ ∣ ∣ , ∣ ∣ ∣ ∣ − 2 7 5 2 ∣ ∣ ∣ ∣ , ∣ ∣ ∣ ∣ 1 2 1 − 1 ∣ ∣ ∣ ∣ , ∣ ∣ ∣ ∣ 3 − 1 2 4 ∣ ∣ ∣ ∣ } be a basis for A 2 X 2 .
If M = [ a i j ] 4 x 3 represents the linear transform above find S = i = 1 ∑ 4 j = 1 ∑ 3 a i j .
Express the result to four decimal places.
If your interested you can write a program(in any language) for the General Case below and use it to find the above result.
For General Case:
Let f : P m − 1 → A n X n be linear transform defined by:
f ( p 1 + p 2 ∗ x + p 3 ∗ x 2 + . . . + p m ∗ x m − 1 ) = [ S p j ( p 1 , p 2 , . . . , p m ) ] n X n , where S p j ( p 1 , p 2 , . . . , p m ) = ∑ p = 1 n ∑ j = 1 n ∑ k = 1 m c j k p ∗ p k .
Let W q = p 1 q + p 2 q ∗ x + . . . + p m q ∗ x m − 1 ∈ P m − 1
and A = { W q ∣ ( 1 < = q < = m ) } be a basis for P m − 1 .
Let M q = [ a j k q ] n X n and
B = { M q ∣ ( 1 < = q < = n 2 ) } be a basis for A n X n .
Write a program in any language to find the matrix M = [ a i j ] n 2 x m representation of the general linear transform above and the sum S = i = 1 ∑ n 2 j = 1 ∑ m a i j .
Make certain A and B are bases for P m − 1 and A n X n .
You can use the program written to find the matrix M = [ a i j ] 4 x 3 that represents the linear transform above and output S = i = 1 ∑ 4 j = 1 ∑ 3 a i j .
Let p = 1 − 2 ∗ x + x 2
To check the matrix M = [ a i j ] 4 x 3 found, first find [ f ( p ) ] B without using the matrix M = [ a i j ] 4 x 3 , then find [ f ( p ) ] B using the matrix M = [ a i j ] 4 x 3 .
Refer to previous problem. . .
I intentional used p 1 + p 2 ∗ x + p 3 ∗ x 2 + . . . + p m ∗ x m − 1 instead of the traditional p 0 + p 1 ∗ x + p 2 ∗ x 2 + . . . + p m ∗ x m
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.
Since f : P 2 → A 2 X 2 is a linear transform, for each integer j ∋ ( 1 < = j < = 3 ) f ( p 1 j + p 2 j ∗ x + p 3 j ∗ x 2 ) = α 1 j ∗ ∣ ∣ ∣ ∣ 1 3 2 4 ∣ ∣ ∣ ∣ + α 2 j ∗ ∣ ∣ ∣ ∣ − 2 7 5 2 ∣ ∣ ∣ ∣ + α 3 j ∗ ∣ ∣ ∣ ∣ 1 2 1 − 1 ∣ ∣ ∣ ∣ + α 4 j ∗ ∣ ∣ ∣ ∣ 3 − 1 2 4 ∣ ∣ ∣ ∣ = ⎣ ⎢ ⎢ ⎡ 1 2 3 4 − 2 5 7 2 1 1 2 − 1 3 2 − 1 4 ⎦ ⎥ ⎥ ⎤ * ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ α 1 j α 2 j α 3 j α 4 j ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣
where,
f ( 1 + 2 ∗ x + 3 ∗ x 2 ) = ∣ ∣ ∣ ∣ 2 − 1 − 7 1 1 ∣ ∣ ∣ ∣
f ( 3 − 2 ∗ x + 4 ∗ x 2 ) = ∣ ∣ ∣ ∣ 9 − 1 8 1 2 ∣ ∣ ∣ ∣
f ( 5 + 4 ∗ x + 3 ∗ x 2 ) = ∣ ∣ ∣ ∣ 4 1 3 − 5 3 1 ∣ ∣ ∣ ∣
Using the above we can set up the augmented matrix below to solve for the
three 4 X 4 systems of equations.
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 2 3 4 − 2 5 7 2 1 1 2 − 1 3 2 − 1 4 2 − 7 − 1 1 1 9 8 − 1 1 2 4 − 5 1 3 3 1 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
− 2 . 0 0 0 0 ∗ R O W 1 + R O W 2
− 3 . 0 0 0 0 ∗ R O W 1 + R O W 3
− 4 . 0 0 0 0 ∗ R O W 1 + R O W 4
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 − 2 . 0 0 0 0 9 . 0 0 0 0 1 3 . 0 0 0 0 1 0 . 0 0 0 0 1 . 0 0 0 0 − 1 . 0 0 0 0 − 1 . 0 0 0 0 − 5 . 0 0 0 0 3 . 0 0 0 0 − 4 . 0 0 0 0 − 1 0 . 0 0 0 0 − 8 . 0 0 0 0 2 . 0 0 0 0 − 1 1 . 0 0 0 0 − 7 . 0 0 0 0 3 . 0 0 0 0 9 . 0 0 0 0 − 1 0 . 0 0 0 0 − 2 8 . 0 0 0 0 − 2 4 . 0 0 0 0 4 . 0 0 0 0 − 1 3 . 0 0 0 0 1 . 0 0 0 0 1 5 . 0 0 0 0 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
0 . 1 1 1 1 ∗ R o w 2
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 − 2 . 0 0 0 0 1 . 0 0 0 0 1 3 . 0 0 0 0 1 0 . 0 0 0 0 1 . 0 0 0 0 − 0 . 1 1 1 1 − 1 . 0 0 0 0 − 5 . 0 0 0 0 3 . 0 0 0 0 − 0 . 4 4 4 4 − 1 0 . 0 0 0 0 − 8 . 0 0 0 0 2 . 0 0 0 0 − 1 . 2 2 2 2 − 7 . 0 0 0 0 3 . 0 0 0 0 9 . 0 0 0 0 − 1 . 1 1 1 1 − 2 8 . 0 0 0 0 − 2 4 . 0 0 0 0 4 . 0 0 0 0 − 1 . 4 4 4 4 1 . 0 0 0 0 1 5 . 0 0 0 0 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
2 . 0 0 0 0 ∗ R O W 2 + R O W 1
− 1 3 . 0 0 0 0 ∗ R O W 2 + R O W 3
− 1 0 . 0 0 0 0 ∗ R O W 2 + R O W 4
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 7 7 7 8 − 0 . 1 1 1 1 0 . 4 4 4 4 − 3 . 8 8 8 9 2 . 1 1 1 1 − 0 . 4 4 4 4 − 4 . 2 2 2 2 − 3 . 5 5 5 6 − 0 . 4 4 4 4 − 1 . 2 2 2 2 8 . 8 8 8 9 1 5 . 2 2 2 2 6 . 7 7 7 8 − 1 . 1 1 1 1 − 1 3 . 5 5 5 6 − 1 2 . 8 8 8 9 1 . 1 1 1 1 − 1 . 4 4 4 4 1 9 . 7 7 7 8 2 9 . 4 4 4 4 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
2 . 2 5 0 0 ∗ R o w 3
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 7 7 7 8 − 0 . 1 1 1 1 1 . 0 0 0 0 − 3 . 8 8 8 9 2 . 1 1 1 1 − 0 . 4 4 4 4 − 9 . 5 0 0 0 − 3 . 5 5 5 6 − 0 . 4 4 4 4 − 1 . 2 2 2 2 2 0 . 0 0 0 0 1 5 . 2 2 2 2 6 . 7 7 7 8 − 1 . 1 1 1 1 − 3 0 . 5 0 0 0 − 1 2 . 8 8 8 9 1 . 1 1 1 1 − 1 . 4 4 4 4 4 4 . 5 0 0 0 2 9 . 4 4 4 4 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
− 0 . 7 7 7 8 ∗ R O W 3 + R O W 1
0 . 1 1 1 1 ∗ R O W 3 + R O W 2
3 . 8 8 8 9 ∗ R O W 3 + R O W 4
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 1 . 0 0 0 0 0 . 0 0 0 0 9 . 5 0 0 0 − 1 . 5 0 0 0 − 9 . 5 0 0 0 − 4 0 . 5 0 0 0 − 1 6 . 0 0 0 0 1 . 0 0 0 0 2 0 . 0 0 0 0 9 3 . 0 0 0 0 3 0 . 5 0 0 0 − 4 . 5 0 0 0 − 3 0 . 5 0 0 0 − 1 3 1 . 5 0 0 0 − 3 3 . 5 0 0 0 3 . 5 0 0 0 4 4 . 5 0 0 0 2 0 2 . 5 0 0 0 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
− 0 . 0 2 4 7 ∗ R o w 4
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 1 . 0 0 0 0 0 . 0 0 0 0 9 . 5 0 0 0 − 1 . 5 0 0 0 − 9 . 5 0 0 0 1 . 0 0 0 0 − 1 6 . 0 0 0 0 1 . 0 0 0 0 2 0 . 0 0 0 0 − 2 . 2 9 6 3 3 0 . 5 0 0 0 − 4 . 5 0 0 0 − 3 0 . 5 0 0 0 3 . 2 4 6 9 − 3 3 . 5 0 0 0 3 . 5 0 0 0 4 4 . 5 0 0 0 − 5 . 0 0 0 0 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
− 9 . 5 0 0 0 ∗ R O W 4 + R O W 1
1 . 5 0 0 0 ∗ R O W 4 + R O W 2
9 . 5 0 0 0 ∗ R O W 4 + R O W 3
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 1 . 0 0 0 0 5 . 8 1 4 8 − 2 . 4 4 4 4 − 1 . 8 1 4 8 − 2 . 2 9 6 3 − 0 . 3 4 5 7 0 . 3 7 0 4 0 . 3 4 5 7 3 . 2 4 6 9 1 4 . 0 0 0 0 − 4 . 0 0 0 0 − 3 . 0 0 0 0 − 5 . 0 0 0 0 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
The desired matrix is:
M = ⎣ ⎢ ⎢ ⎡ 5 . 8 1 4 8 − 2 . 4 4 4 4 − 1 . 8 1 4 8 − 2 . 2 9 6 3 − 0 . 3 4 5 7 0 . 3 7 0 4 0 . 3 4 5 7 3 . 2 4 6 9 1 4 . 0 0 0 0 − 4 . 0 0 0 0 − 3 . 0 0 0 0 − 5 ⎦ ⎥ ⎥ ⎤
and ∑ i = 1 4 ∑ j = 1 3 a i j = 4 . 8 7 6 5 .
Check [ f ( p ) ] B :
Without using matrix M :
Let p = 1 − 2 ∗ x + x 2 ∈ P 2 ⟹
f ( 1 − 2 ∗ x + x 2 ) = β 1 ∗ ∣ ∣ ∣ ∣ 1 3 2 4 ∣ ∣ ∣ ∣ + β 2 ∗ ∣ ∣ ∣ ∣ − 2 7 5 2 ∣ ∣ ∣ ∣ + β 3 ∗ ∣ ∣ ∣ ∣ 1 2 1 − 1 ∣ ∣ ∣ ∣ + β 4 ∗ ∣ ∣ ∣ ∣ 3 − 1 2 4 ∣ ∣ ∣ ∣ = ⎣ ⎢ ⎢ ⎡ 1 2 3 4 − 2 5 7 2 1 1 2 − 1 3 2 − 1 4 ⎦ ⎥ ⎥ ⎤ * ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ β 1 β 2 β 3 β 4 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣
Using the above we can set up the augmented matrix:
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 . 0 0 0 0 2 . 0 0 0 0 3 . 0 0 0 0 4 . 0 0 0 0 − 2 . 0 0 0 0 5 . 0 0 0 0 7 . 0 0 0 0 2 . 0 0 0 0 1 . 0 0 0 0 1 . 0 0 0 0 2 . 0 0 0 0 − 1 . 0 0 0 0 3 . 0 0 0 0 2 . 0 0 0 0 − 1 . 0 0 0 0 4 . 0 0 0 0 4 . 0 0 0 0 7 . 0 0 0 0 − 1 . 0 0 0 0 1 . 0 0 0 0 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
Using row operations on the above augmented matrix we obtain:
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 1 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 0 . 0 0 0 0 1 . 0 0 0 0 − 2 . 9 7 5 3 1 . 2 5 9 3 0 . 9 7 5 3 2 . 8 3 9 5 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
⟹
[ f ( p ) ] B = ⎝ ⎜ ⎜ ⎛ − 2 . 9 7 5 3 1 . 2 5 9 3 0 . 9 7 5 3 2 . 8 3 9 5 ⎠ ⎟ ⎟ ⎞
Using matrix M :
Using the set of basis vectors for A and p we set up the system:
⎣ ⎡ 1 . 0 0 0 0 2 . 0 0 0 0 3 . 0 0 0 0 3 . 0 0 0 0 − 2 . 0 0 0 0 4 . 0 0 0 0 5 . 0 0 0 0 4 . 0 0 0 0 2 . 0 0 0 0 1 . 0 0 0 0 − 2 . 0 0 0 0 1 . 0 0 0 0 ⎦ ⎤
Solving the system we obtain:
[ p ] A = ⎣ ⎡ − 0 . 3 3 3 3 0 . 5 4 5 5 − 0 . 0 6 0 6 ⎦ ⎤
⟹
[ f ( p ) ] B = M ∗ [ p ] A = ⎣ ⎢ ⎢ ⎡ 5 . 8 1 4 8 − 2 . 4 4 4 4 − 1 . 8 1 4 8 − 2 . 2 9 6 3 − 0 . 3 4 5 7 0 . 3 7 0 4 0 . 3 4 5 7 3 . 2 4 6 9 1 4 . 0 0 0 0 − 4 . 0 0 0 0 − 3 . 0 0 0 0 − 5 ⎦ ⎥ ⎥ ⎤ ∗ ⎣ ⎡ − 0 . 3 3 3 3 0 . 5 4 5 5 − 0 . 0 6 0 6 ⎦ ⎤ = ⎝ ⎜ ⎜ ⎛ − 2 . 9 7 5 3 1 . 2 5 9 3 0 . 9 7 5 3 2 . 8 3 9 5 ⎠ ⎟ ⎟ ⎞
I wrote the program in Free Pascal.
program matrixrepresentaionoflineartransform_2;
{$R-}
{restricted to f:Rm --> Anxn}
uses crt;
const maxnum = 100;
type Tmatrix = array[1 .. maxnum,1 .. maxnum,1 .. maxnum] of real;
var coeff:Tmatrix;
function intpower(base,exponent:integer):longint;
var product,k:longint;
begin{intpower}
product:= 1;
end;{intpower}
procedure Getsize;
begin
writeln('Enter m for each basis vectors in Rm');
readln(m);
m:= m + 1;
writeln('Enter n for each n x n matrix');
readln(n);
end;
procedure getcoefficients;
var j,k,p:integer;
begin
for p:= 1 to n do
begin
for j:= 1 to n do
begin
write('Enter coefficients of row',p,' column', j,' :');
for k:= 1 to m do
begin
read(coeff[j,k,p]);
end;
end;
end;
{test}
{for p:= 1 to n do
begin
for j:= 1 to n do
begin
for k:= 1 to m do
begin
write(coeff[j,k,p]:0:4,' ');
end;
write;
end;
writeln;
end; }
end;
procedure Getmatrices;
var j,k,q,p:integer;
begin
assign(myfile,'holdmatrix2.txt');
rewrite(myfile);
writeln('To Enter ', m, ' basis vectors for P',m - 1,': ');
for q:= 1 to m do
begin
write('Enter coefficients of polynomial ', q, ' : ');
for q:= 1 to m do
begin
write('Enter elements of polynomial ', q, ' : ');
for k:= 1 to m do
begin
read(b[k,q]);
end;
end;
{test}
{for q:= 1 to m do
begin
for k:= 1 to m do
begin
write(b[k,q]:0:4,' ');
end;
writeln;
end; }
{To set up coefficients of system}
for j:= 1 to intpower(n,2) do
begin
writeln('Enter Matrix',j,' on one line:');
for k:= 1 to intpower(n,2) do
begin
read(c[k,j]);
end;
end;
for j:= 1 to intpower(n,2) do
begin
for k:= 1 to intpower(n,2) do
begin
a[j,k]:= c[j,k];
end;
end;
{test}
{for j:= 1 to intpower(n,2) do
begin
for k:= 1 to intpower(n,2) do
begin
write(a[j,k]:0:4,' ');
end;
writeln;
end; }
{For f(X) - test o.k.}
{for q:= 1 to m do
begin
for p:= 1 to n do
begin
for j:= 1 to n do
begin
sum:= 0;
for k:= 1 to m do
begin
sum:= sum + coeff[j,k,p] * b[k,q];
end;
s[p,j,q]:= sum;
end;
end;
end; }
{for q:= 1 to m do
begin
for p:= 1 to n do
begin
for j:= 1 to n do
begin
write(s[p,j,q]:0:4,' ');
end;
writeln;
end;
writeln;
writeln;
end; }
for q:= 1 to m do
begin
for p:= 1 to n do
begin
for j:= 1 to n do
begin
sum:= 0;
for k:= 1 to m do
begin
sum:= sum + coeff[j,k,p] * b[k,q];
end;
write(myfile,sum,' ');
end;
end;
end;
reset(myfile);
for j:= 1 to m do
begin
for k:= 1 to intpower(n,2) do
begin
read(myfile,a[k,intpower(n,2) + j]);
end;
end;
{writeln;
writeln(' Solve the',intpower(n,2),' X ',intpower(n,2),' system using the augmented matrix below:');
writeln;
for j:= 1 to intpower(n,2) do
begin
for k:= 1 to intpower(n,2) + m do
begin
write(a[j,k]:0:4,' ');
end;
writeln;
end; }
close(myfile);
for j:= 1 to intpower(n,2) do
begin
for k:= 1 to intpower(n,2) + m do
begin
write(mywork2,a[j,k]:0:4,' ');
end;
writeln(mywork2);
end;
end;
{Now to solve - easy N^2 X N^2 system of equations}
{Put determinant here later to check bases}
procedure hold(var c:matrix; e:matrix; m:integer);
var k,j:integer;
begin
for k:= 1 to m do
begin
for j:= 1 to m do
begin
c[k,j]:= e[k,j];
end;
end;
end;
{Determinants-To check Basis}
procedure switch2(var c:matrix; l,p,n:integer);
var q:integer;
begin{switch}
for q:= 1 to n do
begin{m}
end;{m}
end;{switch}
procedure safeguard2(var c:matrix; l:integer; var p:integer; n:integer; var v:integer; var product:real);
var q:integer;
begin{safeguard}
v:=0;
if (c[l,l] = 0) then
begin{then}
v:= 1;
q:= l;
while ((q + 1) <= n) and (v = 1) do
begin{loop}
if c[q + 1,l] <> 0 then
begin{then}
end;{then}
q:= q + 1;
end;{loop}
end;{then}
end;{safeguard}
procedure operation11(var a:matrix; l,n:integer; var product:real);
var k,q:integer;
x:real;
procedure operation21(var a:matrix; l,n:integer);
var k,r,q:integer;
FUNCTION DETERMINANT(a:matrix; n:integer; PRODUCT:real):real;
var j:integer;
begin{DETERMINANT}
DIAGONAL:= 1;
FOR j:= 1 TO N DO
BEGIN{LOOP}
DIAGONAL:= DIAGONAL * (a[j,j]);
END;{LOOP}
IF DIAGONAL = 1 THEN
DET:= 1/PRODUCT
ELSE
DET:= 0;
DETERMINANT:= DET;
END;{DETERMINANT}
procedure switch(var c:matrix; l,p:integer);
var q:integer;
begin{switch}
for q:= 1 to intpower(n,2) + m do
begin{m}
end;{m}
end;{switch}
procedure safeguard(var c:matrix; l:integer; var p:integer; var v:integer);
var q:integer;
begin{safeguard}
v:=0;
if (c[l,l] = 0) then
begin{then}
v:= 1;
q:= l;
while ((q + 1) <= intpower(n,2) + m) and (v = 1) do
begin{loop}
if c[q + 1,l] <> 0 then
begin{then}
end;{then}
q:= q + 1;
end;{loop}
end;{then}
end;{safeguard}
procedure operation1(var a:matrix; l:integer);
var q,k:integer;
begin{op1}
for q:= 1 to intpower(n,2) + m do
begin{m}
s[l,q]:= a[l,q]/a[l,l];
end;{m}
x:= 1/(a[l,l]);
for q:= 1 to intpower(n,2) + m do
begin{m}
a[l,q]:= s[l,q];
end;{m}
writeln(mywork2, x:0:4,' * Row',l);
writeln(mywork2);
for q:= 1 to intpower(n,2) do
begin
for k:= 1 to intpower(n,2) + m do
begin
write(mywork2, a[q,k]:0:4,' ');
end;
writeln(mywork2);
end;
writeln(mywork2);
end;{op1}
procedure operation2(var a:matrix; l:integer);
var q,r,k:integer;
begin{op2}
for q:= 1 to intpower(n,2) do
begin{q}
if q <> l then
begin{then}
x:= a[q,l];
for r:= 1 to intpower(n,2) + m do
begin{m}
s[q,r]:= -1 * x * a[l,r] + a[q,r];
end;{m}
for r:= 1 to intpower(n,2) + m do
begin{m}
a[q,r]:= s[q,r];
end;{m}
writeln(mywork2, -1 * x:0:4,' * ROW ', l,' + ROW',q);
end;{then}
end;{q}
writeln(mywork2);
for q:= 1 to intpower(n,2) do
begin
for k:= 1 to intpower(n,2) + m do
begin
write(mywork2, a[q,k]:0:4,' ');
end;
writeln(mywork2);
end;
writeln(mywork2);
end;{op2}
PROCEDURE SHOWDATA;
VAR J,k:INTEGER;
BEGIN
assign(myfile2,'holdsolution2.txt');
rewrite(myfile2);
writeln;
writeln('Matrix Representation of linear transformation f: Rn ---> Rm:');
writeln('-------------------------------------------------------------');
writeln;
for j:= 1 to intpower(n,2) do
begin
for k:= intpower(n,2) + 1 to intpower(n,2) + m do
begin
write(myfile2,a[j,k],' ');
end;
writeln(myfile2);
end;
reset(myfile2);
for j:= 1 to intpower(n,2) do
begin
for k:= 1 to m do
begin
read(myfile2,sol[j,k]);
end;
end;
close(myfile2);
for j:= 1 to intpower(n,2) do
begin
for k:= 1 to m do
begin
write(sol[j,k]:0:4,' ');
end;
writeln;
end;
{For brillant only}
sum:= 0;
for j:= 1 to intpower(n,2) do
begin
for k:= 1 to m do
begin
sum:= sum + sol[j,k];
end;
end;
writeln;
writeln('Sum of elements of matrix = ',sum:0:4);
END;
{for me only}
procedure switch3(var c:matrix; l,p,n:integer);
var r:integer;
z:real;
begin{switch3}
for r:= 1 to n + 1 do
begin{m}
end;{m}
end;{switch3}
procedure safeguard3(var c:matrix; l:integer; var p:integer; n:integer; var v:integer);
var r:integer;
begin{safeguard3}
v:=0;
if (c[l,l] = 0) then
begin{then}
v:= 1;
r:= l;
while ((r + 1) <= n) and (v = 1) do
begin{loop}
if c[r + 1,l] <> 0 then
begin{then}
end;{then}
r:= r + 1;
end;{loop}
end;{then}
end;{safeguard3}
procedure operation13(var a:matrix; l,n:integer);
var r,k:integer;
begin{op13}
for r:= 1 to n + 1 do
begin{r}
s[l,r]:= a[l,r]/a[l,l];
end;{r}
x:= 1/(a[l,l]);
for r:= 1 to n + 1 do
begin{m}
a[l,r]:= s[l,r];
end;{r}
end;{op13}
procedure operation23(var a:matrix; l,n:integer);
var q,r:integer;
begin{op23}
for q:= 1 to n do
begin{q}
if q <> l then
begin{then}
x:= a[q,l];
for r:= 1 to n + 1 do
begin{r}
s[q,r]:= -1 * x * a[l,r] + a[q,r];
end;{r}
for r:= 1 to n + 1 do
begin{r}
a[q,r]:= s[q,r];
end;{r}
end;{then} end;{q}
end;{op23}
procedure solution(y:matrix; n:integer);
var q:integer;
begin{solution}
end;{solution}
procedure matrixmult(a,b:matrix; var summat:matrix);
var j,k,s:integer;
begin{matrixmult}
for j:= 1 to intpower(n,2) do
begin{j}
for k:= 1 to 1 do
begin{k}
for s:= 1 to m do
begin{s}
end;{s}
writeln(mywork2,sum:0:4);
end;{j}
writeln(mywork2);
end;{matrixmult}
procedure check;
type arraytype = array[1 .. maxnum] of real;
var x:arraytype;
begin
assign(myfile,'holdmatrix3.txt');
rewrite(myfile);
{without using matrix}
writeln('Enter a basis vector for P',m - 1);
for j:= 1 to m do
begin
read(x[j]);
end;
for p:= 1 to n do
begin
for j:= 1 to n do
begin
sum:= 0;
for k:= 1 to m do
begin
sum:= sum + coeff[j,k,p] * x[k];
end; write(myfile,sum,' ');
end;
end;
reset(myfile);
for k:= 1 to intpower(n,2) do
begin
read(myfile,f[k,intpower(n,2) + 1]);
end;
close(myfile);
for j:= 1 to intpower(n,2) do
begin
for k:= 1 to intpower(n,2) + 1 do
begin
write(mywork2,f[j,k]:0:4,' ');
end;
writeln(mywork2);
end;
{Next Use operations on matrix f}
writeln(mywork2);
writeln(mywork2, 'Check [f(p)]B');
writeln(mywork2);
for l:= 1 to intpower(n,2) do
begin{l}
safeguard3(f,l,p,intpower(n,2),v);
if v = 0 then
begin{then}
operation13(f,l,intpower(n,2));
operation23(f,l,intpower(n,2));
end;{then}
end;{l}
writeln(mywork2);
solution(f,intpower(n,2));
{Now do using matrix M}
writeln(mywork2);
writeln(mywork2);
{To do}
for j:= 1 to m do
begin
e[j,m + 1]:= x[j];
end;
for j:= 1 to m do
begin
for k:= 1 to m + 1 do
begin
write(mywork2,e[j,k]:0:4,' ');
end;
writeln(mywork2);
end;
for l:= 1 to m do
begin{l}
safeguard3(e,l,p,m,v);
if v = 0 then
begin{then}
operation13(e,l,m);
operation23(e,l,m);
end;{then}
end;{l}
solution(e,m);
writeln(mywork2);
writeln(mywork2);
for j:= 1 to m do
begin
u[j,1]:= e[j,m + 1];
end;
writeln(mywork2);
writeln(mywork2);
matrixmult(sol,u,prod);
end;
begin
assign(mywork2,'mywork2.txt');
rewrite(mywork2);
getsize;
getcoefficients;
getmatrices;
hold(f,a,intpower(n,2)); {for me only-check}
hold(e,b,m);
{To do determinants to check bases here, then done.}
{checking basis for P(m - 1)}
PRODUCT:= 1;
for l:= 1 to m do
begin{l}
safeguard2(b,l,p,m,v,PRODUCT);
if v = 0 then
begin{then}
operation11(b,l,m,PRODUCT);
operation21(b,l,m);
end;{then}
end;{l}
DETB:= DETERMINANT(b,m,PRODUCT);
writeln;
while detb = 0 do
begin
writeln('Set of vectors is not a basis for P',m - 1);
writeln;
getmatrices;
PRODUCT:= 1;
for l:= 1 to m do
begin{l}
safeguard2(b,l,p,m,v,PRODUCT);
if v = 0 then
begin{then}
operation11(b,l,m,PRODUCT);
operation21(b,l,m); end;{then}
end;{l}
DETB:= DETERMINANT(b,m,PRODUCT);
end;
{checking basis for Anxn}
hold(c,a,intpower(n,2));
PRODUCT:= 1;
for l:= 1 to intpower(n,2) do
begin{l}
safeguard2(c,l,p,intpower(n,2),v,PRODUCT);
if v = 0 then
begin{then}
operation11(c,l,intpower(n,2),PRODUCT);
operation21(c,l,intpower(n,2));
end;{then}
end;{l}
DETA:= DETERMINANT(c,intpower(n,2),PRODUCT);
writeln;
while deta = 0 do
begin
writeln('Set of vectors is not a basis for A(',n,'X',n,')');
writeln;
getmatrices;
hold(c,a,intpower(n,2));
PRODUCT:= 1;
for l:= 1 to intpower(n,2) do
begin{l}
safeguard2(c,l,p,intpower(n,2),v,PRODUCT);
if v = 0 then
begin{then}
operation11(c,l,intpower(n,2),PRODUCT);
operation21(c,l,intpower(n,2));
end;{then}
end;{l}
DETA:= DETERMINANT(c,intpower(n,2),PRODUCT);
end;
{Only getting through if deta <> 0 and detb <> 0}
for l:= 1 to intpower(n,2) do
begin{l}
safeguard(a,l,p,v);
if v = 0 then
begin{then}
operation1(a,l);
operation2(a,l);
end;{then}
end;{l}
showdata;
check;
readln;
readln;
close(mywork2);
end.