Я смотрел на this пост, так как я хотел бы создать массив, где каждый столбец имеет один вектор x
arange
д по dx
с соответствующим dx
, соответственно. Надеюсь, это имеет смысл.Python: создание массива, которое arange
import numpy as np
L = 80.0
N = 2 ** np.arange(-4, 10, dtype = np.float64)
dx = L/N
С моим оригинальным кодом, я был смотреть на одном dx
, где сейчас у меня есть массив dx
значений. Когда я использовал только один dx
, я настроил свой вектор х следующим образом:
x = np.arange(-L/2., L/2. - dx, dx)
Однако мне нужно x
для каждого dx
, но я не уверен, о том, как это сделать. Я посмотрел на сообщение, о котором я упомянул в начале, которое, по-моему, обеспечило некоторую проницательность. По-моему, я не могу приспособить его к моим потребностям - возможно, это даже не правильный подход.
Возможно, мне нужна петля for
?
for i in len(dx):
x[i] = np.arange(-L/2., L/2. - dx, dx)
Тогда я бы, вероятно, нужно гнездо другой for
цикл, чтобы выбрать один dx
для каждой итерации.
Я не уверен, что было бы правильным или наиболее эффективным.
Чтобы прояснить путаницу, в одной dx
ситуации, я имел следующие настройки:
x = np.arange(-L/2.0, L/2.0 - dx, dx)
k = np.hstack((np.arange(0, N/2.0 - 1.0),
np.arange(-N/2.0, 0))).T * 2.0 * np.pi/L
k1 = 1j * k
k3 = (1j * k) ** 3
u = 2 * (2/(np.exp(x + 20.0) + np.exp(-x - 20.0))) ** 2
udata = u
tdata = 0.0
Integration here
Я тогда управлял метод псевдо-спектрального с Рунге-Кутта 4 интегрирования для численного определения u
из нелинейное уравнение КдФ. Я хотел бы запустить код в разных значениях dx
, чтобы найти ошибку и график 1/dx
по сравнению с ошибкой, где 1/dx
является по оси x.
Надеюсь, это поможет с тем, что я пытаюсь выполнить.
Поскольку я хочу найти ошибку, нужен ли мне такой же размер шага? Я знаю, что ошибка будет построена в виде exp(-c * dx)
, где c
- произвольная постоянная. Я знаю это, потому что псевдоспектральный метод имеет ошибку exp(-c/dx)
, но я буду строить график против 1/dx
.
Я не знаю, как ответить на ваш вопрос, но являются ли различные варианты написания/ареала преднамеренными? Я вижу оба в тексте, но я не знаю достаточно о том, как редактировать python (если он ему даже нужен) – Gray
Я не совсем уверен, что вы спрашиваете, хотите ли вы иметь массив NxM, где каждый столбец другая «аранжировка»? – bheklilr
Да, я тоже не совсем понимаю вопрос. Если это то, что предлагает @bheklilr, вы можете использовать трансляцию, чтобы делать такие вещи, как 'np.arange (-2, 2) [..., None] + np.arange (3) [None, ...]' – YXD