Вы находитесь на странице: 1из 13

QUINTA PRÁCTICA DE METODOS NUMERICOS

Alvaro, Alvarado Arista.

1. Dado el conjunto de datos

Xi Yi
0.15 4.4964
0.40 5.1284
0.60 5.6931
1.01 6.2884
1.5 7.0989
2.2 7.5507
2.4 7.5106
2.7 8.0756
2.9 7.8708
3.5 8.2403
3.8 8.5303
4.4 8.7394
4.6 8.9981
5.1 9.1450
6.6 9.5070
7.6 9.9115

Se ajusta a la función 𝑦 = 𝑏𝑥 𝑎 .

a. Linealizar 𝑦 = 𝑏𝑥 𝑎 y modificar el programa de mínimos cuadrados para obtener la función.

b. Hacer en la misma pantalla gráfica de la función en el plano XY y la gráfica en el plano log(X)log(Y).

El algoritmo es:

function mcuadrado5
n=str2num(char(inputdlg('ingrese el numero de datos\n')));
x=[];
y=[];
for i=1:n
x(1,i)=str2num(char(inputdlg('ingrese los valores de x:')));
end
for j=1:n
y(1,j)=str2num(char(inputdlg('ingrese los valores de y:')));
end
x=log(x);
y=log(y);
xy=sum(x.*y);
x2=sum(x.^2);
sx=sum(x);
sy=sum(y);
m=(sy/n);
a=(n*xy-sx*sy)/(n*x2-(sx^2));
b=(sy*x2-xy*sx)/(n*x2-(sx^2));
x_=linspace(min(x),max(x),100);
y_=a*(x_)+b;
x0=exp(x_);
y0=(log(b)*(x0.^a));
subplot(1,2,1),plot(x_,y_,'g'),xlabel('ln(x)'),ylabel('ln(y)');axis
square
subplot(1,2,2),plot(x0,y0,'b'),xlabel('x'),ylabel('y'),title(strcat('L
a ecuación linealizada es ','
y=',num2str(exp(b)),strcat('x.^'),num2str(a)));axis square

2. Si una población tiene un crecimiento logístico y no puede superar la cantidad de 1000 individuos
entonces el número P de individuos t viene dado por:

1000
𝑃 𝑡 = . Aproximar mediante el método de mínimos cuadrados con linealización con valores C y
1+𝐶𝑒 𝐴𝑡
A para los siguientes datos

Xi 0 1 2 3 4
Yi 200 400 650 850 950
El algoritmo es el siguiente:

function mcuadrado5
n=str2num(char(inputdlg('ingrese el numero de datos\n')));
t=[];
p=[];
for i=1:n
t(1,i)=str2num(char(inputdlg('ingrese los valores de t:')));
end
for j=1:n
p(1,j)=str2num(char(inputdlg('ingrese los valores de p:')));
end
p=log(1000*(p.^-1)-1);
tp=sum(t.*p);
t2=sum(t.^2);
st=sum(t);
sp=sum(p);
m=(sp/n);
a=(n*tp-st*sp)/(n*t2-(st^2))
b=(sp*t2-tp*st)/(n*t2-(st^2));
c=exp(b)
t_=linspace(min(t),max(t),100);
p_=a*(t_)+b;
p0=1000*((1+(exp(b+a*t_))).^-1);
subplot(1,2,1),plot(t_,p_,'g'),xlabel('t'),ylabel('ln(1000/p-1)');axis
square
subplot(1,2,2),plot(t_,p0,'b'),xlabel('x'),ylabel('y'),title(strcat('a
=',num2str(exp(a)),' y ',' c=',num2str(c)));axis square

3. En un curso determinado se seleccionó un amuestra representativa de 12 alumnos varones y se


registro sus alturas (x) en metros y sus pesos (y) en kilos que indica la siguiente tabla.

X 1.70 1.68 1.86 1.60 1.68 1.55 1.62 1.68 1.70 1.65 1.82 1.56
Y 72 65 82 58 63 65 58 70 69 62 76 60

a. considerar la nube de puntos

b. Determinar la línea de regresión de “y sobre x”

c. Calcular el coeficiente de correlación

d. Calcular el peso estimado para los alumnos de 1.75 m

e. Calcular el error estándar Sxy de estimación de la regresión y=ax+b. Si se sabe que


𝑦 2 −𝑏 𝑦 −𝑎 𝑥𝑦
sxy=
𝑛

El algoritmo es:

function mcuadrado5
n=str2num(char(inputdlg('ingrese el numero de datos\n')));
x=[];
y=[];
for i=1:n
x(1,i)=str2num(char(inputdlg('ingrese los valores de x:')));
end
for j=1:n
y(1,j)=str2num(char(inputdlg('ingrese los valores de y:')));
end
xy=sum(x.*y);
x2=sum(x.^2);
sx=sum(x);
sy=sum(y);
m=(sy/n);
a=(n*xy-sx*sy)/(n*x2-(sx^2));
b=(sy*x2-xy*sx)/(n*x2-(sx^2));
r=sqrt(1-(sum((y-(a*x+b)).^2))/(sum((y-m).^2)));
sxy=sqrt(((sum(y.^2-b))*(sum(y-a))*(xy))/n);
x_=linspace(min(x),max(x),100);
y_=a*(x_)+b;
yp=strcat('y=',num2str(a),strcat('x'),'+',num2str(b));
fprintf('La linea de regresión es: %s\n',yp);
fprintf('El coeficiente de correlación es: %f\n',r);
y1=a*1.75+b;
fprintf('El peso estimado para alumnos de 1.75m es: %f\n',y1);
fprintf('El error standar es: %f\n',sxy);
subplot(1,2,1),plot(x,y,'g*'),title('NUBE DE PUNTOS');axis square
subplot(1,2,2),plot(x_,y_,'b'),title(strcat('
y=',num2str(a),strcat('x'),'+',num2str(b)));axis square
4. Hallar la curva que describe mejor la nube de datos:

X 10 20 30 40 50 60 70 80
Y 30 36 40 48 50 54 66 88

Utilizaremos la ecuación anterior.

5. Definición: Sean u,v vectores tal que m=length(u), n=length(v) entonces w=conv(u,v) es un vector de
m+n-1 elementos cuyo K-ésimo elemento es 𝑤 = 𝑗 𝑢 𝑗 . 𝑣(𝑘 + 1 − 𝑗), j= max(1, k+1-n): min(k, m).
6. Sin escribir en el comando window del Matlab help conv obtenga la definición dado en (1).

7. Calcular w=conv(u,v). Si u=1, v= [1, -2].


8. Si x=[1 2 3]. Como interpretar en el Matlab poly(x(1)), poly(x(2)), poly(x(3)).

Nos da como resultado un polinomio lineal de de raíz igual al número de la posición indicada x(n).

9. Escribir el programa para hallar los coeficientes del polinomio de Lagrange siguiente:

function polylagran
x= input(“ingresa el vector de las abscisas x=\n”);
y= input(‘ingresa el vector de las abscisas x=\n’);
w=length(x);
n=w-1;
l=zeros(w,w)
for k=1:n+1
v=1;
for j=1,n+1
if k~=j
v=conv(v,pol(x(j)))/(x(k)-x(j))
end
end
l(k,:)=v;
end
C=y*L
%C es el coeficiente del polinomio de lagrange de grado
%n ordenado decrecientemente

10. Dado el conjunto de datos:

Xi 0 1 2 3 4 5
Yi 0 20 60 68 77 110
El algoritmo general es:

function lagran
x=input('ingresa el vector de las abscisas x=\n');
y=input('ingresa el vector de las ordenadas x=\n');
n=length(x);
f0=[1];
f=1;
for i=1:n
f0(1,2)=-x(i);
f=conv(f,f0);
end
c=[];
e=zeros(1,n);
for i=1:n
a=x(i);
b=1;
for j=1:n
if j~=i
b=(a-x(j))*b;
end
end
c(1,i)=b;
end
g=[1];
for k=1:n
g(1,2)=-x(k);
e=(deconv(f,g))/(c(k))*y(k)+e;
g=[1];
end
fprintf('El polinomio de grado %d de es\n',n-1)
e
x_=linspace(1,30,300);
y_=[];
y0=[];
for m=1:n
y0(1,m)=polyval(e,x(m));
end
for l=1:300
y_(1,l)=polyval(e,x_(l));
end
r=sqrt(1-(sum((y-(y0)).^2))/(sum((y-(sum(y)/n)).^2)));
fprintf('El coeficiente de correlación es %d\n',r)
plot(x_,y_,'b'),title(strcat('La grafica del polinomio de
grado','',num2str(n-1),' es ='));axis square

a. Hallar los polinomios de grado 2, 3, 4, 5

b. Graficar los polinomios de grado 2, 3, 4, 5

¿Cuál de estos se aproxima al conjunto de datos?


NOTA: Para saber que polinomio mejor se ajusta a las curvas se tendrá que tener un punto que no se
encuentra en los dato de la construcción del polinomio.

11. Sea f(x)= 𝑒 𝑥 . Calcular el polinomio de grado 1, con nodos x=0, x= 0.5. Manualmente y luego calcule
usando el programa interprete como funciona el programa.

Xi 0 0.5
Yi 1 1.648721

Forma manual:

(𝑥−𝑥2) (𝑥−𝑥1) (𝑥−0.5) 𝑥 −0


𝑌= ∗ 𝑌1 + ∗ 𝑌2 = ∗ 1 + ∗ (1.648721)
(𝑥1−𝑥2) (𝑥2−𝑥1) (0−0.5) 0.5−0

𝑌 = 1.297442 ∗ 𝑥 + 1
12. Sea f(x)=𝑒 𝑥 ,

Para los ejercicios posteriores se utilizara el algoritmo anterior modificando solo…

fprintf('El error es %d\n',abs(polyval(e,0.25)-exp(0.25)))

a. Hallar el polinomio de lagrange de grado 1, con nodos x= 0, x= 0,5 y aproxime f(0.25) usando este
polinomio.

Xi 0 0.5
Yi 1 1.648721

b. Hallar el polinomio de lagrange de grado 1, con nodos x= 0, x= 1, x= 2 y aproxime f(0.25) usando este
polinomio.

Xi 0 1 2
Yi 1 2,71828183 7,3890561
c. ¿Cuál polinomio es mejor aproximado para f(0.25)?

La primera ecuación debido a que tiene menor error.

d. Graficar los polinomios, la función f(x).

El algoritmo …

La grafica es …

Вам также может понравиться