在python上求解一个非线性方程

2024-09-29 23:21:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在试图解一个机械系统的非线性方程,但我找不到合适的方法。你知道吗

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'

如果有更好的方法来解这些方程,如果你能帮我,我会很感激的。你知道吗


Tags: 方法importtrueassincossymbolreal

热门问题