harj54.m

% Lasketaan kappaleen hitausmomentti käyttäen hilan kokoa h.
% Aloitetaan arvosta h=1 ja tihennetään hilaa. Esitetään tulos
% graafisesti.
function harj54()
    h = 1
    i = 1;
    while h > 0.01
        hh(i) = h;
        J(i) = hitausmomentti( h );
        i = i+1;
        h = 0.8*h;
    end

    semilogx( hh, J )
end


% Alifunktio joka laskee hitausmomentin käyttäen hilan kokoa h.
function J = hitausmomentti( h )
    L = 30;
    P = 20;
    xc = L/2; % Keskipisteen
    yc = P/2; % koordinaatit
    R = 5;

    J = 0;    % Hitausmomentti alustetaan nollaksi

    rho = 1.3;
    dm = h^2*rho;
    
    % Käydään läpi neliskanttisen levyn pisteet
    for x = 0:h:L
        for y = 0:h:P
            % Mikäli ei olla reiän kohdalla summataan pisteen
            % kontribuutio hitausmomenttiin
            if sqrt((x-xc)^2+(y-yc)^2) >= R
                J = J + dm*(x^2+y^2);
            end
        end
    end

    fprintf( 'Hilakoko on %g, hitausmomentti on %g g/cm^2\n', h, J )
end

Last modified: Tue Feb 28 16:33:49 2017