Я использую sympy для решения некоторых уравнений и столкнулся с проблемой.У меня есть эта проблема со многими уравнениями, но я проиллюстрирую на примере.У меня есть уравнение с несколькими переменными, и я хочу решить это уравнение с точки зрения всех переменных, но одна исключена.Например, уравнение 0 = 2^n*(2-a) - b + 1
.Здесь есть три переменные a
, b
и n
.Я хочу получить значения для a
и b
не в терминах n
, поэтому a
и b
могут не содержать n
.
2^n*(2-a) - b + 1 = 0
# Since we don't want to solve in terms of n we know that (2 - a)
# has to be zero and -b + 1 has to be zero.
2 - a = 0
a = 2
-b + 1 = 0
b = 1
.сделай это.Может быть, я просто не смотрю на нужную документацию, но я не нашел способа сделать это.Когда я использую решить и проинструктировать его для поиска символов a
и b
sympy возвращает мне одно решение, где a
определяется в терминах n
и b
.Я предполагаю, что это означает, что я могу свободно выбирать b
и n
, однако я не хочу фиксировать n
в конкретном значении, которое я хочу, чтобы n
оставалось переменной.
Код:
import sympy
n = sympy.var("n", integer = True)
a = sympy.var("a")
b = sympy.var("b")
f = 2**n*(2-a) - b + 1
solutions = sympy.solve(f, [a,b], dict = True)
# this will return: "[{a: 2**(-n)*(2**(n + 1) - b + 1)}]".
# A single solution where b and n are free variables.
# However this means I have to choose an n I don't want
# to that I want it to hold for any n.
Я действительно надеюсь, что кто-то может мне помочь.Я искал в Google в течение нескольких часов ...