Есть ли способ в Python решить систему нелинейных уравнений с векторами? - PullRequest
0 голосов
/ 18 февраля 2020

Я создал следующий код для решения системы уравнений:

def vector(variables):
    alpha = 0.5
    p_1 = 1
    c_1, c_2, y_1, y_2, l_1, l_2, w, p_2 = variables
    return(
            c_1 - w*(1-alpha)/p_1,
            c_2 - (w*alpha/p_2),
            y_1 - l_1,
            y_2 - l_2,
            y_1 - c_1,
            y_2 - c_2,
            l_1 + l_2 - 1,
            w - p_1)

starting = 8 * [1]

sol = root(vector, starting, method='krylov')

print(sol)

Рассмотрим вышеупомянутую систему как определение равновесия в местоположении 1. Я также хочу решить аналогичную систему для местоположений 2, .. ., 20. Теперь, учитывая, что вышеупомянутая система имеет 8 уравнений, и я хочу решить для 20 местоположений, это означает 20 * 8 (160) уравнений.

Я не хочу, чтобы эти системы были отделены друг от друга, а скорее частью одна система (поскольку мне нужно создать взаимозависимости между местоположениями позже).

Одно решение - вручную ввести остальные 19 местоположений в систему выше. Но это очень неэффективно, особенно если я хочу добавить еще больше мест позже.

Есть ли способ ввести указанные выше переменные в систему, чтобы каждое приведенное выше уравнение эффективно представляло 20 уравнений (по 1 на каждое местоположение)

...