Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EXAMEN DE PRQ214
1.- (25%) Suponga el lector que está diseñando un tanque esférico (véase la figura P6.26 – Libro: Chapra)
de almacenamiento de agua para un poblado pequeño de un país en desarrollo. El volumen del líquido
que puede contener se calcula con
donde V = volumen [pie3 ], h = profundidad del agua en el tanque [pies], y R = radio del tanque [pies]. Si
R = 3 m, ¿a qué profundidad debe llenarse el tanque de modo que contenga 30 m3 ? Resuelva utilizando
el método de Newton-Raphson. Encuentre el error relativo aproximado después de cada iteración.
Observe que el valor inicial de R convergerá siempre.
ALGORITMO
DIAGRAMA DE FLUJO
INICIO
X_0, to
V=30
R=3
F(h)=(pi*h^2*(3*R-h)/3)-v
df=f h)
Y=Newton_Rapson(f,df,tol,x_0)
FIN
función Newton_Raphson:
function [y]=Newton_Raphson(f, df, tol, x_0)
error=1;
while (error>tol)
y=x_0-f(x_0)/df(x_0);
error =abs(y-x_0);
x_0=y;
end
end
PRUEBA DE ESCRITORIO
Programa en Matlab:
%este programa determina la altura de un tanque esferico, con el metodo de
%Newton Raphson clc
clear all
v=30; %m^3
R=3; %m
tol=input('ingrese el valor de la tolerancia: ');
x_0=input('ingrese el valor inicial: ');
syms h
g=(pi*h^2*(3*R-h)/3)-v;
dg=diff(g);
f=inline(g);
df=inline(dg);
error=1;
i=1;
fprintf('N x error\n');
while (error>tol)
y=x_0-f(x_0)/df(x_0);
error =abs(y-x_0);
fprintf('%g %g %g\n',i,y ,error);
x_0=y;
i=i+1;
end
fprintf('el valor de la altura es: %g[m]\n', y);
PRUEBA DE ESCRITORIO
2.- (25 %) Utilizando el método de mínimos cuadrados, realice un programa en MATLAB usando GUIDE
para ajustar n+1 datos, a un polinomio de grado n o menor. Ejecute el programa para encontrar el mejor
ajuste, a los siguientes datos:
x 0.2 0.5 0.8 1.2 1.7 2 2.3
y 500 700 1000 1200 2200 2650 3750
Define el mejor ajuste tomando en cuenta el valor del coeficiente de correlación, cuanto más cerca este
de +1 o -1 será el mejor ajuste.
Muestre gráficos de la curva ajustada y de los puntos dispersos. También de los errores de ajuste en
cada punto.
DIAGRAMA DE FLUJO
INICIO
X,Y
n=7
sumx_y=sum(x.*y);
sumx=sum(x);
sumx_cuadrado=sum(x.^2);
cuadrado_sumx=(sumx)^2
sum_y=sum(y);
a1=((n*sumx_y)-(sumx*sum_y))/(n*sumx_cuadrado-cuadrado_sumx);
y=mean(y);
x=mean(x);
a0=y-a1*x;
FIN
PROGRAMA EN MATLAB
% EJERCICIO 2 SEGUNDO PARCIAL
%NOMBRE: Zapata Molina Jenifer Elizabeth
clc
clear all
x=[0.2 0.5 0.8 1.2 1.7 2 2.3];
y=[500 700 1000 1200 2200 2650 3750];
n=7;
sumx_y=sum(x.*y);
sumx=sum(x);
sumx_cuadrado=sum(x.^2);
cuadrado_sumx=(sumx)^2;
sum_y=sum(y);
a1=((n*sumx_y)-(sumx*sum_y))/(n*sumx_cuadrado-cuadrado_sumx);
y=mean(y);
x=mean(x);
a0=y-a1*x;
disp('la ecuacion de la curva ajustada es:');
fprintf('y= %d + %f x \n',a0,a1);
PRUEBA DE ESCRITORIO
3.- (25 %) Desarrolle y pruebe un sub-programa (function) en MATLAB, para encontrar un polinomio
interpolante de grado n y el valor de f(x) para cualquier x en el intervalo [xmin, xmax]. Formule un
Programa interactivo en GUIDE. Pruebe el programa con los datos del ejercicio 4 (Tarea_8). a) Usando el
método de Lagrange, b) Para el método de Newton.
ALGORITMO
PSEUDOCODIGO
INTERPOLACION LAGRANGE
function [A] = Lagrange(X,Y)
%METODO DE LAGRANGE
%EJERCICIO3 JENIFER ELIZABTH ZAPATA MOLINA
Inicio
hacer para k=1:n+1,
V=1;
Hacer para j=1:n+1,
Si k~=j
V=conv(V,poly(X(j)))/(X(k)-X(j));
Fin si
Fin para
L(k,:)=V;
Fin para
C=Y*L;
Fin
PROGRAMA EN MATLAB
function [A] = Lagrange(X,Y)
%METODO DE LAGRANGE
%EJERCICIO3 JENIFER ELIZABTH ZAPATA MOLINA
n1=length(X);
n=n1-1;
L=zeros(n1,n1);
for k=1:n+1,
V=1;
for j=1:n+1,
if k~=j
V=conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(k,:)=V;
end
A=Y*L;
End
PRUEBA DE ESCRITORIO
Y=
A=
Polinomio =
(140311507112827*x^4)/1152921504606846976 - (81236545073187*x^3)/4503599627370496 +
(1360600532165*x^2)/2199023255552 + (24393892637551*x)/2199023255552 -
75935472333175/1099511627776
POTENCIA= 530.5709[W]
PSEUDOCODIGO
INTERPOLACION NEWTON
Inicio
Hacer para j=2:n
Hacer para k=j:n
T(k,j)=(T(k,j-1)-T(k-1,j-1))/(X(k)-X(k-j+1));
Fin para
Fin para
A=T(n,n);
Hacer para k=(n-1):-1:1
A=conv(A,poly(X(k)));
m=length(A);
A(m)=A(m)+T(k,k);
Fin para
Fin
PROGRAMA EN MATLAB
function [A,T] =Newton(X,Y)
%METODO DE NEWTON
%EJERCICIO3 JENIFER ELIZABTH ZAPATA MOLINA
n=length(X);
T=zeros(n,n);
T(:,1)=Y';
for j=2:n
for k=j:n
T(k,j)=(T(k,j-1)-T(k-1,j-1))/(X(k)-X(k-j+1));
end
end
A=T(n,n);
for k=(n-1):-1:1
A=conv(A,poly(X(k)));
m=length(A);
A(m)=A(m)+T(k,k);
end
end
PRUEBA DE ESCRITORIO
X=
Y=
A=
>> Polinomio=poly2sym(A)
Polinomio =
(4489968227610501*x^4)/36893488147419103232 - (81236545073189*x^3)/4503599627370496 +
(2786509889873889*x^2)/4503599627370496 + (1561209128803261*x)/140737488355328 -
607483778665419/8796093022208
POTENCIA= 530.5709[W]
.
.
4.- (25 %)
ALGORITMO
Para resolver el primer literal se realizó la siguiente tabla donde se ha calculadodT/dt mediante el uso de
diferencias finitas ya sean progresivas, centradas o regresivas según la posición en la que se
encontraban los datos y la exactitudque se requería, se obtuvieron los siguientes resultados:
Para realizar el segundo literal se ha realizado una gráfica dT/dt versus (T-Ta)con los anteriores
resultados, además se graficó su línea de tendencia y surespectiva función, se obtuvo el siguiente
resultado:
Finalmente, para resolver el tercer literal, se ha realizado una regresión lineal, para lograr obtener el
valor de k, el cual se puede comprobar con la función del anterior literal, se obtuvo los siguientes
resultados:
PSEUDOCODIGO
Inicio
Hacer para i=1:nv
Si i==(nv-1) ó i==nv
dTdt(i)=(-3*T(i-2)+4*T(i-1)-T(i))/(2*h);
si no
dTdt(i)=(-3*T(i)+4*T(i+1)-T(i+2))/(2*h);
fin si
fin para
hacer para i=1:nv
T(i)=T(i)-20;
Fin para
Mostrar x=T
fin
PROGRAMA EN MATLAB
PSEUDOCODIGO
Inicio
Hacer para i=1:n
sum3=sum3+x(i)*y(i);
fin para
hacer para i=1:n
sum4=sum4+x(i)^2;
fin para
b=((n)*sum3-sum1*sum2)/((n)*sum4-(sum1)^2);
a=(sum2-b*sum1)/(n);
Fin
PROGRAMA EN MATLAB
[a,b] = regresionlinial(x,y);
PRUEBA DE ESCRITORIO
El valor de K es 0.142906.