Я пытаюсь решить нелинейные уравнения в Python. Я пробовал использовать решатель Sympy, но, похоже, он не работает в операторе цикла for. Я пытаюсь найти переменную x в диапазоне входов [N].
Я прикрепил свой код ниже
import numpy as np
import matplotlib.pyplot as plt
from sympy import *
f_curve_coefficients = [-7.14285714e-02, 1.96333333e+01, 6.85130952e+03]
S = [0.2122, 0, 0]
a2 = f_curve_coefficients[0]
a1 = f_curve_coefficients[1]
a0 = f_curve_coefficients[2]
s2 = S[0]
s1 = S[1]
s0 = S[2]
answer=[]
x = symbols('x')
for N in range(0,2500,5):
solve([a2*x**2+a1*N*x+a0*N**2-s2*x**2-s1*x-s0-0])
answer.append(x)
print(answer)
Могут быть более эффективные способы решения этой проблемы, чем использование sympy *, любая помощь будет очень полезна.
Обратите внимание, что я все еще новичок в python после перехода из Matlab. Я мог бы легко решить эту проблему в Matlab и мог бы прикрепить код, но я борюсь с этим в Python
for
доставляет вам проблемы? Мне кажется, это нормально. Первая итерация, N == 0, является наиболее интересной, так как некоторые термины выпадают. Решает ли это первую итерацию? - person CryptoFool   schedule 28.09.2020