Problema Newton Raphson modificado
Publicado por Beatriz (6 intervenciones) el 29/01/2017 16:58:05
Hola, tengo un problema con el metodo de newton raphson modificado, es para la resolucion de un problema de estructuras en el que se aplica una carga y se calcula un residuo. La carga se aplica en pasos de carga, siendo la maxima 60 y el paso de 30. Aplica el primer paso de carga (30) pero el segundo realiza la tangente hacia abajo.
Este es el archivo que ejecuta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function [ui,niter] = newtonraphsonm(r,u0)
syms u real
KT = diff(r,u);
ui = u0;
r0 = subs(r,ui);
ri = r0;
TOL = 10e-6;
niter = 0;
KT0 = double(subs(KT,0));
while max(norm(ri/r0),norm(ri)) > TOL
Au=-KT0\ri;
ui=ui+Au;
ri = double(subs(r,ui));
niter = niter+1;
end
Este es el archivo que ejecuta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
a = 2500; %Unidades en mm
h = 25; %Unidades en mm
A = 400; %Unidades en mm2
E = 200e3; %Unidades en N/mm2
l0 = sqrt(a^2 + h^2); %Unidades en mm
u0 = 0;
syms u
pg = E*A/l0*((h/l0)^2*u-3/2*h*u^2/l0^2+1/2*u^3/l0^2);
Pa=60;
Pc=30;
%Pc=5;
P=0;
solu = zeros(Pa/Pc,1);
nitera = zeros(Pa/Pc,1);
i = 1;
while P < Pa
P = P+Pc;
r = pg - P;
[ui,niter]=newtonraphsonm(r,u0);
u0 = ui;
solu(i) = u0;
nitera(i) = niter;
i = i+1;
end
u=linspace(0,65);
plot(u,subs(pg,u),'g',solu,subs(pg,solu),'-b')
hold on
grid on
xlabel('u (mm)')
ylabel('P (N)')
title('Respuesta P-u')
Valora esta pregunta
0