Есть ли простой способ заполнить матрицу f(K)*delo(K+1x,L)+f(K)*delo(K+1y,L)
, где K=(k1,k2), K+1x=(k1+1, k2), K+1y=(k1, k2+1), L=(l1,l2)
- векторы в R ^ 2 и
def delo(i,j):
if i==j:
return 1.0
else:
return 0.0
?
Раньше, когда у меня был более простой случай, т.е., f2(k1)*g(k2)*delo(K+1x,L)+f2(k1)*g(k2)*delo(K+1y,L)
это я мог бы разделить его на np.kron(f2(k1)*delo(k1+1,l1),g(k2)*delo(k2,l2))+np.kron(f2(k1)*delo(k1+1,l1),g(k2)*delo(k2,l2))
, но теперь f(K)
не разделяем.
Я попытался создать функцию цикла for для заполнения матрицы, затем снова использовать другую для цикла loop, заполняя новые записи матрицы предыдущей матрицей.Математически это то, как вы решите задачу.
Будет ли результат похож на определение функции после заполнения матриц delo
из
def G(x):
return np.kron(f(k1,k2,x)delo(k1+1,l1),delo(k2,l2))
, где x
- произвольная переменная?
Извините, если это не ясно, я не знал, как вводить латекс здесь.