#
# uspk04.rb
#
# $Id: uspk04.rb,v 1.1 2000/11/22 14:36:02 keiko Exp $
#

require "narray"
require "numru/dcl"

include NumRu
include Math


n = 200
m = 5
x = NArray.sfloat(n)
y0 = NArray.sfloat(n)
y1 = NArray.sfloat(n)
y2 = NArray.sfloat(n)
a = NArray.sfloat(m)

#-----------------------------------------------------------------------
dt = 1.0/(n-1)
for j in 0..m-1
  jj = j*2+1.0
  a[j] = (-1.0)**(j+1.0) *2.0/(jj*PI)
end

x = x.indgen * dt

for i in 0..n-1
  t = dt*i*2*PI
  y2[i] = 0.0
  for j in 0..m-1
    jj = j*2+1
    yy = a[j]*cos(jj*t)
    y2[i] = y2[i] + yy
  end
  y1[i] = a[0]*cos(t)

  if (t < PI/2.0 || t >= PI*3.0/2.0)
    y0[i] = -0.5
  else
    y0[i] = 0.5
  end
end

#-----------------------------------------------------------------------
iws = (ARGV[0] || (puts ' WORKSTATION ID (I)  ? ;'; DCL::sgpwsn; gets)).to_i
DCL::gropn iws

DCL::grfrm

DCL::usspnt(x, y1)
DCL::usspnt(x, y2)

DCL::uuslni(5)
DCL::usgrph(x, y0)

DCL::uulinz(x, y1, 3, 1)
DCL::uulinz(x, y2, 2, 2)

DCL::grcls



syntax highlighted by Code2HTML, v. 0.9.1