Аппроксимация полуполной производной с различными шагами конечной разности

Недавно я узнал о функции полутотальной производной приближение. Я начал использовать эту функцию с bsplines и явным компонентом. Моя текущая проблема заключается в том, что мои проектные переменные вводятся из двух разных компонентов, подобных xsdm ниже. Насколько я вижу, невозможно установить разные шаги конечной разности для разных переменных проекта. Итак, снова взглянув на xsdm, контрольные точки x и z должны иметь одинаковые шаги FD, т.е.

модель.приблизительно_общие(шаг=1)

работает, но

model.about_totals (шаг = np.ones (5))

не будет работать. Я предполагаю, что одним из средств является использование относительного размера шага, но некоторые из моих входных границ варьируются от 0 до xx, поэтому, возможно, относительный размер шага не самый лучший. Есть ли способ передать шаги FD как вектор или что-то похожее на ;

for out in outputs:
   for dep,fdstep in zip(inputs,inputsteps):
     self.declare_partials(of=out,wrt=dep,method='fd',step=fdstep, form='central') 

введите здесь описание изображения


person user2375049    schedule 28.08.2018    source источник


Ответы (1)


Начиная с OpenMDAO V2.4, у вас нет возможности устанавливать размеры шага FD для каждой переменной при использовании approx_totals. Лучший вариант — просто использовать относительные размеры шага.

person Justin Gray    schedule 28.08.2018