Vous êtes sur la page 1sur 2

%% Clculo flecha viga clear; clc; %% Solicitamos datos l=input('Introduzca longitud de la viga: '); while l<0 l=input('Introduzca un valor

vlido: '); end e=input('Introduzca mdulo de elasticidad: '); while e<0 e=input('Introduzca un valor vlido: '); end in=input('Introduzca momento de inercia: '); n=input('Introduzca nmero de puntos: '); while n<4 n=input('Introduzca un valor vlido: '); end a=input('Introduzca un 1 si es biapoyada o un 2 si es biempotrada: '); %while a~=1||a~=2 % a=input('Introduzca un valor vlido: '); %end carga=input('Introduzca el valor de la carga: '); %% Operamos h=l/(n-1); %espaciado malla de puntos discretizacin viga n=n-2; %dimesin de la matriz segn el nmero de puntos m=zeros(n); %matrz nula dimesin NxN m(1,1)=-2; %primer elemento diagonal m(1,2)=1; %segundo elemento primera fila m(n,n-1)=1; %penltimo elemento ltima fila m(n,n)=-2; %ltimo elemento diagonal for i=2:n-1 %recorremos la diagonal y sus adyacentes y asignamos valor m(i,i)=-2; m(i,i-1)=1; m(i,i+1)=1; end if a==1 %calculo del vector columna momento flector biapoyada for i=1:n mf(i,1)=(carga*l*i*h/2)-(carga*l*i*h*i*h/2); end end if a==2 %calculo del vector columna momento flectro biempotrada for i=1:n mf(i,1)=(-carga/12)*((l*l)-(6*l*i*h)+(6*i*h*i*h)); end end m=inv(m); %matriz inversa de m flecha=m*mf; %operamos flecha=-flecha*(h*h*e*in); %% Mostramos resultados por pantalla

fprintf('\nVector del Momento Flector\n'); for i=1:n fprintf('%f\n',mf(i,1)); end fprintf('\nMatriz inversa de M\n'); for i=1:n for j=1:n fprintf('%.0f\t',m(i,j)); end fprintf('\n'); end fprintf('\nVector de la Flecha\n'); for i=1:n fprintf('%f\n',flecha(i,1)); end

Vous aimerez peut-être aussi