From: surfcast23 <sur...@gm...> - 2012-07-01 16:50:54
|
Hi, I am translating a Matlab code to python and get the following error when the codes reaches the plotting section Warning (from warnings module): File "C:\Documents and Settings\My Documents\PHYSICS\Wave-eqn.py", line 40 w = (D*v) RuntimeWarning: overflow encountered in multiply Traceback (most recent call last): File "C:\Documents and Settings\My Documents\PHYSICS\Wave-eqn\.py", line 50, in <module> ax.plot_wireframe(x,tdata,data, rstride=10, cstride=10) File "C:\Python32\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 906, in plot_wireframe tylines = [tY[i] for i in cii] File "C:\Python32\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 906, in <listcomp> tylines = [tY[i] for i in cii] IndexError: index out of bounds My code import numpy as np from numpy import * from math import pi from scipy.linalg import toeplitz from scipy.special import cotdg from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt N = 512 h = 2*np.pi/N x = h*(np.arange(N) + 1) t = 0 dt = h / 4 a = .1 tmax = 15; tplot = .15; nplots = int(round((tmax/tplot))); plotgap = int(around(tplot/dt)); c = a + np.sin(x - 1)**2 v = np.exp(-100 * (x - 1)**2) vold = np.exp(-100 * (x - a*dt - 1)**2) #i = np.arange(1, N) #column = np.hstack([0, .5 * (-1**i) * cotdg(i * h/2)]) #D = toeplitz(column, -column) column = ((0.5*(-1)**arange(1,N+1))*cotdg(arange(1,N+1))*(h/2)); D = toeplitz(column,-column);print(D.shape); k = np.zeros(((nplots,N))); print(v.shape);print(k.shape); data = np.concatenate((v.reshape((512,1)).transpose(), k))#data = np.concatenate((v, k),axis = 1); #data = np.vstack([v,k]); tdata = t; for i in range(1,nplots+1): for n in range(1,plotgap+1): t = t+dt w = (D*v) vnew = vold-2*dt*c*w vold = v v = vnew data[i,:] = v[0,:] tdata = vstack([tdata, t]) fig = plt.figure() ax = fig.add_subplot(111, projection='3d') #X, Y, Z = axes3d.get_test_data(0.05) ax.plot_wireframe(x,tdata,data, rstride=10, cstride=10) plt.show() I looked at the error line and it seems as if the y axes is where the problem is, but I am not seeing why and would appreciate any help. Thank you! -- View this message in context: http://old.nabble.com/IndexError%3A-index-out-of-bounds-tp34098663p34098663.html Sent from the matplotlib - users mailing list archive at Nabble.com. |