Need c# code...

``````import numpy
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt

def zadachaOPrepyatstvii(h, f, fi, xi, sigma, epsilon=0.0000001):
m = int(1/h)
h2 = h * h
u = numpy.zeros(shape=(m+1, m+1))
gamma = numpy.zeros(shape=(m+1, m+1))
prevnormr = 0
while True:
for i in xrange(1, m):
for j in xrange(1, m):
x = (i * h, j * h)
v = (1 - sigma) * u[i][j] + sigma * 0.25 * (u[i-1][j] + u[i+1][j] + u[i][j-1] + u[i][j+1] + h2 * f(i*h, j*h))
fi_x = fi(x)
if v < fi_x:
u[i][j] = fi_x
else:
xi_x = xi(x)
u[i][j] = xi_x if v > xi_x else v
gamma[i][j] = 1 / (h2 * sigma) * (v - u[i][j])
norm_r = 0
for i in xrange(1, m):
for j in xrange(1, m):
r = 1 / h2 * (4 * u[i][j] - u[i-1][j] - u[i+1][j] - u[i][j-1] - u[i][j+1]) + gamma[i][j] - f(i*h,j*h)
norm_r += h2 * r * r
print pow(norm_r, 0.5)
if abs(norm_r - prevnormr) < epsilon:
break
prevnormr = norm_r
return u

def drawPlot(X, Y, Z, minZ=-1.01, maxZ=2.01):
fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y = numpy.meshgrid(X, Y) surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
ax.set_zlim(minZ, maxZ)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()

u = numpy.zeros(shape=(len(t), len(t[0].split(";"))))
for i, line in enumerate(t):
for j, val in enumerate(map(float, line.split(";"))):
u[i][j] = val
return u

def getAu(u, h):
r = numpy.zeros(shape=u.shape)
h2 = h * h
for i in range(1, u.shape[0] - 1):
for j in range(1, u.shape[0] - 1):
r[i][j] = 1 / h2 * (4 * u[i][j] - u[i-1][j] - u[i+1][j] - u[i][j-1] - u[i][j+1])
return r

def f(x, y):
if x > 0.3 and x < 0.7 and y > 0.3 and y < 0.7:
return -60
return 40

h = 0.02
res = zadachaOPrepyatstvii(h, f, lambda x: 0, lambda x: 10000000.7, 1.9, 0.0001)
drawPlot(numpy.arange(0, 1 + h, h), numpy.arange(0, 1 + h, h), res)
``````

moderation: please use the editor's code feature for syntax highlighting.

Hi belladiluna, welcome here at DaniWeb!
Because for the most part, you just have formulas, this should be relatively easily translated to c#. Also remember that c# can make use of charting, via a .NET Chart class

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.