Sie sind auf Seite 1von 8

UNIVERSIDAD SIMN BOLVAR

DEPARTAMENTO DE MECNICA
MECNICA COMPUTACIONAL I MC2421
ENERO-MARZO 2016

PROYECTO 2 (15%)

Profesor:

Realizado por:

Mujica, Luis

Flores M., Juan M.


Carnet: 13-10468
Seccin # 2

Sartenejas, Marzo 2016

PROBLEMA # 1:
1) Al sustituir los valores de r y P en la ecuacin

P=

para los tres casos se

tiene:
k1 exp( k 2 )

k 3 10

k1 exp( 2 k 2 ) 2 k 3 12
k1 exp( 3 k 2 ) 3 k 3 15
Lo cual representa un sistema de tres ecuaciones no lineales en las
incgnitas k1, k2 y k3.
Generamos un archivo function en MatLab con el sistema de ecuaciones no
lineales descrito anteriormente con el nombre de newtonnl2.m
%Metodo de Newton para sistema de ecuaciones no lineales
function newtonnl2(f1,f2,f3,X0,tol,mx)
syms x y z;
j=jacobian([f1;f2;f3],[x y z]);
% obtiene la matriz jacobiana para f1,f2 Y f3 en las variables x
y z
F1=inline(char(f1),'x','y','z');
% los paremetros 'x','y','z' permiten definir la funcin en
terminos de tres variables
F2=inline(char(f2),'x','y','z');
F3=inline(char(f3),'x','y','z');
J1=inline(char(j(1,1)),'x','y','z');
J2=inline(char(j(1,2)),'x','y','z');
J3=inline(char(j(1,3)),'x','y','z');
J4=inline(char(j(2,1)),'x','y','z');
J5=inline(char(j(2,2)),'x','y','z');
J6=inline(char(j(2,3)),'x','y','z');
J7=inline(char(j(3,1)),'x','y','z');
J8=inline(char(j(3,2)),'x','y','z');
J9=inline(char(j(3,3)),'x','y','z');
%define cada funcin dependiente de las variables x y z
E=tol+1;
C=0;
% nos permite contar las iteraciones que vamos realizando de
modo que no
% sobrepasen a mx que es el nmero mximo de iteraciones.
F=zeros(3,1); J=zeros(3,3);
% inicializa el vector columna para que el producto este bien
%definido e inicializa la matriz jacobiana en ceros
while E>tol && C<mx
C=C+1;%cuenta la iteracin
F(1)=F1(X0(1),X0(2),X0(3)); F(2)=F2(X0(1),X0(2),X0(3));
F(3)=F3(X0(1),X0(2),X0(3));
fprintf('n=%1.0f x=%12.10f y=%12.10f z=%12.10f
',C,X0(1),X0(2),X0(3));
%muestra paso de la iteracion, la aproximacin para x y z

fprintf('f1(x,y,z)=%12.5e f2(x,y,z)=%12.5e f3(x,y,z)=


%12.5e\n',F(1),F(2),F(3))
%muestra el comportamiento de las funciones del sistema
(esperamos sean casi cero)
J(1,1)=J1(X0(1),X0(2),X0(3)); J(1,2)=J2(X0(1),X0(2),X0(3));
J(1,3)=J3(X0(1),X0(2),X0(3));
J(2,1)=J4(X0(1),X0(2),X0(3)); J(2,2)=J5(X0(1),X0(2),X0(3));
J(2,3)=J6(X0(1),X0(2),X0(3));
J(3,1)=J7(X0(1),X0(2),X0(3)); J(3,2)=J8(X0(1),X0(2),X0(3));
J(3,3)=J9(X0(1),X0(2),X0(3));
H=-J\F;
X1=X0+H;
E=norm(X1-X0);
X0=X1;
end

Corriendo el cdigo en la ventana de comandos tenemos que:


>>
newtonnl2(x*exp(y)+z-10,x*exp(2*y)+2*z-12,x*exp(3*y)+3*z[2;2;2],0.000001,100)

15,

n=1 x=2.0000000000 y=2.0000000000 z=2.0000000000 f1(x,y,z)= 6.77811e+00


f2(x,y,z)= 1.01196e+02 f3(x,y,z)= 7.97858e+02
n=2 x=-0.7149949542 y=2.1084066883 z=13.6810916239 f1(x,y,z)=-2.20697e+00
f2(x,y,z)=-3.31267e+01 f3(x,y,z)=-3.73268e+02
n=3 x=-0.5397933879 y=1.8769945777 z=13.0826889479 f1(x,y,z)=-4.44234e-01
f2(x,y,z)=-8.87897e+00 f3(x,y,z)=-1.26320e+02
n=4 x=-0.9996610933 y=1.3233013360 z=14.5787907248 f1(x,y,z)= 8.24263e-01
f2(x,y,z)= 3.05633e+00 f3(x,y,z)=-2.42251e+01
n=5 x=-7.8919897694 y=-0.8050629787 z=31.6497341293 f1(x,y,z)= 1.81215e+01
f2(x,y,z)= 4.97222e+01 f3(x,y,z)= 7.92440e+01
n=6 x=9.2690961167 y=-1.2061294556 z=4.4411208299 f1(x,y,z)=-2.78414e+00
f2(x,y,z)=-2.28713e+00 f3(x,y,z)=-1.42799e+00
n=7 x=4.8943384680 y=0.2105387635 z=4.6039781884 f1(x,y,z)= 6.45270e-01
f2(x,y,z)= 4.66498e+00 f3(x,y,z)= 8.01646e+00
n=8 x=8.7817211589 y=0.3162997910 z=-1.4785884027 f1(x,y,z)= 5.70298e-01
f2(x,y,z)= 1.57440e+00 f3(x,y,z)= 3.24624e+00
n=9 x=8.7870346168 y=0.2684242711 z=-1.4793296451 f1(x,y,z)= 1.32499e-02
f2(x,y,z)= 7.25076e-02 f3(x,y,z)= 2.21303e-01
n=10 x=8.7716392004 y=0.2599542604 z=-1.3751015445 f1(x,y,z)= 5.80913e-04
f2(x,y,z)= 2.58694e-03 f3(x,y,z)= 7.15749e-03
n=11 x=8.7712867530 y=0.2596956806 z=-1.3722838565 f1(x,y,z)= 4.98452e-07
f2(x,y,z)= 2.27899e-06 f3(x,y,z)= 6.35132e-06
n=12 x=8.7712864461 y=0.2596954490 z=-1.3722813233 f1(x,y,z)= 3.96128e-13
f2(x,y,z)= 1.82254e-12 f3(x,y,z)= 5.07505e-12

De esta forma, la solucin es: k1= 8.7713; k2= 0.2597 y k3 = -1.3722


2) Para encontrar el radio de la placa, se tiene que un peso de 500 lb sobre una
placa de radio r producir una presin de 500/ r 2, entonces:

500
k1 exp( k 2 r )
r2

k3r

o bien:

f (r ) k1 exp( k 2 r ) k 3 r

500
0
r2

Para obtener el valor mnimo de r, derivamos la ecuacin anterior:

f ' (r ) k1 k2 exp( k2 r ) k3

1000 r
0
[ r 2 ]2

Se tiene entonces, una ecuacin no lineal de incgnita r, cuya solucin es el


radio mnimo. Procedemos a generar el cdigo que resuelva la ecuacin que
llamaremos Metodo_Newton_Raphson.m
function tabla=Metodo_Newton_Raphson
clear, clc
syms x
% Este programa resuelve por el mtodo de Newton-Raphson la raices o
valores caractersticos de una funcin. Requiere la entrada de una
semilla.
%% Paso 1: definicin de variables
y= input('Ingrese funcin a analizar: ');
F= inline(y);
sem= input('Ingrese el valor de la semilla deseada: ');
TolL2= input('Ingrese tolerancia deseada: ');
Toldes= input('Ingrese desviacin deseada: ');
Nmax= input('Ingrese nmero de iteraciones mxima: ');
%Inicio de variables
eL2=1;
Dsv=1;
N=1;
h=1e-6; % Paso de la derivada por diferencia finita
%% Graficando el intervalo
dominio = sem-5:0.02:sem+5;
rango = F(dominio);
Z = zeros( size(dominio));
plot(dominio, rango)
grid on, hold on
plot(dominio, Z, 'r')
fprintf('\t n \t\tsem\t\tF(sem) \tDesv \terror\n')
%% Paso 2: evaluacin del mtodo de Newton-Rapson
while (abs(eL2)>TolL2)||(abs(Dsv)>Toldes)&&(N<Nmax)

Fp=(F(sem+h)-F(sem-h))/(2*h); %Derivada de diferencias finitas


Pf=sem-(F(sem)/Fp); %Mtodo de Newton-Rapson.
eL2=(Pf-sem)/Pf; %Error local.
Dsv=F(Pf); %Desviacin.
%Respuesta del programa
tabla(N,:)=[N, sem, F(sem), Dsv, eL2];
N=N+1; %Contador de iteraciones.
sem=Pf; %Actualizador
end

Corriendo el cdigo en la ventana de comando tenemos que:


Ingrese funcin a analizar: 8.7713*0.2597*exp(0.2597*x)-1.3722-(1000*x)/
((pi*x^2)^2)
Ingrese el valor de la semilla deseada: 5
Ingrese tolerancia deseada: 1e-10
Ingrese desviacin deseada: 1e-10
Ingrese nmero de iteraciones mxima: 100
n
sem
F(sem)
Desv
error
ans =
1.0000
2.0000
3.0000
4.0000
5.0000
6.0000

5.0000
2.6776
2.9712
3.0305
3.0322
3.0322

6.1630
-2.0841
-0.3074
-0.0084
-0.0000
-0.0000

-2.0841
-0.3074
-0.0084
-0.0000
-0.0000
0.0000

-0.8673
0.0988
0.0196
0.0006
0.0000
0.0000

De esta manera la placa circular requiere un radio mnimo r = 3.0322 pulg.


PROBLEMA # 2
1) Al sustituir los valores de m, k y

en la ecuacin en el sistema de

ecuaciones se obtiene:

x1

x2

2.5 + 20*
-15*
=0
x3
x1
x2
5 - 15*
+30*
-15* =0
x3
x2
5 -15*
-20* =0
Lo cual representa un sistema de ecuaciones lineales. De aqu se obtiene la
matriz y el vector de igualdades:

M=

20 15
0
15 30 15
0
15 20

b=

()
2.5
5
5

Generamos un archivo en MatLab con el sistema de ecuaciones lineales


descrito
anteriormente
con
el
nombre
de
Sistema_de_Ecuaciones_Lineales_Gauss.m
%Sistema de Ecuaciones Gauss-Jordan
clc
clear
%Inicio de variables
M=input('Ingrese la matriz a analizar: ');
b=input('Ingrese el vector de igualdades: ');
b=b(:); %vector respaldo
n=length(b); %tamao del sistema
Ma=[M,b];
for i=1:n
np=i; %Apoyo
%Verificador
for k=1:n-1
if abs(Ma(k+1,i))>abs(Ma(np,i))
np=k+1;
end
end
%Intercambiador
if np>i
cc=Ma(i,:);
Ma(i,:)=Ma(np,:);
Ma(np,:)=cc;
end
%Eliminacin hacia adelante
for i=1:n
Ma(i,:)=Ma(i,:)./Ma(i,i);
for j=i+1:n
if j~=i;
Ma(j,:)=Ma(j,:)-Ma(j,i)*Ma(i,:);
end
end
end
%Sustitucin hacia atras
b=Ma(:,n+1);
sol=[0;0;0];
for i=n:-1:1
sum =b(i);
for j=n:-1:i
sum=sum-Ma(i,j)*sol(j);
end
sol(i)=sum;
end
end
fprintf('ans = ')
disp(sol')

Corriendo el cdigo antes descrito en la ventana de comando se obtiene:


Ingrese la matriz a analizar: [-20 15 0; 15 -30 15; 0 15 20]
Ingrese el vector de igualdades: [2.5;5;5]

ans =

-0.2031

-0.1042

x1

Por tanto la solucin ser:


2) Sustituyendo los valores de

De aqu obtenemos que

x3
= - 0.2031m, = - 0.1042m y

x1 x 2

0.3281

= 0.3281m

x3
y

tenemos que:

+ 20*(0.05) -15*(0.04)=0

- 15*(0.05) +30*(0.04)-15*(0.03)=0
X -15*(0.04) -20*(0.03)=0

X = -0.4m/s2 ;

X =0 ;

X =1.2 m/s2

Procedemos a verificar los resultados obtenidos a travs del mtodo de


Gauss-Jordan con el vector de igualdades nuevo:

b=

( )
0.4
0
1.2

%Sistema de Ecuaciones Gauss-Jordan


clc
clear
%Inicio de variables
M=input('Ingrese la matriz a analizar: ');
b=input('Ingrese el vector de igualdades: ');
b=b(:); %vector respaldo
n=length(b); %tamao del sistema
Ma=[M,b];
for i=1:n
np=i; %Apoyo
%Verificador
for k=1:n-1
if abs(Ma(k+1,i))>abs(Ma(np,i))
np=k+1;
end
end
%Intercambiador
if np>i
cc=Ma(i,:);
Ma(i,:)=Ma(np,:);
Ma(np,:)=cc;
end
%Eliminacin hacia adelante
for i=1:n
Ma(i,:)=Ma(i,:)./Ma(i,i);

for j=i+1:n
if j~=i;
Ma(j,:)=Ma(j,:)-Ma(j,i)*Ma(i,:);
end
end
end
%Sustitucin hacia atras
b=Ma(:,n+1);
sol=[0;0;0];
for i=n:-1:1
sum =b(i);
for j=n:-1:i
sum=sum-Ma(i,j)*sol(j);
end
sol(i)=sum;
end
end
fprintf('ans = ')
disp(sol')

Corriendo el cdigo anterior tenemos que:


Ingrese la matriz a analizar: [-20 15 0; 15 -30 15; 0 15 20]
Ingrese el vector de igualdades: [-0.4;0;1.2]
ans =

0.0500

0.0400

Por tanto, la solucin ser:

x1

0.0300

x3
= 0.05m = 0.04m y

= 0.03m

Das könnte Ihnen auch gefallen