Я работаю над использованием схемы прямой разности для численного решения функции диффузии в одном измерении. Мой окончательный график решения должен быть поверхностью, на которой решение u(x,t) нанесено на сетку значений x и t. У меня проблема решена, но я не могу отобразить данные в виде сетки.
Я могу придумать 2 способа исправить это:
1.) Мои массивы x и t должны быть одномерными, а массив u должен быть двумерным. В конечном счете, я хочу квадратную матрицу для вас, но мне трудно ее кодировать. В настоящее время у меня есть массив 1D для вас. Вот код, где u заполняется.
u = zeros(Nx+1) # unknown u at new time level
u_1 = zeros(Nx+1) # u at the previous time level
# Set initial condition u(x,0) = I(x)
for i in range(0, Nx+1):
#set initial u's to I(xi)
u_1[i] = 25-x[i]**2
for n in range(0, Nt):
# Compute u at inner mesh points
for i in range(1, Nx):
u[i] = u_1[i] + F*(u_1[i-1] - 2*u_1[i] + u_1[i+1])
2.) Приведенный выше код возвращает одномерный массив для u. Есть ли способ построить трехмерную поверхность с тремя одномерными массивами для x, y, z?