Wednesday, December 18, 2013

Batas memori stack pada python dan matlab

Saya penasaran, bagaimana jika kita memplot sebuah fungsi sinusoidal hingga tak berhingga, apa yang terjadi. Maksudnya adalah bagaimana jika kita memplot \( \sin(\sin( \sin( \cdots x) \cdots )) \). Ternyata untuk software yang berbeda hasilnya beda pula. Untuk MATLAB kapasitasnya di batasi sampai 32 kurung bersarang. Sementara untuk python untuk 90 kurung bersarang. Berikut contohnya untuk MATLAB


dengan sourcenya:
function test_sin_sin
clc; 
x = linspace(0, 2*pi ); 
cut(2); 
cut(15); 
cut(30);  
    function cut(a)
    y = 'sin('; 
    for i=1:a,
        y = strcat(y,'sin('); 
    end
    y = strcat(y, 'x)'); 
    for i=1:a, 
        y = strcat(y, ')'); 
    end
    y = eval(y); 
    plot(x, y);
    hold on ; 
    end
end
Adapun untuk python adalah


dengan source-nya
# -*- coding: utf-8 -*-
"""
Created on Thu Dec 19 15:22:44 2013

@author: fajar
"""
x = linspace(-pi,pi, 1000); 
def  test(a):
    aa = 'sin('
    for i in range(a):
        aa += 'sin('
    aa += 'x)'
    for i in range(a):
        aa+= ')'
    yy = eval(aa); 
    plot(x, yy);
    
test(90)
        

No comments: