Jun-25-2019, 03:39 AM
(This post was last modified: Jun-25-2019, 05:38 AM by Gribouillis. Edited 3 times in total.)

So I have been working on a code to solve a coupled system of second order differential equations, in order to obtain the numerical solution of an elastic-pendulum. I've written the code needed to get the results and plot them, but I keep getting the following error: "TypeError: <lambda>() missing 1 required positional argument: 'd'". I really appreciate any help. Here's the code:

Please post all code, output and errors (it it's entirety) between their respective tags. Refer to BBCode help topic on how to post. Use the "Preview Post" button to make sure the code is presented as you expect before hitting the "Post Reply/Thread" button.

import numpy as np import matplotlib.pyplot as plt from scipy.integrate import odeint import math ci = [0.01, 0., 0., 0.0156613949, 0.00237, 0.] def solver(t, pinit): return odeint(lambda a,b,d : [a[1], -4*math.pi*math.pi*a[0]*(math.sqrt(a[0]*a[0]+b[0]*b[0]+d[0]*d[0])- 3/4)/math.sqrt(a[0]*a[0]+b[0]*b[0]+d[0]*d[0]),b[1], -4*math.pi*math.pi*b[0]*((a[0]**(2)+b[0]**(2)+d[0]**(2))**(1/2) - 3/4)/(a[0]**(2)+b[0]**(2)+d[0]**(2))**(1/2), d[1],-4*math.pi*math.pi*d[0]*(math.sqrt(a[0]**(2)+b[0]**(2)+d[0]**(2)) - 3/4)/math.sqrt(a[0]**(2)+b[0]**(2)+d[0]**(2)) - math.pi*math.pi], pinit, t) time = np.arange(0, 500.0, 0.01) solution = solver(time, ci) plt.plot(solution[:,0], solution[:,2]) plt.show()

**Gribouillis**wrote Jun-25-2019, 05:38 AM:Please post all code, output and errors (it it's entirety) between their respective tags. Refer to BBCode help topic on how to post. Use the "Preview Post" button to make sure the code is presented as you expect before hitting the "Post Reply/Thread" button.