Я просмотрел строки своего кода и не нашел, в чем моя ошибка. Python Показывает мне, что в моей последней строке кода произошла «ошибка типа», и я не могу преобразовать выражение в float. Я хотел поместить производные в массив и решил его для определенного значения c. Во вложении вы можете увидеть сообщение об ошибке.
import sympy
from sympy import symbols
import math
import numpy as np
# Parameters
F = 1000 # Load [N]
rho = 7.8e-6 # Density [kg/mm^3]
l = 10[enter image description here][1]00 # length [mm]
a = 750 # lever arm [mm]
Smax = 200 # maximum bending stress (MPa)
# Symbolic variables
w,h = symbols('w h', positive =True)
# objective function
m = rho*l*w*h
# constraints
S = 6*F*a/(w*h**2) # bending stress
w_bounds = [10, 50]
h_bounds = [10, 50]
# solve constraint
h1 = sympy.solve(S - Smax, h)
# calculate gradient (constant for linear problem)
duW = sympy.diff(m,w)
duH = sympy.diff(m,h)
duDim = np.array([duW.subs(w, 25).evalf(), duH.subs(h, 25).evalf()], dtype ='float32')