Vous êtes sur la page 1sur 16

MATLAB

Métodos numéricos
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

CONTENIDO

ÍNDICE DE FIGURAS________________________________________________________ 2
1. CARGA DISTRIBUIDA _____________________________________________________ 3
1.1. CARGA DISTRIBUIDA REGULAR ________________________________________________ 3
1.2. CARGA DISTRIBUIDA IRREGULAR ______________________________________________ 3
2. REACCIONES EN LOS APOYOS______________________________________________ 4
2.1. CENTROIDE DE UN ÁREA _____________________________________________________ 4
2.2. REACCIONES EN LOS APOYOS _________________________________________________ 5
3. FUERZA CORTANTE ______________________________________________________ 6
3.1. ECUACION DE LA FUERZA CORTANTE ___________________________________________ 6
3.2. METODO DE NEWTON-RAPHSON ______________________________________________ 6
4. MOMENTO ____________________________________________________________ 7
5. CODIGO MATLAB _______________________________________________________ 8
6. PRUEBA DEL PROGRAMA ________________________________________________ 12

ÍNDICE DE FIGURAS

Figura 1. Carga distribuida de forma regular sobre una barra. ........................................................... 3


Figura 2. Carga distribuida de forma irregular sobre una barra. ........................................................ 3
Figura 3. Franja rectangular como elemento de área diferencial. ...................................................... 4
Figura 4. Diagrama de cuerpo libre de la barra................................................................................... 5
Figura 5. Diagrama de cuerpo libre considerando la fuerza cortante. ............................................... 6

Página 2 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

1. CARGA DISTRIBUIDA
1.1. CARGA DISTRIBUIDA REGULAR

Figura 1. Carga distribuida de forma regular sobre una barra.

Para una carga distribuida regular se puede obtener la ecuacion que la describe conociendo
la carga inicial y final, para ello partiremos de la ecuacion general de una línea recta:
𝑦2 − 𝑦1
𝑦 − 𝑦1 = (𝑥 − 𝑥1 )
𝑥2 − 𝑥1
Despejando 𝑦 de la ecuacion se tiene que:
𝑦2 − 𝑦1
𝑦= (𝑥 − 𝑥1 ) + 𝑦1
𝑥2 − 𝑥1
Para una barra de longitud 𝐿 se tiene que la ecuacion de distribución de carga es:
𝑥1 = 0; 𝑦1 = 𝑤1
𝑥2 = 𝐿; 𝑦2 = 𝑤2
𝑤2 − 𝑤1
𝑦= (𝑥 − 0) + 𝑤1
𝐿−0
𝑤2 − 𝑤1
𝑤(𝑥) = 𝑥 + 𝑤1
𝐿
1.2. CARGA DISTRIBUIDA IRREGULAR

Figura 2. Carga distribuida de forma irregular sobre una barra.

Cuando se tiene una carga distribuida de forma irregular como lo es de forma parabólica,
exponencial, etc esta se debe de conocer.

Página 3 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

2. REACCIONES EN LOS APOYOS


2.1. CENTROIDE DE UN ÁREA
Si un área se encuentra en el plano 𝑥 − 𝑦 y esta delimitada por la curva 𝑦 = 𝑓(𝑥), como se
muestra en la figura, entonces su centroide pertenecerá a este plano y podrá determinarse
a partir de integrales:

∫𝐴 𝑥̃ 𝑑𝐴 ∫𝐴 𝑦̃ 𝑑𝐴
𝑥̅ = 𝑦̅ =
∫𝐴 𝑑𝐴 ∫𝐴 𝑑𝐴
Estas integrales pueden evaluarse mediante una integración simple si usamos una franja
rectangular como elemento de área diferencial. Por ejemplo, si se usa una franja vertical,
Figura 3a, el área del elemento es 𝑑𝐴 = 𝑦𝑑𝑥, y su centroide se localiza en 𝑥̃ = 𝑥 y 𝑦̃ = 𝑦/2.
Si consideramos una franja horizontal, Figura 3b, entonces 𝑑𝐴 = 𝑥𝑑𝑦, y su centroide se ubica
en 𝑥̃ = 𝑥/2 y 𝑦̃ = 𝑦.

Figura 3. Franja rectangular como elemento de área diferencial.

Es de nuestro interés 𝑥̅ y por conveniencia elegiremos un rectángulo vertical por lo cual


tenemos que:

∫ 𝑥𝑦𝑑𝑥
𝑥̅ =
∫ 𝑦𝑑𝑥
Pero sabemos 𝑦 = 𝑓(𝑥) y en el caso que estamos analizando 𝑓(𝑥) = 𝑤(𝑥) por lo que se
tiene que:

∫ 𝑥𝑤(𝑥)𝑑𝑥
𝑥̅ =
∫ 𝑤(𝑥)𝑑𝑥
Si consideramos una barra de longitud 𝐿 el centroide se calcularía de 0 a 𝐿, es decir:
𝐿
∫0 𝑥𝑤(𝑥)𝑑𝑥
𝑥̅ = 𝐿
∫0 𝑤(𝑥)𝑑𝑥 (1)

Para resolver cada integral se empleará la integración numérica con el metodo del trapecio.

Página 4 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

2.2. REACCIONES EN LOS APOYOS

Figura 4. Diagrama de cuerpo libre de la barra.

Si consideramos el diagrama de cuerpo libre de una barra con apoyo A y B y tomamos el


cálculo de momentos con respecto al apoyo B se tiene que:
∑𝑀𝐵 = 0 𝑅𝐴 𝐿 − 𝑊(𝐿 − 𝑥̅ ) = 0
𝑊(𝐿 − 𝑥̅ )
𝑅𝐴 =
𝐿
𝑥̅
𝑅𝐴 = 𝑊 (1 − )
𝐿
𝑥
𝑊 = ∫ 𝑤(𝑥) 𝑑𝑥
0

Si consideramos la suma de fuerzas se tiene que:


∑𝐹 = 0 𝑅𝐴 + 𝑅𝐵 − 𝑊 = 0
𝑅𝐵 = 𝑊 − 𝑅𝐴
𝑥
𝑅𝐵 = ∫ 𝑤(𝑥) 𝑑𝑥 − 𝑅𝐴 (2)
0

Página 5 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

3. FUERZA CORTANTE
3.1. ECUACION DE LA FUERZA CORTANTE

Figura 5. Diagrama de cuerpo libre considerando la fuerza cortante en un tramo de la barra.

Si consideramos la suma de fuerzas se tiene que:


∑𝐹 = 0 𝑅𝐴 − 𝑊 − 𝑉 = 0
𝑉 = 𝑅𝐴 − 𝑊
El momento máximo de produce donde la fuerza cortante es igual a cero para ello se
obtendrá 𝑥 donde 𝑉 = 0, es decir se tendrá que resolver la ecuacion siguiente:
0 = 𝑅𝐴 − 𝑊
𝑥
0 = 𝑅𝐴 − ∫ 𝑤(𝑥) 𝑑𝑥
0

Para encontrar las raíces se empleará el método de Newton-Raphson.


3.2. METODO DE NEWTON-RAPHSON
Sea 𝑓 una función derivable definida en el intervalo real [𝑎, 𝑏]. Empezamos con un valor
inicial 𝑥0 y definimos para cada número natural 𝑛:
𝑓(𝑥𝑛 )
𝑥𝑛+1 = 𝑥𝑛 −
𝑓′(𝑥𝑛 )
Aplicando el método para la ecuacion a resolver se tiene que:
𝑉(𝑥)
𝑥𝑛+1 = 𝑥𝑛 −
𝑑𝑉
𝑑𝑥
La derivada de la función será:
𝑑𝑉 𝑑
= (𝑅 − 𝑊)
𝑑𝑥 𝑑𝑥 𝐴
𝑑𝑉 𝑑 𝑑
= 𝑅𝐴 − 𝑊
𝑑𝑥 𝑑𝑥 𝑑𝑥

Página 6 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

𝑥
Anteriormente se había mencionado que 𝑊 = ∫0 𝑤(𝑥)𝑑𝑥 por lo que la ecuacion se simplifica
a:
𝑥
𝑑𝑉 𝑑 𝑑
= 𝑅𝐴 − [∫ 𝑤(𝑥)𝑑𝑥 ]
𝑑𝑥 𝑑𝑥 𝑑𝑥 0
𝑑𝑉
= 0 − 𝑤(𝑥)
𝑑𝑥
𝑑𝑉
= −𝑤(𝑥)
𝑑𝑥
Finalmente, la ecuacion del método de Newton-Rapshon será:
𝑥
𝑅𝐴 − ∫0 𝑛 𝑤(𝑥) 𝑑𝑥
𝑥𝑛+1 = 𝑥𝑛 − (3)
−𝑤(𝑥𝑛 )

Para saber hasta dónde se desea parar las iteraciones se obtendrá un error que deberá ser
menor a una tolerancia de 0.001 es decir:
𝑒 = |𝑥𝑛+1 − 𝑥𝑛 |
𝑒 ≤ 0.001
Asi finalmente se encontrara 𝑥𝑚á𝑥 .

4. MOMENTO

Figura 6. Diagrama de cuerpo libre considerando el momento en un tramo de la barra.

Si consideramos la suma de momentos se tiene que:


∑𝑀 = 0 − 𝑀 + 𝑅𝐴 ∗ 𝑥𝑚á𝑥 − 𝑊(𝐿 − 𝑥̅ )
𝑀 = 𝑅𝐴 ∗ 𝑥𝑚á𝑥 − 𝑊(𝐿 − 𝑥̅ )
𝑥𝑚á𝑥
𝑊=∫ 𝑤(𝑥) 𝑑𝑥
0

Página 7 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

𝑥𝑚á𝑥
𝑀 = 𝑅𝐴 ∗ 𝑥𝑚á𝑥 − [∫ 𝑤(𝑥) 𝑑𝑥] [𝐿 − 𝑥̅ ]
0
(4)

Para resolver la integral se empleará la integración numérica con el metodo del trapecio.

5. CODIGO MATLAB
clear;
clc;
fprintf('PROGRAMA PARA CALCULAR EL MOMENTO MAXIMO EN UNA
BARRA CON CARGA DISTRIBUIDA \n');
k = menu('Seleccione la forma de la
funcion','Regular','Irregular');
switch k
%Carga distribuida forma regular
case 1
%Se determina la funcion de la carga distribuida
w1 = input('Ingresa la carga inicial sobre la barra:
\n w1 = ');
w2 = input('Ingresa la carga inicial sobre la barra:
\n w2 = ');
syms x;
a = 0;
b = input('Ingresa la longitud de la barra: \n L =
');
m = (w2-w1)/(b-a);
B = w1;
y = m*(x-a)+B;
fprintf('La funcion de carga sobre la barra es: \n
w(x) = %f*x + %f \n',m,B);
xw = inline(x*y);
w = inline(y);
%Carga distribuida forma irregular
case 2
%Se ingresar la función que describe la carga
distribuida sobre la barra
y = input('Ingresa la funcion de carga sobre la
barra: \n w(x) = ', 's');
syms x;
xw = inline(x*y);
w = inline(y);
a = 0;
b = input('Ingresa la longitud de la barra: \n L= ');
end

%Calculo del centroide de la carga distribuida


%Integracion numerica (Método del trapecio)

Página 8 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

n = 1000;
h = (b-a)/n;
W = 0;
for i=1:n
W=h/2*(w(a+(i-1)*h)+w(a+(i)*h))+W;
end
XW = 0;
for i=1:n
XW=h/2*(xw(a+(i-1)*h)+xw(a+(i)*h))+XW;
end
%Ecuacion (1) presentada en el documento
cenx = XW/W;

%Calculo de las reacciones en el apoyo A y B de la barra


%Ecuacion (2) presentada en el documento
RA = W*(1-cenx/b);
RB = W-RA;
fprintf('El centroide de la carga distribuida sobre la barra
es: \n x = %5.3f \n',cenx);
fprintf('La reaccion en el punto A es: \n RA = %5.3f \n',RA);
fprintf('La reaccion en el punto B es: \n RB = %5.3f \n',RB);

%Calculo del Momento maximo


%Raíces de funciones (Método de Newton Raphson)
xn = 1;
e = 10;
tol = 0.001;
while e>=tol
%Integracion numerica (Método del trapecio)
Wxn = 0;
h1 = (xn-a)/n;
for i=1:n;
Wxn=h1/2*(w(a+(i-1)*h1)+w(a+(i)*h1))+Wxn;
end
%Ecuacion (3) presentada en el documento
x1 = xn-((RA-Wxn)/(-w(xn)));
e = abs(x1-xn);
xn = x1;
end
fprintf('La longitud de la barra donde el momento es maximo
es: \n x = %5.3f \n',x1);
%Calculo del momento maximo
%Integracion numerica (Método del trapecio)
n = 1000;
h = (x1-a)/n;
Wx1 = 0;

Página 9 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

for i=1:n
Wx1=h/2*(w(a+(i-1)*h)+w(a+(i)*h))+Wx1;
end
X1W = 0;
for i=1:n
X1W=h/2*(xw(a+(i-1)*h)+xw(a+(i)*h))+X1W;
end
cenx1 = X1W/Wx1;
%Ecuacion (4) presentada en el documento
M = RA*x1-Wx1*(x1-cenx1);
fprintf('El momento maximo es: \n Mmax = %5.3f \n',M);

%Graficacion de la funcion de carga, de cortante y momento


%Valores para graficar la barra
x0 = [0:b];
y0(1)=0;
for i=1:b
y0(i+1)=0;
end
%Valores para graficar la funcion de carga
x1 = [0:0.1:b];
y1 = subs(y,x1);
%Valores para graficar la fuerza cortante
x2(1)=0;
y2(1)=RA;
for i=1:b
W = 0;
h = (i-a)/n;
for j=1:n;
W=h/2*(w(a+(j-1)*h)+w(a+(j)*h))+W;
end
V=RA-W;
x2(i+1)=i;
y2(i+1)=V;
end
%Valores para graficar la funcion de momento
%Calculo del momento maximo
%Integracion numerica (Método del trapecio)
x3(1)=0;
y3(1)=0;
n = 1000;
for i=1:b
h = (i-a)/n;
Wxi = 0;
for j=1:n
Wxi=h/2*(w(a+(j-1)*h)+w(a+(j)*h))+Wxi;

Página 10 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

end
XiW = 0;
for j=1:n
XiW=h/2*(xw(a+(j-1)*h)+xw(a+(j)*h))+XiW;
end
cenxi = XiW/Wxi;
%Ecuacion (4) presentada en el documento
x3(i+1) = i;
y3(i+1) = RA*i-Wxi*(i-cenxi);
end
%Graficacion de la funcion de carga
subplot(3,1,1)
plot(x1,y1,'--b',x0,y0,'-r')
grid on
%title('Distribucion de cargas')
xlabel('Longitud')
ylabel('Carga')
legend('Cargas','Barra')
%Graficacion de cortante
subplot(3,1,2)
plot(x2,y2,'--b',x0,y0,'-r')
grid on
%title('Diagrama de Fuerza cortante')
xlabel('Longitud')
ylabel('Fuerza cortante')
legend('Fuerza cortante','Barra')
%Graficacion de momento
subplot(3,1,3)
plot(x3,y3,'--b',x0,y0,'-r')
grid on
%title('Diagrama de Momento')
xlabel('Longitud')
ylabel('Momento')
legend('Momento','Barra')

Página 11 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

6. PRUEBA DEL PROGRAMA

Correremos el programa para 𝑤1 = 2 𝑘𝑖𝑝/𝑝𝑖𝑒, 𝑤2 = 6 𝑘𝑖𝑝/𝑝𝑖𝑒 y 𝐿 = 18 𝑝𝑖𝑒 y nos da los


siguientes resultados:

Página 12 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

Página 13 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

Correremos el programa para 𝑤1 = 0 𝑙𝑏/𝑝𝑖𝑒, 𝑤2 = 120 𝑙𝑏/𝑝𝑖𝑒 y 𝐿 = 12 𝑝𝑖𝑒𝑠 y nos da los


siguientes resultados:

Página 14 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

Como se puede observar el momento máximo es casi igual el calculado en Matlab al


calculado con fórmulas en los ejemplos.
Para el primer ejemplo el momento máximo con fórmulas es 163 y el calculado en Matlab
es 163.110 y los diagramas son muy parecidos a los graficados en Matlab.
Para el primer ejemplo el momento máximo con fórmulas es 1109 y el calculado en Matlab
es 1108.511 y los diagramas son muy parecidos a los graficados en Matlab.

Página 15 de 16
PROGRAMACIÓN DE METODOS NUMERICOS EN MATLAB

También se puede introducir una función cualquiera correremos el programa para 𝑤 = 𝑥 2 y


𝐿 = 15 𝑚 y nos da los siguientes resultados:

Página 16 de 16