1. CENTRO DE INVESTIGACIÓN Y DESARROLLO
TECNOLOGICO EN ELECTROQUÍMICA
CIDETEQ
MAESTRIA EN CIENCIA Y TECNOLOGÍA CON
ESPECIALIDAD EN INGENIERÍA AMBIENTAL
ANÁLISIS NUMÉRICOS
Profesor: Dr. Jorge D. Mendiola Santibañez
Alumno: Alan Jacob Cornejo Martell
16 DE MARZO DEL 2015
2. AlanJ. CornejoMartell AnálisisNuméricos 16 de marzodel 2015 Página2 de 6
Figura 2 Curva generada con los datos obtenidos
en el task 5.2
Task 5.1 Calcularel cuadráticaque pasa por lospuntos(0, 0), (2, -1) y (5, 5).
Procedimiento
Códigomatlab
clear all; clc;
x1=[0 2 5];
x2=0:0.1:5;
f1=[0 -1 5];
V=polyfit(x1,f1,2);
f2=polyval(V,x2);
plot(x1,f1,x2,f2)
Respuesta
𝑓( 𝑥) =
1
2
𝑥2 −
3
2
𝑥 + 1.6376 ∗ 10−15
Comentarios
Al ya tenerun el comandopolyfit,se ingresaronlosdatos yse pusode segundogradola
ecuación,yse obtuvieronloscoeficientesdel polinomio,conel comandopolyval se ingresanlos
valoresobtenidosyel vectorde intervalo,se graficóparavercómo es la curva generada.
Task 5.2 Generarlosdatos x2
+ 3x + 2 enlos puntosx = 0, 1, 2, ...10 utilizandoel códigode
X=0:10; Y=x.ˆ2+3*x+2;
Calcularel error asociadoconel uso de líneasrectas enlosintervalosenx esigual a 1/2,
3/2 y 5/2. Esto implicatrabajarqué intervalosse debenutilizarparacalcularlosvalores
aproximados.El errorviene dadoporel hechode que el uso de la formaexactade losdatosse
conoce realmente (esdecir,comolacuadráticaarriba).
Procedimiento
Codigomatlab
clear all; clc;
x1=0:10;
y1=x1.^2+3*x1+2;
x2=[1/2 3/2 5/2];
f1=x2.^2+3*x2+2;
V=polyfit(x2,f1,1);
y2=polyval(V,x2);
error=abs(f1-y2);
plot(x2,y2,x2,f1,'*','MarkerSize',14)
axis ([0.5 2.5 3 16])
Respuesta
𝜀1 = 0.3331 𝜀2 = 0.6666 𝜀2 = 0.3334
Figura 1 Curva generada con los datos
obtenidos en el task 5.1
3. AlanJ. CornejoMartell AnálisisNuméricos 16 de marzodel 2015 Página3 de 6
Figura 3 Curva generada con los datos
obtenidos en el task 5.3
Figura 4 Curva generada con los datos
obtenidos en el task 5.4
Comentarios
Con polyfitse trazóenel tramo deseado,yal seruna línearecta y al ya tenerlosvalores
realesencada puntose hizola restapara saberel error.
Task 5.3 Calcularel cuadráticaque pasa por lospuntos(0, 0), (π / 2, 1) y (π, 0). Sería unabuena
ideahacerestoa manoy utilizandoMATLAB(usandopolyfit).
Procedimiento
Codigomatlab
clear all; clc;
x1=[0 pi/2 pi];
y1=[0 1 0];
V=polyfit(x1,y1,2);
x2=0:pi/20:pi;
y2=polyval(V,x2);
plot(x1,y1,x2,y2)
Respuesta
𝑓( 𝑥) = −0.4053𝑥2 − 1.2732𝑥 − 7.2164 ∗ 10−16
Comentarios
Al ya tenerun el comandopolyfit,se ingresaron losdatosyse pusode segundogradola
ecuación,yse obtuvieronloscoeficientesdel polinomio,conel comandopolyval se ingresanlos
valoresobtenidosyel vectorde intervalo,se graficóparavercómo esla curva generada
Task 5.4 Calcularla cúbicaque pasa por lospuntos(-π/ 2, -1,),(0,0), (π /2, 1) y (π, 0).
Procedimiento
Codigomatlab
clear all; clc;
x1=[-pi/2 0 pi/2 pi];
y1=[-1 0 1 0];
V=polyfit(x1,y1,3);
x2=-pi/2:pi/20:pi;
y2=polyval(V,x2);
plot(x1,y1,x2,y2)
Respuesta
𝑓( 𝑥) = −0.0860𝑥3 + 1.7127 ∗ 10−16 𝑥2 + 0.8488𝑥
+ 7.6353 ∗ 10−17
Comentarios
Al ya tenerun el comandopolyfit,se ingresaronlosdatosyse pusode tercergrado la
ecuación,yse obtuvieronloscoeficientesdel polinomio,conel comandopolyval se ingresanlos
valoresobtenidosyel vectorde intervalo,se graficóparavercómo esla curva generada
4. AlanJ. CornejoMartell AnálisisNuméricos 16 de marzodel 2015 Página4 de 6
Figura 5 Curva generada con los datos
obtenidos en el task 5.5
Task 5.5 Trace el spline que pasaporlospuntos(-π,0), (-π/ 2 -1,),(0, 0), (π / 2, 1) y (π, 0) enlos
puntos(-π,π) enpasosde π / 20. Ustedpodría utilizarel comandospline MATLABparaeste
propósito.
clear all; clc;
x1 = -pi:(pi/2):pi;
y1 = [0 -1 0 1 0];
x2 = -pi:(pi/20):pi;
y2 = spline(x1,y1,x2);
plot(x2,y2,x1,y1,'*','MarkerSize',14)
Comentarios
Se graficaronlos spline ylospuntosdadosparaver cómo se comportabanlosresultados
Task 5.6 dadoslosdatos:
X Y
0.0 3.16
0.1 3.01
0.2 2.73
0.3 2.47
0.4 2.13
0.5 1.82
0.6 1.52
0.7 1.21
0.8 0.76
0.9 0.43
1.0 0.03
Se generóutilizandounaexpresiónde laformaa*senx+ b*cos x,determinalosvaloresde ay b.
Procedimiento
Con el métodode mínimoscuadradosse calculael error que es:
𝑒 = ∑(a sin 𝑥𝑖 +b cos 𝑥𝑖 − 𝑓𝑖)2
𝑛
𝑖=1
Se derivarespectoa yb
𝛿𝑒
𝛿𝑎
= ∑sin 𝑥 𝑖 (a sin 𝑥𝑖 +b cos 𝑥𝑖 − 𝑓𝑖)
𝑛
𝑖=1
𝛿𝑒
𝛿𝑏
= ∑cos 𝑥 𝑖 (a sin 𝑥𝑖 +b cos 𝑥𝑖 − 𝑓𝑖)
𝑛
𝑖=1
Reacomodamos
5. AlanJ. CornejoMartell AnálisisNuméricos 16 de marzodel 2015 Página5 de 6
Figura 6 Curva generada con los datos
obtenidos en el task 5.7
𝛿𝑒
𝛿𝑎
= ∑( 𝑎 sin2 𝑥 𝑖 +b sin 𝑥𝑖 cos 𝑥 𝑖 − 𝑓𝑖 sin 𝑥𝑖)
𝑛
𝑖=1
=̃ 0
𝛿𝑒
𝛿𝑏
= ∑(a cos 𝑥 𝑖 sin 𝑥 𝑖 +b cos2 𝑥 𝑖 − 𝑓𝑖 cos 𝑥 𝑖)
𝑛
𝑖=1
=̃ 0
Ponemosenformade matrizy obtenemosunsistemade ecuacioneslineales
[
∑ sin2 𝑥 𝑖
𝑛
𝑖=1
∑sin 𝑥 𝑖 cos 𝑥 𝑖
𝑛
𝑖=1
∑sin 𝑥 𝑖 cos 𝑥 𝑖
𝑛
𝑖=1
∑ cos2 𝑥 𝑖
𝑛
𝑖=1 ]
[
𝑎
𝑏
] =
[
∑ 𝑓𝑖 sin 𝑥 𝑖
𝑛
𝑖=1
∑ 𝑓𝑖 cos 𝑥 𝑖
𝑛
𝑖=1 ]
Codigomatlab
clear all; clc;
x = 0:0.1:1.0;
f = [3.16 3.01 2.73 2.47 2.13 1.82 1.52 1.21 0.76 0.43 0.03];
A = [sum(sin(x).^2) sum(cos(x).*sin(x));sum(cos(x).*sin(x))
sum(cos(x).^2)];
r = [sum(f.*sin(x)); sum(f.*cos(x))];
sol = Ar;
Respuesta
a= -1.9940 b= 3.1892
Task 5.7 Calcularlossplinesasociadoscon lospuntos(xj,yj) j =1, … , 5. Grafique estassplinespara
lospuntos(-π,0), (-π/ 2, -1),(0, 0) , (π / 2, 1) y (π,0) en unacuadrícula de puntosen pasosde π /
10 de -πa π. Dado que losdatosinicial estádadapor y = senx,determinarlasumade los
cuadradosde loserrorestotalesenestospuntos.
Procedimiento
Codigomatlab
clear all; clc,
x1 = -pi:(pi/2):pi;
y = [0 -1 0 1 0];
x2 = -pi:(pi/10):pi;
f = spline(x1,y,x2);
plot(x2,f,x1,y,'*','MarkerSize',14)
seno=sin(x1);
error=abs(y-seno)
Respuesta
ɛ1=1.2246e-16
ɛ2=0 ɛ3=0 ɛ4=0 ɛ5=1.2246e-16
Task 5.8 El siguientecódigodebe construirlafunciónf (x) = x3 + senx - 1 enla cuadrículade
númerosenterosde 2 a 11, y luegose resuelveel valorde lafunciónenx = 4,5 y x = 15 mediante
la interpolaciónlineal ylaextrapolación
6. AlanJ. CornejoMartell AnálisisNuméricos 16 de marzodel 2015 Página6 de 6
x = 1:11+1;
f = polyvalue([100 -1],x) + sinx;
% x = 4.5
r = 4:5;
c = polyfit(x(r),f(r),1);
yy = polyvalue(c,4.5)
% x = 15
r = 14:15;
c = polyfit(x(r),f(r),1);
yy = polyvalue(c,15);
Procedimiento
Codigomatlab
clear all; clc;
x = 2:11;
f = x.^3 + sin(x) -1;
% x = 4.5 (interpolacion)
r = 3:4;
c = polyfit(x(r),f(r),1);
y1 = polyval(c,4.5);
% x = 15 (extrapolacion)
r = length(x)-1:length(x);
c = polyfit(x(r),f(r),1);
y2 = polyval(c,15);
Respuesta
Interpolación f(4.5)= 92.6421
Extrapolación f(15)= 2651.1761
Comentarios
Para generarla extrapolaciónse hizounarectacon los dosúltimosvaloresde lafunción.