I am trying to plot a function in python 2.7.12 and keep getting a syntax error at xd3.append(0). I’m basing the script off of another script through which my function was derived, which I will attach as well. Can someone help me revise my script so that I can actually plot it out? Thanks so much!

My Script:

import math

from numpy import matrix

from numpy import linalg

import numpy

import matplotlib.pyplot as plt

import sys

m = 11

first = 0

second = 0

pi = math.pi

# delare an empty list to hold values of a

a = []

# getting input from user

for i in range(0,m):

a.append( float(input(‘Enter a value of a[‘ + str(i) + ‘]: ‘)) )

# calculation for summation

# in function range(1,m), 1 is included and m is excluded. So effectively we go from 1 to m-1.

first = 0.0

second = 0.0

for j in range(1, m):

temporary_sum_first = 0.0

temporary_sum_second = 0.0

for i in range(0, m):

# this is the function I want to plot

temporary_sum_first += (a[i] * math.cos(2*pi*i*j/m))

temporary_sum_second += ((-a[i])*i* math.sin(2*pi*i*j/m))

# now square it and sum it

first = first + math.pow(temporary_sum_first, 2)

second = second + math.pow(temporary_sum_second, 2)

# at this point, we have finished summing i=0 to i=m-1 for one value of p, we continue this for m-1 values of j.

#Final Summation Value

Fmin=first+second

print(“Summation value:”)

print(Fmin)

#If you comment out/ delete everything after this point, you can sub in values for ai

# and find the value of the minimization function

#Now I want to plot out what it looks like

def f(theta,x,m):

for j in range(1, m):

temporary_sum_first = 0.0

temporary_sum_second = 0.0

#This is where I think I went wrong somehow

fsum = temportary_sum_first + temporary_sum_second

for i in range(0, m):

temporary_sum_first += (a[i] * math.cos(2*pi*i*j/m))

temporary_sum_second += ((-a[i])*i* math.sin(2*pi*i*j/m))

return fsum

mhalf = m/2

offt = pi/8

t_min = – offt

t_max = 2*pi +offt

Npts = 500

dt = (t_max – t_min)/Npts

Xv = []

Yv = []

Zv = []

for i in range(Npts):

Xv.append(t_min + dt*i)

Yv.append(f(Xv[i],x,m))

Zv.append(0.0)

Xd = []

Yd = []

Xd2 = []

Yd2 = []

Xd3 = []

Yd3 = []

for i in range(mhalf):

Xd.append(2*(i+1)*pi/m)

Yd.append(0)

Xd2.append(2*(i+mhalf +1)*pi/m

Xd3.append(0)

Xd3.append(2*pi)

Yd3.append(1)

Yd3.append(1)

p1 = plt.subplot(111)

p1.plot(Xv, Yv, color=’red’, lw=2)

p1.plot(Xv, Zv, color=’blue’, lw=2)

p1.scatter(Xd, Yd, color=’black’, marker=’o’, facecolors=’none’, edgecolors=’k’, s=200, lw=2)

p1.scatter(Xd2, Yd2, color=’yellow’, marker=’o’, facecolors=’none’, edgecolors=’y’, s=200, lw=2)

p1.scatter(Xd3, Yd3, color=’black’, marker=’o’, s=200, lw=2)

p1.set_xlim([t_min,t_max])

p1.set_xlabel(r’$theta$’,size=28)

p1.set_ylabel(r’$f(theta)$’,size=28)

title = r”$m = %2.0f$” % m

p1.set_title(title,fontsize=32,color=’black’)

figFile = ‘fig_’+str(m)+’_0.eps’

#plt.savefig(figFile,format=’eps’)

plt.show()

Reference Script:

from numpy import matrix

from numpy import linalg

import numpy

import matplotlib.pyplot as plt

from math import *

import sys

def f(theta,x,Nd):

fsum = 0.0

for i in range(Nd):

fsum = fsum + x[i]*cos(i*theta)

return fsum

Nd=11

#Nd = int(sys.argv[1]) # Command-line arg: kicking frequency

Ndhalf = Nd/2

offt = pi/8

t_min = -offt

t_max = 2*pi + offt

Npts = 500

dt = (t_max – t_min)/Npts

# Solution

x = []

x.append(1.0/Nd)

for i in range(Nd-1):

x.append(2*(Nd-i-1)/(Nd**2.0))

print i, x[i]

Xv = []

Yv = []

Zv = []

for i in range(Npts):

Xv.append(t_min + dt*i)

Yv.append(f(Xv[i],x,Nd))

Zv.append(0.0)

Xd = []

Yd = []

Xd2 = []

Yd2 = []

Xd3 = []

Yd3 = []

for i in range(Ndhalf):

Xd.append(2*(i+1)*pi/Nd)

Yd.append(0)

Xd2.append(2*(i+Ndhalf+1)*pi/Nd)

Yd2.append(0)

Xd3.append(0)

Xd3.append(2*pi)

Yd3.append(1)

Yd3.append(1)

p1 = plt.subplot(111)

p1.plot(Xv, Yv, color=’red’, lw=2)

p1.plot(Xv, Zv, color=’blue’, lw=2)

p1.scatter(Xd, Yd, color=’black’, marker=’o’, facecolors=’none’, edgecolors=’k’, s=200, lw=2)

p1.scatter(Xd2, Yd2, color=’yellow’, marker=’o’, facecolors=’none’, edgecolors=’y’, s=200, lw=2)

p1.scatter(Xd3, Yd3, color=’black’, marker=’o’, s=200, lw=2)

p1.set_xlim([t_min,t_max])

p1.set_xlabel(r’$theta$’,size=28)

p1.set_ylabel(r’$f(theta)$’,size=28)

title = r”$m = %2.0f$” % Nd

p1.set_title(title,fontsize=32,color=’black’)

figFile = ‘fig_’+str(Nd)+’_0.eps’

#plt.savefig(figFile,format=’eps’)

plt.show()