Maaritellaan ensin funktio, joka laaskee annetun funktion arvot hilassa ja tallettaa tuloksen tiedostoon "rhs".
Komento LaskeRHS[f, {x, xmin, xmax},{y, ymin, ymax}, n] laskee funktion f(x,y) arvot nxn-hilassa valilla [xmin, xmax]x[ymin, ymax].
Input := LaskeRHS[f_, xlist_List, ylist_List, n_Integer]:= Module[{xsymb,xalku,xloppu,ysymb,yalku,yloppu,A,stream}, xsymb=xlist[[1]]; xalku=xlist[[2]]; xloppu=xlist[[3]]; xaskel=(xloppu-xalku)/(n-1); ysymb=ylist[[1]]; yalku=ylist[[2]]; yloppu=ylist[[3]]; yaskel=(yloppu-yalku)/(n-1); A=Table[f /. {xsymb->xalku+i*xaskel, ysymb->yalku+j*yaskel}, {i,0,n-1}, {j,0,n-1}]; Needs["Utilities`BinaryFiles`"]; stream = OpenWriteBinary["rhs"]; WriteBinary[stream, N[Transpose[A]]]; Close[stream]; MatrixForm[N[A]] ];
Lasketaan funktion f(x,y)=xy arvot 11x11-hilassa valilla [1, 2]x[1, 2]:
Input := LaskeRHS[x y, {x,1,2}, {y,1,2}, 11]
Output = 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2. 1.1 1.21 1.32 1.43 1.54 1.65 1.76 1.87 1.98 2.09 2.2 1.2 1.32 1.44 1.56 1.68 1.8 1.92 2.04 2.16 2.28 2.4 1.3 1.43 1.56 1.69 1.82 1.95 2.08 2.21 2.34 2.47 2.6 1.4 1.54 1.68 1.82 1.96 2.1 2.24 2.38 2.52 2.66 2.8 1.5 1.65 1.8 1.95 2.1 2.25 2.4 2.55 2.7 2.85 3. 1.6 1.76 1.92 2.08 2.24 2.4 2.56 2.72 2.88 3.04 3.2 1.7 1.87 2.04 2.21 2.38 2.55 2.72 2.89 3.06 3.23 3.4 1.8 1.98 2.16 2.34 2.52 2.7 2.88 3.06 3.24 3.42 3.6 1.9 2.09 2.28 2.47 2.66 2.85 3.04 3.23 3.42 3.61 3.8 2. 2.2 2.4 2.6 2.8 3. 3.2 3.4 3.6 3.8 4.
Tassa valissa kaydaan Matlabissa laskemassa ratkaisu ja tallettamassa se tiedostoon "ratkaisu". Sitten luetaan ratkaisu Mathematicaan, tehdaan siita matriisi ja piirretaan korkeuskayrakuva.
Input := Needs["Utilities`BinaryFiles`"]; ratkaisu=Partition[ReadListBinary["ratkaisu",Double],11]; N[ratkaisu,2]//MatrixForm
Output = 0 0 0 0 0 0 0 0 0 0 0 0 0.21 0.35 0.46 0.53 0.57 0.57 0.53 0.44 0.28 0 0 0.35 0.62 0.81 0.93 1. 1. 0.93 0.76 0.47 0 0 0.46 0.81 1.1 1.2 1.3 1.3 1.2 0.98 0.59 0 0 0.53 0.93 1.2 1.4 1.5 1.5 1.4 1.1 0.68 0 0 0.57 1. 1.3 1.5 1.6 1.6 1.5 1.2 0.73 0 0 0.57 1. 1.3 1.5 1.6 1.6 1.5 1.2 0.74 0 0 0.53 0.93 1.2 1.4 1.5 1.5 1.4 1.1 0.7 0 0 0.44 0.76 0.98 1.1 1.2 1.2 1.1 0.95 0.6 0 0 0.28 0.47 0.59 0.68 0.73 0.74 0.7 0.6 0.39 0 0 0 0 0 0 0 0 0 0 0 0
Input := ListContourPlot[ratkaisu];