Я пытался решить нелинейное уравнение для механической системы, но я не мог найти способ сделать это правильно.
import numpy as np
from sympy import *
import scipy.optimize as opt
a = 0.15
b = 0.4
c = 0.5
d = 0.4
e = 0.3
f = 0.35
beta = 0.3
qDot = 30
q = 0
def eqsSympy():
teta3 = Symbol('teta3',real=True)
teta4 = Symbol('teta4',real=True)
teta5 = Symbol('teta5',real=True)
s = Symbol('s',real=True)
e1 = Eq(a*cos(q)+b*cos(teta3)-c*cos(teta4)-d)
e2 = Eq(a*sin(q)+b*sin(teta3)-c*sin(teta4))
e3 = Eq(e*cos(teta4-beta)+f*cos(teta5))
e4 = Eq(e*sin(teta4-beta)+f*sin(teta5)-s)
print(solve([e1,e2,e3,e4],teta3,teta4,teta5,s))
eqsSympy()
Итак, я хочу, чтобы эти уравнения решались для значений q от 0 до 2 * pi с шагом pi / 6 с каждым шагом. Но я продолжаю получать ошибку:
e1 = Eq(a*cos(q)+b*cos(teta3)-c*cos(teta4)-d)
TypeError: unsupported operand type(s) for -: 'Add' and 'function'
А также, если есть лучший способ решить эти уравнения, я был бы признателен, если бы вы мне помогли.