Nov-13-2018, 12:54 PM
(This post was last modified: Nov-13-2018, 12:54 PM by pianistseb.)
I just want to draw a polynomial solution and I have always the same error. I need this program to complete my thesis. I'm new in python. Please help!!!
from sympy.solvers import solve
from sympy import Symbol
from sympy import solve, Poly, Eq, Function, exp
from sympy.abc import x, y, z, a, b
import matplotlib.pyplot as plt
import numpy as np
def coef0(k0,c,N):
return k0**2*c**2*N**2
def coef1(k0,q,a):
return -(k0**2+q**2+0.25*a**2)
def coef2(k0):
return 1
def sols(a0,a1,a2):
omg2=Symbol('omg2')
c=solve(Poly(a2*omg2**2+a1*omg2+a0),omg2)
return c
N=10
a=20.42
k0=np.arange(1,500,1)
n=np.arange(1,11,1)
x=k0
c=1
plt.figure(1)
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
for i in n:
q=i*np.pi
c0=coef0(k0,c,N)
c1=coef1(k0,qq,a)
c2=coef2(k0)
y1,y2=sols(c0,c1,c2)
plt.plot(x,y1,'b',x,y2,'r')
plt.xlabel(r'$\bar{k}^{2}_{0}$',fontsize=16)
plt.ylabel(r'$\bar{\omega}^{2}$',fontsize=16)
plt.title(r"Arithmetic Dispersion Diagram",
fontsize=16, color='purple')
plt.legend([r'$\bar{\omega}_{p}$',r'$\bar{\omega}_{g}$'])
plt.ylim(1,500)
plt.xlim(1,30)
plt.show()Hint: I tried also to create a scatter with a for loop j in k0, but always the same problem. The error is: "can't initialize from 'list' without generators"
