python - 在 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()
所以我希望用 pi/6 每步递增 0 到 2*pi 的 q 值来求解这些方程。但我不断收到错误:
e1 = Eq(a*cos(q)+b*cos(teta3)-c*cos(teta4)-d) TypeError: unsupported operand type(s) for -: 'Add' and 'function'
如果有更好的方法来解决这些方程,如果你能帮助我,我将不胜感激。
解决方案
推荐阅读
- python - 如何在条形图上绘制一条垂直线,其日期时间标签只有谨慎的 x 轴刻度位置?
- assembly - 如何在asm中的函数序言之前中断
- azure - Terraform AZ CLI 本地执行命令限制
- javascript - 如何根据单元格值将 Google Sheet 中的数据显示到 Google Web App?
- javascript - 使用 PptxGenJS 向 PowerPoint 幻灯片添加过渡
- python - 在 KeyCloak 中绕过“执行以下操作”?
- facebook - 如何为 Instagram 基本显示 API 实现 Instagram 或 Facebook 登录按钮的继续?
- c++ - 错误:非静态引用成员 - 不能使用默认赋值运算符
- linux - 在 julia 中设置 pandas 时出错:找不到键“_IXIndexer”
- wpf - 如何根据 ComboBox 的选择显示不同的用户控件?