Está en la página 1de 4

Universidad de Guadalajara

Licenciatura en Física
Cómputo Científico II
Sección: 01

Nombre: Rodriguez Delgadillo Edilson Josafat


Número de Práctica: 3

Objetivo: Programación de los métodos iterativos de la Secante y la Posición Falsa para


resolver ecuaciones no-lineales.

Instrucciones

1.- Usando como base el programa del método de la Bisección, programar el método de la
posición falsa

2.- En base al método de Newton, programar el método de la secante.

3.- Resuelva los siguientes problemas:

a) Suponga que se esta diseñando un tanque esférico para almacenar agua. El volumen
de agua que que almacena el tanque está dado por la siguiente función
3𝑅 − ℎ
𝑉 = ℎ2 𝜋
3
siendo V el volumen, h el nivel del agua dentro del tanque y R el radio del tanque. Si
R=3 [mts], ¿a qué profundidad debe llenarse el tanque para que V = 30?. Elija al
menos dos métodos para resolver el problema justificando por escrito su elección.
Para aplicar los métodos considere una tolerancia del 0.01% y determine los valores
iniciales que considere adecuados.

b) Una viga es sujeta a una carga linealmente creciente, siendo la siguiente ecuación la
que determina su deformación
𝑤0
𝑦(𝑥) = (−𝑥 5 + 2𝐿2 𝑥 3 − 𝐿4 𝑥)
120𝐸𝐼𝐿
Determine el punto de inflexión máxima (donde 𝑦′(𝑥) = 0) tomando a 𝐿 =
600 [𝑐𝑚], 𝐸 = 50000 [𝑘𝑁/𝑐𝑚2 ], 𝐼 = 30000 [𝑐𝑚4 ], 𝑤0 = 2.5 [𝑘𝑁/𝑐𝑚].

Para esto elija al menos dos métodos justificando su elección, determinando sus
valores iniciales y considere una tolerancia de 0.01%.
Evidencias

1.- Pegar aquí el código de los programas para los métodos de la Secante y Posición Falsa.

METODO 1. DE LA SECANTE:

%ea = error absoluto

f = input('Ingrese la función:','s');
x1 = input('Ingrese el punto xi-1:');
x2 = input('Ingrese el punto xi:');
err = input('Porcentaje de error:');
ezplot(f)
grid on
f = inline(f);
ea = 100;
i = 0;
fprintf('Iteración: Raíz:\n')
while ea > err
xi = x2-(f(x2)*(x1-x2))/(f(x1)-f(x2));
ea = abs(((xi-x2)/xi)*100);
fprintf('%f %8.4f\n', i, xi)
x1 = x2;
x2 = xi;
i = i + 1;
end
fprintf('\nRaíz de la función:%8.4f\nCalculada en %4fIteracion\n', xi, i)

METODO 2. FALSA POSICIÓN:

Fx=input('Ingrese la funcion: ','s');


a=input('Ingrese a : ');
c=input('Ingrese c : ');
e=input('Ingrese el error : ');

x=a;
Fa=eval(Fx);
x=c;
Fc=eval(Fx);
fprintf('\n %6s %7s %8s %10s %8s %8s %8s \n
','A','B','C','F(a)','F(b)','F(c)','|c-a|');
while abs(c-a)>e
b=(c*Fa-a*Fc)/(Fa-Fc);
x=b;
Fb=eval(Fx);
fprintf('\n %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f
\n',a,b,c,Fa,Fb,Fc,abs(c-a));
if abs(Fc)<e
break;
else
if Fa*Fb<=0
c=b;
Fc=Fb;
else
a=b;
Fa=Fb;
end
end
end
fprintf('\nEl resultado sera %.4f',b);
ezplot(Fx);%graficamos la funcion
grid on;

2.- Pegar aquí una captura de pantalla donde se muestre al menos dos ejecuciones de los
programas elaborados.

METODO 1. DE LA SECANTE:

METODO 2. FALSA POSICIÓN:


3.- Anote aquí las respuestas de cada problema rellenando la siguiente tabla

Problema Método Raíz del Iteraciones Error de la Justificación


problema realizadas solución para la
elección del
método

Método 1 -1.6408 5 0.01% Me pareció


Tanque Secante 2.0269 7 0.01% buena idea
esférico utilizar los
Método 2 -1.6408 5 0.01% métodos que
Falsa 2.0269 15 0.01% yo mismo
Posición programe, para
ver si estaban
Método 1 -600.0000 2 0.01% funcionando
Secante 600.0000 1 0.01% de manera
-268.3282 3 0.01% correcta.
268.3282 3 0.01%
Viga
Método 2 -600.0000 1 0.01%
Falsa 600.0000 1 0.01%
Posición -267.8146 1 0.01%
267.8146 1 0.01%

Para tanque:

Primero se hizo el plot de la función para ver entre que posiciones estaban los ceros.
R(3) − h
0 = h2 π − 30
3
Para viga:

Primero se hizo el plot de la función para ver entre que posiciones estaban los ceros.

2.5
0 = (−5x 4 + 6(600)2 x 2 − (600)4 )
(120)(50000)(30000)(600)

También podría gustarte