I don't get same results using evalf or using subs. Why?
from sympy import *
x = Symbol('x')
w = Symbol('w')
b = Symbol('b')
i = Symbol('I')
e = Symbol('E')
c3 = Symbol('c3')
m1 = w*b/2*x
yd1= integrate(-m1/e/i,x)
y1 = integrate(yd1,x)+c3
#yap = y1.evalf(subs={x:0})
yap = y1.subs(x,0)
print(yap)
c3sol = solve(yap,c3)[0]
y1 = y1.subs(c3,c3sol)
print(y1)
Using evalf it cannot find the correct solution.
evalf
is used to evaluate to a number; indicating that x=0
does not reduce the expression to a number, so subs
is the better choice here.