неподдерживаемые типы операндов для +: 'ManagedProperties' и 'float' python 3 - PullRequest
0 голосов
/ 02 марта 2020
import numpy as np
import sympy
import math as m
a = 646/100
b = 81/100
c = 484/100
d = 161/100
L = 1614/100 
w = 4
angle = m.atan(d/a)
W_tot = w*L/2
x_tot = L/3
Rax,Ray,Re = sympy.S('Rax,Ray,Re')
eq1 = sympy.Eq(-Rax+Re*m.cos(angle),0)
eq2 = sympy.Eq(Ray+Re*m.sin(angle)-W_tot,0)
eq3 = sympy.Eq(Re*m.cos(angle)*(c+d)- W_tot*x_tot,0)
sympy.solve([eq1,eq2,eq3],[Rax,Ray,Re])

Код возвращает []. Ответ кажется странным, поэтому я попробовал каждое уравнение одно за другим и ввел числа напрямую. Однако в eq2 возникает ошибка.

eq2 = sympy.Eq(Ray+ 27.748631684*0.241828717496786 - W_tot,0)
sympy.solve([eq2],[Ray])


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-13-a25a64f8c655> in <module>
      1 a = m.sin(angle)
      2 print(a)
----> 3 eq2 = sympy.Eq(Ray+ 27.748631684*0.241828717496786 - W_tot,0)
      4 sympy.solve([eq2],[Ray])

TypeError: unsupported operand type(s) for +: 'ManagedProperties' and 'float'

Любые советы по решению этой проблемы? Python похоже, что Рэй рассматривает тип ManagedProperties

1 Ответ

0 голосов
/ 02 марта 2020

Используйте symbols для создания символов:

Rax, Ray, Re = sympy.symbols('Rax, Ray, Re')

В противном случае Ray дает класс Ray, который вам не нужен (это произойдет с любым именем, которое уже определено в sympy ).

...