import numpy as np import matplotlib.pyplot as plt from scipy.optimize import fsolve
P = 3 * np.pi / 2 func = lambda x: P / x * np.sin(x) + np.cos(x)
deff(x, ka): return func(x) - np.cos(ka)
ka_list = np.linspace(-4, 4, 200) Ka_list = [] for initial_guess in [np.pi, 1.5*np.pi, 2.5*np.pi, 3.5*np.pi]: Ka_list.append(np.array([fsolve(f, initial_guess, args = (ka * np.pi))[0] for ka in ka_list])) for Ka in Ka_list: plt.plot(ka_list, Ka)