首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python上求解三角方程

如何在python上求解三角方程
EN

Stack Overflow用户
提问于 2018-08-09 23:26:31
回答 2查看 6.7K关注 0票数 3

我正在尝试用python解决三角方程中的3个。我使用Sympy库,但我得到了一个错误,如'TypeError:无法将表达式转换为浮点型‘

这是我的Python源代码:

代码语言:javascript
复制
from sympy import Symbol, solve, Eq
from math import*

# Robot Arm length
L1 = 0
L2 = 97.9
L3 = 120
L4 = 120
L5 = 184

# location
x = L1+L2+L3+L4+L5
y = 0
z = 0

x1 = Symbol('x1',real = True)
x2 = Symbol('x2',real = True)
x3 = Symbol('x3',real = True)

#trigonometric equations

e1= Eq(L1 - (5*sin(x1))/2 - L4*(cos(x1)*sin(x2)*sin(x3) - cos(x1)*cos(x2)*cos(x3)) - L5*(cos(x4)*(cos(x1)*sin(x2)*sin(x3) - cos(x1)*cos(x2)*cos(x3)) + sin(x4)*(cos(x1)*cos(x2)*sin(x3) + cos(x1)*cos(x3)*sin(x2))) + L2*cos(x1) + L3*cos(x1)*cos(x2) - x)
e2= Eq((5*cos(x1))/2 + L4*(cos(x2)*cos(x3)*sin(x1) - sin(x1)*sin(x2)*sin(x3)) + L5*(cos(x4)*(cos(x2)*cos(x3)*sin(x1) - sin(x1)*sin(x2)*sin(x3)) - sin(x4)*(cos(x2)*sin(x1)*sin(x3) + cos(x3)*sin(x1)*sin(x2))) + L2*sin(x1) + L3*cos(x2)*sin(x1) - y)
e3= Eq(-L4*(cos(x2)*sin(x3) + cos(x3)*sin(x2)) - L3*sin(x2) - L5*(cos(x4)*(cos(x2)*sin(x3) + cos(x3)*sin(x2)) + sin(x4)*(cos(x2)*cos(x3) - sin(x2)*sin(x3))) - z)

solve([e,e2,e3],x1,x2,x3)

x1 = degrees(x1)
x2 = degrees(x2)
x3 = degrees(x3)

print("degree values : ",x1,x2,x3)

我添加了我的错误消息:

有人能告诉我我应该修改代码的哪一部分吗?

EN

回答 2

Stack Overflow用户

发布于 2018-08-10 01:17:45

from math import *是这里的主要错误。函数math.sinmath.cos仅用于数值计算,不能给它们提供符号参数。任何数学函数都必须从SymPy导入,才能在符号计算中使用。

准则:使用SymPy时,不要从math导入任何内容。将导入更改为

代码语言:javascript
复制
from sympy import *

将会解决大部分问题。您仍然需要定义当前未定义的x4

票数 5
EN

Stack Overflow用户

发布于 2018-08-09 23:36:50

如果看不到完整的代码,我就不能告诉您,但是看起来e3行上的变量"x4“还没有在任何地方声明。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51770835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档