<< Click to Display Table of Contents >> matrices |
{ MATRICES.PDE
This example demonstrates a few uses of data MATRICES
}
title 'MATRIX test'
definitions
{ -- literal matrix definition -- }
m1 = matrix((1,2,3),(4,5,6),(7,8,9))
{ -- functional matrix definition -- }
{ a 79x79 diagonal matrix of amplitude 10: }
m2 = matrix for x(0.1 by 0.1 to 5*pi/2)
for y(0.1 by 0.1 to 5*pi/2)
: if(x=y) then 10 else 0
{ a 79x79 matrix of sin products: }
m3 = matrix for x(0.1 by 0.1 to 5*pi/2)
for y(0.1 by 0.1 to 5*pi/2)
: sin(x)*sin(y) +1
{ -- literal array definition -- }
{ a 101-element array of constants: }
v = array [79] (0.1 by 0.1 to 5*pi/2)
! multiply V by matrix M3
p = m3**v
! multiply V by matrix M3, scale by 1e5 and take the sine of each entry
q = sin((m3**v)/100000)
rad = 0.1
s = 0
! solve m3*B = P
b = p // m3
{ no variables }
{ no equations }
boundaries
region 1
start(0,0)
line to (2,0) to (2,2) to (0,2) to close
{ no monitors }
plots
elevation(q) vs v as "array vs array"
elevation(q) as "array vs index"
contour(m3) vs v vs v as "matrix vs two arrays"
contour(m3) vs v as "matrix vs array and index"
contour(m2) as "matrix vs indexes"
surface(m3*m2) as "element product"
surface(m3+m2) as "element sum"
surface(m3-m2) as "element difference"
surface(m3**m2) as "matrix product"
elevation(b,v) as "matrix inverse times array"
elevation(m3**b,p) as "matrix times array and array"
summary ("selected values")
report m3[1,1]
report m3[3,4]
report v[1]
report q[1]
end