[SciPy-user] Scilab to Scipy

peter websdell flyingdeckchair at googlemail.com
Fri Aug 22 15:34:29 EDT 2008


Hello,

Thanks for the advice warren. However, the scilab code actually produces the
results I am expecting. I will post a picture next week.

What I don't understand is that python takes the exact same input,
processess the data in the same way and then produces different results.

Like I say, I'll post piccies next week. Adios for noo.

Thanks again,
Pete.


>
>
> On Fri, Aug 22, 2008 at 12:37 PM, Warren Weckesser <
> warren.weckesser at gmail.com> wrote:
>
>> Peter,
>>
>> The problem is in your original scilab code.  You say
>>     x = linspace(0,100);
>> and in the calculation of the mode, you have the term sin(Kx*x). Since Kx
>> = 2*pi, and your x ranges from 0 to 100, you should see 100 oscillations in
>> the x direction.  You don't see it, because your grid is too coarse.  The
>> default number of samples for the linspace function is 100.
>>
>> What you really want is 0 <= x <= Lx.  In your scilab code, x should be
>> set like this:
>>     x = linspace(0,Lx,grid_size)
>> The third argument, as its name suggests, is the number of samples to use.
>>
>> Here's a modified version of your scilab code (I also changed e^(%i*w*t)
>> to cos(w*t), but that was not the source of the problem):
>>
>> ####################
>> Lx = 1;
>> Ly = 1;
>> n = 2;
>> m = 2;
>> f = 100;
>> w = 2*%pi*f;
>> t = 1;
>> A = 2;
>> Kx = n*%pi/Lx;
>> Ky = m*%pi/Ly;
>>
>> grid_size = 501;
>> x = linspace(0,Lx,grid_size);
>> y = linspace(0,Ly,grid_size);
>> z = zeros(grid_size,grid_size);
>>
>> for i = 1:grid_size
>>     for j = 1:grid_size
>>         z(i,j) = A * sin(Kx*x(i)) * sin(Ky*y(j)) * cos(w*t);
>>     end
>> end
>>
>> contour(x,y,z,20)
>>
>> ####################
>>
>> Cheers,
>>
>> Warren
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20080822/8f76290f/attachment.html>


More information about the SciPy-User mailing list