matplotlib - Python: TypeError: only length-1 arrays can be converted to Python scalars -
i have func
f(x) = sin(x/5.0)*exp(x/10.0) + 5*exp(-x/2.0) i need solve system of linear equations
w0 + w1x1 + w2(x1)**2 + ... + wn(x1)**n = f(x1) i solve have problem plot it
from math import sin, exp scipy import linalg import numpy np b = [] def f(x): return sin(x/5.0)*exp(x/10.0) + 5*exp(-x/2.0) in [1, 15]: b.append(f(i)) = [] in [1, 15]: ij = [] x0 = ** 0 x1 = ** 1 ij.append(x0) ij.append(x1) a.append(ij) matrix = np.array(a) b = np.array(b).t x = linalg.solve(matrix, b) matplotlib import pyplot plt plt.plot(x, f(x)) but returns
typeerror: length-1 arrays can converted python scalars how can solve problem?
math.sin , math.exp expect scalar inputs. if pass array, typeerror
in [34]: x out[34]: array([ 3.43914511, -0.18692825]) in [35]: math.sin(x) typeerror: length-1 arrays can converted python scalars from math import sin, exp loads sin , exp math module , defines them functions in global namespace. f(x) calling math's version of sin function on x numpy array:
def f(x): return sin(x/5.0)*exp(x/10.0) + 5*exp(-x/2.0) to fix error, use numpy's sin , exp functions instead.
import numpy np def f(x): return np.sin(x/5.0)*np.exp(x/10.0) + 5*np.exp(-x/2.0)
Comments
Post a Comment