ANÁLISIS NUMÉRICO PARA
INGENIEROS CIVILES CI 708
2022-02
TEMARIO
INTRODUCCIÓN A
MATLAB
UNIDAD 1 UNIDAD 2
SISTEMA DE
ECUACIONES LINEALES
UNIDAD 3
AUTOVALORES Y
AUTOVECTORES
TEMARIO
APROXIMACIÓN
DE FUNCIONES
UNIDAD 4 UNIDAD 5
INTEGRACIÓN
NUMÉRICA
UNIDAD 6
RAICES DE
ECUACIONES NO
LINEALES.
UNIDAD 7
ECUACIONES
DIFERENCIALES
CONTENIDO
1. INTRODUCCIÓN
2. AJUSTE DE CURVAS NO POLINOMIAL( LINEAL)
3. AJUSTE DE CURVAS POLINOMIAL
4. AJUSTE DE CURVAS MÚLTIPLE
5. POLINOMIO DE INTERPOLACIÓN DE GRADO “n”: FÓRMULA DE
NEWTON POR DIFERENCIAS DIVIDIDAS.
6. INTERPOLACIÓN SEGMENTARIA(SPLINE)
7. APLICACIONES CON MATLAB
a) Datos dados.
b) Interpolación polinomial.
c) Ajuste de curvas polinomial.
INTRODUCCIÓN
AJUSTE DE CURVAS NO POLINOMIAL, LINEAL
 Ajustar una curva mediante un polinomio consiste en ubicar los
puntos dados y después trazar un polinomio que visualmente se
acerque a los datos.
 Se debe obtener una función que minimice la discrepancia entre los
puntos y la curva.
 La técnica que se utiliza para este fin se conoce como ajuste por
mínimos cuadrados (AMC).
𝑥1 𝑥2 𝑥3 𝑥𝑖
𝑥𝑛−1 𝑥𝑛
𝑦2
𝑦3
𝑦𝑖
𝑦𝑛−1
𝑦𝑛
Intercepto
Pendiente
𝑒𝑖= 𝑦𝑖 − 𝑎0 − 𝑎1 𝑥𝑖
⥂𝑒𝑖 ⥂𝑒3
𝑦 𝑐𝑎𝑙𝑐
𝑖=𝑎0+ 𝑎1 𝑥𝑖
𝑦𝑖
𝑦𝑐𝑎𝑙𝑐
AJUSTE DE CURVAS NO POLINOMIAL
AJUSTE DE CURVAS NO POLINOMIAL SIMPLE
El criterio de mínimos cuadrados
consiste en minimizar
Entonces derivamos e igualamos a 0,
con respecto a cada coeficiente de la
recta
¿
𝜕 𝑆𝑟
𝜕 𝑎0
=−2∑
𝑖
(𝑦𝑖 −𝑎0 −𝑎1 𝑥𝑖)=0
¿
𝜕𝑆𝑟
𝜕𝑎1
=−2∑
𝑖
(𝑦𝑖 −𝑎0 −𝑎1 𝑥𝑖)𝑥𝑖=0}
Los ¨N¨ puntos
conocidos, tiene como
coordenadas
𝑆𝑟 =∑
𝑖
𝑒𝑖
2
=¿ ∑
𝑖
¿¿ ¿
Ecuaciones normales:
¿∑
𝑖
𝑦𝑖=∑
𝑖
𝑎0+𝑎1∑
𝑖
𝑥𝑖
¿∑
𝑖
𝑥𝑖 𝑦𝑖=𝑎0∑
𝑖
𝑥𝑖+𝑎1 ∑
𝑖
𝑥𝑖
2
}
∑
𝑖
𝑦𝑖=𝑁 𝑎0+𝑎1∑
𝑖
𝑥𝑖❑
→
¯
𝑦=𝑁 𝑎0+𝑎1 ¯
𝑥
En forma matricial ,podemos escribir :
𝑥𝑦=𝑎0 𝑥+𝑎1 𝑥
2
𝑁 𝑎0+𝑎1 𝑥
AJUSTE DE CURVAS NO POLINOMIAL, LINEAL
AJUSTE DE CURVAS POLINOMIAL
N=length(T);%numero de elementos
Sum_x=sum(T);
Sum_x2=sum(T.^2);
Sum_y=sum(u);
Sum_xy=sum(T.*u);
A=[N Sum_x
Sum_x Sum_x2 ] ;
B=[Sum_y ; Sum_xy];
x=inv(A)*B;
fprintf('a0 =% 7.4f n',x(1));
fprintf('a1 =% 7.4f n',x(2));
(𝑁 𝑥
𝑥 𝑥
2 )(𝑎0
𝑎1
)=
( 𝑦
𝑥𝑦 )
Energia(u)
2506.7
2582.8
2658.1
2733.7
2810.4
2967.9
3131.6
a0 =-1505.7093
a1 = 0.6415
T=[100, 150, 200, 250, 300 , 400, 500];
u=[2506.7 ,2582.8,2658.1 ,2733.7 , 2810.4, 2967.9, 3131.6];
𝑦𝑐𝑎𝑙𝑐
𝑖=𝑎0+𝑎1 𝑥𝑖
i
Temp(T)
100
150
200
250
300
400
500
T=[100, 150, 200, 250,300 , 400, 500];% valores x
u=[2506.7 ,2582.8,2658.1 ,2733.7 , 2810.4, 2967.9, 3131.6];%valores y
x=u;y=T;
n=1;%grado uno(Lineal)
p=polyfit(x,y,n);
ycalc=polyval(p,x);
plot(u,T,'o',u, ycalc,'--')
title(sprintf('Grado del polinomio %d’,n));
AJUSTE DE CURVAS NO POLINOMIAL, LINEAL
AJUSTE DE CURVAS POLINOMIAL
Se pueden ajustar los datos dados mediante un polinomio de
grado m:
La suma de los cuadrados de los residuos es:
Y, la derivada con respecto
a cada coeficiente será:
AJUSTE DE CURVAS POLINOMIAL
Sistema de ecuaciones con “m+1” incógnitas.
AJUSTE DE CURVAS POLINOMIAL
x=[0:5];
y=[2.1, 7.7, 13.6, 27.2, 40.9, 61.1];
n=2;%grado 2
p=polyfit(x,y,n);%[a2,a1,a0]
ycalc=polyval(p,x);%calcula usando
%los coeficientes del polinomio
%-----------------
plot(x,y,'o',x, ycalc,'--’)
title(sprintf('Grado del polinomio %d’,n));
p =1.8607 2.3593 2.4786
AJUSTE DE CURVAS POLINOMIAL
x=[10,20,30,40,50,60,70,80,90,100];
y=[23,45,60,82,111,140,167,198,200,220];
for n=2:5
p=polyfit(x,y,n);
ycalc=polyval(p,x);
subplot(2,2,n-1)
%----------------------
plot(x,y,'o',x,ycalc)
title(sprintf('Grado del polinomio %d',n));
end
AJUSTE DE CURVAS POLINOMIAL
M=[10 23;20 45;30 60;40 82;50 111];
n=2;
function [p]=ajuste_polinomial(M,n)
%ajuste_polinomial
%p=coeficientes del polinomio
%
x=M(:,1);
y=M(:,2);
p=polyfit(x,y,n);%p=[an,an-1,an-2.....a0]
yc=polyval(p,x);
x1=linspace(min(x),max(x),500);
y1=polyval(p,x1);
figure(1),clf
%plot(x,y,'ro',x1,y1,'b')
hold on
plot(x,y,'ro','LineWidth',2)
plot(x1,y1,'b','LineWidth',2)
hold off
grid
end
p =
0.0150 1.2300 10.8000
AJUSTE DE CURVAS MÚLTIPLE
Cuando se estudia la posible relación entre varias variables
independientes y una variable dependiente.
Un caso particular:
AJUSTE DE CURVAS MÚLTIPLE
Ejemplo: Temperatura máxima promedio en °F en la
estación meteorológica de un condado de Texas.
𝑇𝐸𝑀𝑃=𝑏0+𝑏1 ∗𝐿𝐴𝑇 +𝑏2∗ 𝐴𝐿𝑇+𝑏3 ∗𝐿𝑂𝑁𝐺
AJUSTE DE CURVAS
𝑇𝐸𝑀𝑃=109.2589−1.8322∗ 𝐿𝐴𝑇 −0.0018∗ 𝐴𝐿𝑇
http://personal.us.es/echevarria/documentos/APUNTESMATLAB.pdf
AJUSTE DE CURVAS NO POLINOMIAL
Inspeccionar los datos en forma visual. Luego, linealizar según
sea el caso.
a) Exponencial:
b)Potencias:
c) Razón de crecimiento:
• Dados n+1 puntos, hay uno y sólo un polinomio de grado
“n” que pasa a través de todos los puntos.
• La interpolación polinomial consiste en determinar el
polinomio único de n-ésimo grado que pasa por los n+1
puntos dados.
• De esta forma se podrá estimar valores intermedios entre
datos definidos por puntos.
𝑦=𝑎0+𝑎1 𝑥+𝑎2 𝑥2
+...+𝑎𝑛 𝑥𝑛
MÉTODO DE DIFERENCIAS DIVIDIDAS
Interpolación Polinomial de Newton en Diferencias Divididas
MÉTODO DE DIFERENCIAS DIVIDIDAS
𝒇 𝒏 (𝒙)=𝒃𝟎+𝒃𝟏 (𝒙 − 𝒙𝟎)+…+𝒃𝒏 (𝒙 −𝒙𝟎 )(𝒙 − 𝒙𝟏)…(𝒙 − 𝒙𝒏−𝟏)
𝒇 [𝒙𝒊, 𝒙 𝒋]=
𝒇 (𝒙𝒊)− 𝒇 (𝒙 𝒋)
𝒙𝒊 −𝒙 𝒋
𝒇 [𝒙𝒊, 𝒙 𝒋 ,𝒙𝒌]=
𝒇 [𝒙𝒊, 𝒙 𝒋]− 𝒇 [𝒙𝒋 , 𝒙𝒌]
𝒙𝒊 −𝒙𝒌
Determinar el único polinomio de grado n que pasa por los n+1
puntos dados.
POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
EJEMPLO: calcular “Ln(3)”, utilizando un método de interpolación
lineal, y conociendo que Ln(1) = 0 y Ln(5) = 1.6094.
RPTA: 1.0986 , Er = 26.75%
POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
x=[1 5];
y=[0,1.6094];
p=polyfit(x,y,1);
ycalc=polyval(p,x);
v3=polyval(p,3)
plot(x,y,'o',x,ycalc)
grid minor
p =0.4024x -0.4024
v3 =0.8047
POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
Con tres datos, se utiliza un polinomio cuadrático.
Por un sistema de ecuaciones:
POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
EJEMPLO: calcular “Ln(3)”, utilizando el método de interpolación cuadrática
y conociendo que Ln(1)=0, Ln(2)=0.6931 y Ln(5)=1.6094.
Hallando, b0, b1 y b2.
b0 = 0.0000
b1 = (0.6931-0) / (2-1) = 0.6931
b2 = ((1.6094-0.6931)/(5-2)-(0.6931-0)/(2-1))/(5-1)= -0.0969
= 1.1924
RPTA: 1.0986
POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
p = -0.09690.9839x -0.8869
x=[1 2 5];
y=[0,0.6931,1.6094];
N=length(x);
x1=linspace(x(1),x(m),100);
n=N-1;%el grado del polinómio.
p=polyfit(x,y,m);
ycalc=polyval(p,x);
ycalc1=polyval(p,x1);
plot(x,y,'o',x1, ycalc1,'--')
title(sprintf('Grado del polinomio
%d’,n));
grid minor
p = -0.09690.9839x -0.8869
POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
EJEMPLO:
Hallar el polinomio que interpola los siguientes datos:
Solución:
3ra Columna: 4ta Columna: 5ta:Columna
- 0.1
TABLA DE DIFERENCIAS DIVIDIDAS
EJEMPLO:
Como se calcularon 03 nuevas columnas (4 muestras), el Polinomio
es de Grado 03.
f(x) = 4 – 0.5(x-1) + 0.5(x-1)(x-2) - 0.1(x-1)(x-2)(x-3)
Resultando:
TABLA DE DIFERENCIAS DIVIDIDAS
TABLA DE DIFERENCIAS DIVIDIDAS
x=[1 2 3 5];
y=[4 3.5 4 5.6];
N=length(x);
M=zeros(N,N+1);
M(:,1)=x;
M(:,2)=y;
for i=2:N
for j=i:N f(x) = 4 – 0.5(x-1) + 0.5(x-1)(x-2) - 0.1(x-1)(x-2)(x-3)
M(j,i+1)=(M(j,i)-M(j-1,i))/(M(j,1)- M(j-i+1,1));
end
end
p = -0.1000+1.1000-3.1000x + 6.1000
v4 = 4.9000
x=[1 2 3 5];
y=[4 3.5 4 5.6];
N=length(x);
x1=linspace(x(1),x(N),100);
n=N-1;%grado del polinomio: 3
p=polyfit(x,y,n);
ycalc=polyval(p,x);%muestras
ycalc1=polyval(p,x1);%graf polinomio
v1=polyval(p,4)
plot(x,y,'o',x1,ycalc1)
grid minor
POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
Interpolación por Polinomios de orden elevado:
Polinomios de “n-ésimo grado” para interpolar “n+1” puntos.
Desventaja: error de redondeo y puntos lejanos.
Interpolación por Polinomios de orden reducido:
Polinomios de “menor orden” para interpolar subconjuntos de datos:
SPLINES o TRAZADORES.
INTERPOLACIÓN SEGMENTARIA: SPLINE
SPLINES LINEALES:
Los Splines de 1er Grado para un grupo de datos ordenados, se
define como un conjunto de funciones lineales.
Donde “” es la pendiente de la línea recta que une los puntos.
INTERPOLACIÓN SEGMENTARIA: SPLINE
. . .
𝒎𝒊=𝒇 (𝒙¿¿𝒊+𝟏)−
𝒇 (𝒙¿¿𝒊)
𝒙𝒊+𝟏 −𝒙𝒊
¿¿
EJEMPLO:
Interpolar los datos dados mediante un Spline de Primer Grado.
Luego, evaluar en x = 5.
INTERPOLACIÓN SEGMENTARIA: SPLINE
X F(x)
3.0 2.5
4.5 1.0
7.0 2.5
9.0 0.5
𝑚1=
2.5 −1
7 − 4.5
=0.60
𝑚0 =
1 −2.5
4.5 − 3
=−1.00
𝑚2 =
0.5 −2.5
9− 7
=− 1.00
Ecuación de la recta:
f ( 5 ) = 1.3
𝒎𝒊=𝒇 (𝒙¿¿𝒊+𝟏)−
𝒇 (𝒙¿¿𝒊)
𝒙𝒊+𝟏 −𝒙𝒊
¿¿
INTERPOLACIÓN SEGMENTARIA: SPLINE
x = [ 3 4.5 7 9 ];
y = [ 2.5 1 2.5 0.5 ];
XX = 3 : 0.1 : 9;
YY=interp1(x,y,XX,'linear');
plot(x,y,'o',XX,YY)
Yo = interp1( x , y ,5)
Yo =1.3000
SPLINES CUADRÁTICOS:
Para que las derivadas m-ésimas sean continuas en los
nodos, se debe emplear un SPLINE por lo menos de grado
“m+1”.
* Primera derivada: Siempre es continua en los nodos.
* Segunda derivada: No siempre es continua en los nodos.
INTERPOLACIÓN SEGMENTARIA: SPLINE
INTERPOLACIÓN SEGMENTARIA: SPLINE
Procedimiento:
Para “n+1” datos ( i = 0, 1, 2, …, n)  “n” intervalos.
Por lo tanto, son “3xn” incógnitas y se requiere de “3xn”
ecuaciones o condiciones.
Condición 1: Se evalúa la primera y la última función pasan
por los puntos extremos.
INTERPOLACIÓN SEGMENTARIA: SPLINE
Condición 2: Se evalúan en los nodos interiores de las
funciones de polinomios adyacentes deben ser iguales en los
nodos interiores.
INTERPOLACIÓN SEGMENTARIA: SPLINE
Condición 3: Las primeras derivadas en los nodos interiores son
iguales.
Condición 4: Suponemos que en el 1er punto la segunda derivada = 0.
INTERPOLACIÓN SEGMENTARIA: SPLINE
EJEMPLO:
Interpolar los datos dados mediante un Spline de Segundo Grado.
Luego, evaluar en x = 5.
Se cuenta con 4 datos y n = 3 intervalos.
Entonces, 3 x (3 ) = 9 incógnitas.
INTERPOLACIÓN SEGMENTARIA: SPLINE
X F(x)
3.0 2.5
4.5 1.0
7.0 2.5
9.0 0.5
Condición 1: Evaluando la primera y la última función con los
valores inicial y final, se agregan dos ecuaciones más (Paso 4):
Condición 2: Se evalúa en los nodos medios
INTERPOLACIÓN SEGMENTARIA: SPLINE
:
Condición 3: Se iguala la derivada de la funciones de la
condición 2.
Condición 4:
INTERPOLACIÓN SEGMENTARIA: SPLINE
INTERPOLACIÓN SEGMENTARIA: SPLINE
A=[ 3 1 0 0 0 0 0 0; 0 0 0 0 0 81 9 1 ;
4.5 1 0 0 0 0 0 0; 0 0 20.25 4.5 1 0 0 0;
0 0 49 7 1 0 0 0; 0 0 0 0 0 49 7 1;
1 0 -9 -1 0 0 0 0;0 0 14 1 0 -14 -1 0]
b=[2.5; 0.5; 1; 1; 2.5 ;2.5 ;0; 0];
x=inv(A)*x
INTERPOLACIÓN SEGMENTARIA: SPLINE
x =-1.0000
5.5000
0.6400
-6.7600
18.4600
-1.6000
24.6000
-91.3000
INTERPOLACIÓN SEGMENTARIA: SPLINE
:
Luego, estos 9 coeficientes son reemplazados en las ecuaciones
cuadráticas originales, obteniéndose lo siguiente por cada intervalo.
Finalmente, se evalúa para x = 5, en la segunda expresión:
INTERPOLACIÓN SEGMENTARIA: SPLINE
Y(5)=0.66
INTERPOLACIÓN SEGMENTARIA: SPLINE
SPLINES CÚBICOS:
El objetivo es obtener un polinomio de tercer grado para cada
intervalo entre los nodos.
EJEMPLO:
Interpolar los datos usando un Spline cúbico. Luego, evaluar en x = 5.
>> x = [ 3 4.5 7 9 ];
>> y = [ 2.5 1 2.5 0.5 ];
>> XX = 3 : 0.1 : 9;
>> YY = spline( x , y , XX );
>> plot(x,y,'o',XX,YY)
>> Xo = 5;
>> Yo = spline( x , y , Xo )
Yo =1.1519
INTERPOLACIÓN SEGMENTARIA: SPLINE
INTERPOLACIÓN SEGMENTARIA: SPLINE
M=[3 2.5;4.5 1;7 2.5;9 0.5]; a=5;
function [fa]=spline_cubico(M,a)
%spline_cubico calcula interpolación usando splines
%cúbicos
x=M(:,1);y=M(:,2);%separo la primera y segunda columna
fa=spline(x,y,a);%trazadores cúbicos
figure(1),clf
x1=linspace(x(1),x(end),500);
fx1=spline(x,y,x1);%calcula trazadores unicamente
cúbicos
hold on
plot(x,y,'ro','LineWidth',3)
plot(x1,fx1,'b','LineWidth',2)
plot(a,fa,'ko','LineWidth',3)
stem(x,y,'r','LineWidth',2)
hold off
grid minor
end
INTERPOLACIÓN SEGMENTARIA: SPLINE
Y=1.15
x = 5
Y=0.66
ACTIVIDAD DE APRENDIZAJE TA-04
https://ayudasingenieria.com/files/METODOS_NUMERICOS/chapra.pdf
Cap 20 – pag 463

Aproximacion de funciones-Análisis numérico UPC

  • 1.
  • 2.
    TEMARIO INTRODUCCIÓN A MATLAB UNIDAD 1UNIDAD 2 SISTEMA DE ECUACIONES LINEALES UNIDAD 3 AUTOVALORES Y AUTOVECTORES
  • 3.
    TEMARIO APROXIMACIÓN DE FUNCIONES UNIDAD 4UNIDAD 5 INTEGRACIÓN NUMÉRICA UNIDAD 6 RAICES DE ECUACIONES NO LINEALES. UNIDAD 7 ECUACIONES DIFERENCIALES
  • 4.
    CONTENIDO 1. INTRODUCCIÓN 2. AJUSTEDE CURVAS NO POLINOMIAL( LINEAL) 3. AJUSTE DE CURVAS POLINOMIAL 4. AJUSTE DE CURVAS MÚLTIPLE 5. POLINOMIO DE INTERPOLACIÓN DE GRADO “n”: FÓRMULA DE NEWTON POR DIFERENCIAS DIVIDIDAS. 6. INTERPOLACIÓN SEGMENTARIA(SPLINE) 7. APLICACIONES CON MATLAB
  • 5.
    a) Datos dados. b)Interpolación polinomial. c) Ajuste de curvas polinomial. INTRODUCCIÓN
  • 6.
    AJUSTE DE CURVASNO POLINOMIAL, LINEAL  Ajustar una curva mediante un polinomio consiste en ubicar los puntos dados y después trazar un polinomio que visualmente se acerque a los datos.  Se debe obtener una función que minimice la discrepancia entre los puntos y la curva.  La técnica que se utiliza para este fin se conoce como ajuste por mínimos cuadrados (AMC).
  • 7.
    𝑥1 𝑥2 𝑥3𝑥𝑖 𝑥𝑛−1 𝑥𝑛 𝑦2 𝑦3 𝑦𝑖 𝑦𝑛−1 𝑦𝑛 Intercepto Pendiente 𝑒𝑖= 𝑦𝑖 − 𝑎0 − 𝑎1 𝑥𝑖 ⥂𝑒𝑖 ⥂𝑒3 𝑦 𝑐𝑎𝑙𝑐 𝑖=𝑎0+ 𝑎1 𝑥𝑖 𝑦𝑖 𝑦𝑐𝑎𝑙𝑐 AJUSTE DE CURVAS NO POLINOMIAL
  • 8.
    AJUSTE DE CURVASNO POLINOMIAL SIMPLE El criterio de mínimos cuadrados consiste en minimizar Entonces derivamos e igualamos a 0, con respecto a cada coeficiente de la recta ¿ 𝜕 𝑆𝑟 𝜕 𝑎0 =−2∑ 𝑖 (𝑦𝑖 −𝑎0 −𝑎1 𝑥𝑖)=0 ¿ 𝜕𝑆𝑟 𝜕𝑎1 =−2∑ 𝑖 (𝑦𝑖 −𝑎0 −𝑎1 𝑥𝑖)𝑥𝑖=0} Los ¨N¨ puntos conocidos, tiene como coordenadas 𝑆𝑟 =∑ 𝑖 𝑒𝑖 2 =¿ ∑ 𝑖 ¿¿ ¿
  • 9.
    Ecuaciones normales: ¿∑ 𝑖 𝑦𝑖=∑ 𝑖 𝑎0+𝑎1∑ 𝑖 𝑥𝑖 ¿∑ 𝑖 𝑥𝑖 𝑦𝑖=𝑎0∑ 𝑖 𝑥𝑖+𝑎1∑ 𝑖 𝑥𝑖 2 } ∑ 𝑖 𝑦𝑖=𝑁 𝑎0+𝑎1∑ 𝑖 𝑥𝑖❑ → ¯ 𝑦=𝑁 𝑎0+𝑎1 ¯ 𝑥 En forma matricial ,podemos escribir : 𝑥𝑦=𝑎0 𝑥+𝑎1 𝑥 2 𝑁 𝑎0+𝑎1 𝑥 AJUSTE DE CURVAS NO POLINOMIAL, LINEAL
  • 10.
    AJUSTE DE CURVASPOLINOMIAL N=length(T);%numero de elementos Sum_x=sum(T); Sum_x2=sum(T.^2); Sum_y=sum(u); Sum_xy=sum(T.*u); A=[N Sum_x Sum_x Sum_x2 ] ; B=[Sum_y ; Sum_xy]; x=inv(A)*B; fprintf('a0 =% 7.4f n',x(1)); fprintf('a1 =% 7.4f n',x(2)); (𝑁 𝑥 𝑥 𝑥 2 )(𝑎0 𝑎1 )= ( 𝑦 𝑥𝑦 ) Energia(u) 2506.7 2582.8 2658.1 2733.7 2810.4 2967.9 3131.6 a0 =-1505.7093 a1 = 0.6415 T=[100, 150, 200, 250, 300 , 400, 500]; u=[2506.7 ,2582.8,2658.1 ,2733.7 , 2810.4, 2967.9, 3131.6]; 𝑦𝑐𝑎𝑙𝑐 𝑖=𝑎0+𝑎1 𝑥𝑖 i Temp(T) 100 150 200 250 300 400 500
  • 11.
    T=[100, 150, 200,250,300 , 400, 500];% valores x u=[2506.7 ,2582.8,2658.1 ,2733.7 , 2810.4, 2967.9, 3131.6];%valores y x=u;y=T; n=1;%grado uno(Lineal) p=polyfit(x,y,n); ycalc=polyval(p,x); plot(u,T,'o',u, ycalc,'--') title(sprintf('Grado del polinomio %d’,n)); AJUSTE DE CURVAS NO POLINOMIAL, LINEAL
  • 12.
    AJUSTE DE CURVASPOLINOMIAL Se pueden ajustar los datos dados mediante un polinomio de grado m: La suma de los cuadrados de los residuos es: Y, la derivada con respecto a cada coeficiente será:
  • 13.
    AJUSTE DE CURVASPOLINOMIAL Sistema de ecuaciones con “m+1” incógnitas.
  • 14.
    AJUSTE DE CURVASPOLINOMIAL x=[0:5]; y=[2.1, 7.7, 13.6, 27.2, 40.9, 61.1]; n=2;%grado 2 p=polyfit(x,y,n);%[a2,a1,a0] ycalc=polyval(p,x);%calcula usando %los coeficientes del polinomio %----------------- plot(x,y,'o',x, ycalc,'--’) title(sprintf('Grado del polinomio %d’,n)); p =1.8607 2.3593 2.4786
  • 15.
    AJUSTE DE CURVASPOLINOMIAL x=[10,20,30,40,50,60,70,80,90,100]; y=[23,45,60,82,111,140,167,198,200,220]; for n=2:5 p=polyfit(x,y,n); ycalc=polyval(p,x); subplot(2,2,n-1) %---------------------- plot(x,y,'o',x,ycalc) title(sprintf('Grado del polinomio %d',n)); end
  • 16.
    AJUSTE DE CURVASPOLINOMIAL M=[10 23;20 45;30 60;40 82;50 111]; n=2; function [p]=ajuste_polinomial(M,n) %ajuste_polinomial %p=coeficientes del polinomio % x=M(:,1); y=M(:,2); p=polyfit(x,y,n);%p=[an,an-1,an-2.....a0] yc=polyval(p,x); x1=linspace(min(x),max(x),500); y1=polyval(p,x1); figure(1),clf %plot(x,y,'ro',x1,y1,'b') hold on plot(x,y,'ro','LineWidth',2) plot(x1,y1,'b','LineWidth',2) hold off grid end p = 0.0150 1.2300 10.8000
  • 17.
    AJUSTE DE CURVASMÚLTIPLE Cuando se estudia la posible relación entre varias variables independientes y una variable dependiente. Un caso particular:
  • 18.
    AJUSTE DE CURVASMÚLTIPLE Ejemplo: Temperatura máxima promedio en °F en la estación meteorológica de un condado de Texas. 𝑇𝐸𝑀𝑃=𝑏0+𝑏1 ∗𝐿𝐴𝑇 +𝑏2∗ 𝐴𝐿𝑇+𝑏3 ∗𝐿𝑂𝑁𝐺
  • 19.
    AJUSTE DE CURVAS 𝑇𝐸𝑀𝑃=109.2589−1.8322∗𝐿𝐴𝑇 −0.0018∗ 𝐴𝐿𝑇 http://personal.us.es/echevarria/documentos/APUNTESMATLAB.pdf
  • 20.
    AJUSTE DE CURVASNO POLINOMIAL Inspeccionar los datos en forma visual. Luego, linealizar según sea el caso. a) Exponencial: b)Potencias: c) Razón de crecimiento:
  • 21.
    • Dados n+1puntos, hay uno y sólo un polinomio de grado “n” que pasa a través de todos los puntos. • La interpolación polinomial consiste en determinar el polinomio único de n-ésimo grado que pasa por los n+1 puntos dados. • De esta forma se podrá estimar valores intermedios entre datos definidos por puntos. 𝑦=𝑎0+𝑎1 𝑥+𝑎2 𝑥2 +...+𝑎𝑛 𝑥𝑛 MÉTODO DE DIFERENCIAS DIVIDIDAS Interpolación Polinomial de Newton en Diferencias Divididas
  • 22.
    MÉTODO DE DIFERENCIASDIVIDIDAS 𝒇 𝒏 (𝒙)=𝒃𝟎+𝒃𝟏 (𝒙 − 𝒙𝟎)+…+𝒃𝒏 (𝒙 −𝒙𝟎 )(𝒙 − 𝒙𝟏)…(𝒙 − 𝒙𝒏−𝟏) 𝒇 [𝒙𝒊, 𝒙 𝒋]= 𝒇 (𝒙𝒊)− 𝒇 (𝒙 𝒋) 𝒙𝒊 −𝒙 𝒋 𝒇 [𝒙𝒊, 𝒙 𝒋 ,𝒙𝒌]= 𝒇 [𝒙𝒊, 𝒙 𝒋]− 𝒇 [𝒙𝒋 , 𝒙𝒌] 𝒙𝒊 −𝒙𝒌
  • 23.
    Determinar el únicopolinomio de grado n que pasa por los n+1 puntos dados. POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
  • 24.
    EJEMPLO: calcular “Ln(3)”,utilizando un método de interpolación lineal, y conociendo que Ln(1) = 0 y Ln(5) = 1.6094. RPTA: 1.0986 , Er = 26.75% POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
  • 25.
  • 26.
    Con tres datos,se utiliza un polinomio cuadrático. Por un sistema de ecuaciones: POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
  • 27.
    EJEMPLO: calcular “Ln(3)”,utilizando el método de interpolación cuadrática y conociendo que Ln(1)=0, Ln(2)=0.6931 y Ln(5)=1.6094. Hallando, b0, b1 y b2. b0 = 0.0000 b1 = (0.6931-0) / (2-1) = 0.6931 b2 = ((1.6094-0.6931)/(5-2)-(0.6931-0)/(2-1))/(5-1)= -0.0969 = 1.1924 RPTA: 1.0986 POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
  • 28.
    p = -0.09690.9839x-0.8869 x=[1 2 5]; y=[0,0.6931,1.6094]; N=length(x); x1=linspace(x(1),x(m),100); n=N-1;%el grado del polinómio. p=polyfit(x,y,m); ycalc=polyval(p,x); ycalc1=polyval(p,x1); plot(x,y,'o',x1, ycalc1,'--') title(sprintf('Grado del polinomio %d’,n)); grid minor p = -0.09690.9839x -0.8869 POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
  • 29.
    EJEMPLO: Hallar el polinomioque interpola los siguientes datos: Solución: 3ra Columna: 4ta Columna: 5ta:Columna - 0.1 TABLA DE DIFERENCIAS DIVIDIDAS
  • 30.
    EJEMPLO: Como se calcularon03 nuevas columnas (4 muestras), el Polinomio es de Grado 03. f(x) = 4 – 0.5(x-1) + 0.5(x-1)(x-2) - 0.1(x-1)(x-2)(x-3) Resultando: TABLA DE DIFERENCIAS DIVIDIDAS
  • 31.
    TABLA DE DIFERENCIASDIVIDIDAS x=[1 2 3 5]; y=[4 3.5 4 5.6]; N=length(x); M=zeros(N,N+1); M(:,1)=x; M(:,2)=y; for i=2:N for j=i:N f(x) = 4 – 0.5(x-1) + 0.5(x-1)(x-2) - 0.1(x-1)(x-2)(x-3) M(j,i+1)=(M(j,i)-M(j-1,i))/(M(j,1)- M(j-i+1,1)); end end
  • 32.
    p = -0.1000+1.1000-3.1000x+ 6.1000 v4 = 4.9000 x=[1 2 3 5]; y=[4 3.5 4 5.6]; N=length(x); x1=linspace(x(1),x(N),100); n=N-1;%grado del polinomio: 3 p=polyfit(x,y,n); ycalc=polyval(p,x);%muestras ycalc1=polyval(p,x1);%graf polinomio v1=polyval(p,4) plot(x,y,'o',x1,ycalc1) grid minor POLINOMIO DE INTERPOLACIÓN DE GRADO “n”
  • 33.
    Interpolación por Polinomiosde orden elevado: Polinomios de “n-ésimo grado” para interpolar “n+1” puntos. Desventaja: error de redondeo y puntos lejanos. Interpolación por Polinomios de orden reducido: Polinomios de “menor orden” para interpolar subconjuntos de datos: SPLINES o TRAZADORES. INTERPOLACIÓN SEGMENTARIA: SPLINE
  • 34.
    SPLINES LINEALES: Los Splinesde 1er Grado para un grupo de datos ordenados, se define como un conjunto de funciones lineales. Donde “” es la pendiente de la línea recta que une los puntos. INTERPOLACIÓN SEGMENTARIA: SPLINE . . . 𝒎𝒊=𝒇 (𝒙¿¿𝒊+𝟏)− 𝒇 (𝒙¿¿𝒊) 𝒙𝒊+𝟏 −𝒙𝒊 ¿¿
  • 35.
    EJEMPLO: Interpolar los datosdados mediante un Spline de Primer Grado. Luego, evaluar en x = 5. INTERPOLACIÓN SEGMENTARIA: SPLINE X F(x) 3.0 2.5 4.5 1.0 7.0 2.5 9.0 0.5 𝑚1= 2.5 −1 7 − 4.5 =0.60 𝑚0 = 1 −2.5 4.5 − 3 =−1.00 𝑚2 = 0.5 −2.5 9− 7 =− 1.00 Ecuación de la recta: f ( 5 ) = 1.3 𝒎𝒊=𝒇 (𝒙¿¿𝒊+𝟏)− 𝒇 (𝒙¿¿𝒊) 𝒙𝒊+𝟏 −𝒙𝒊 ¿¿
  • 36.
    INTERPOLACIÓN SEGMENTARIA: SPLINE x= [ 3 4.5 7 9 ]; y = [ 2.5 1 2.5 0.5 ]; XX = 3 : 0.1 : 9; YY=interp1(x,y,XX,'linear'); plot(x,y,'o',XX,YY) Yo = interp1( x , y ,5) Yo =1.3000
  • 37.
    SPLINES CUADRÁTICOS: Para quelas derivadas m-ésimas sean continuas en los nodos, se debe emplear un SPLINE por lo menos de grado “m+1”. * Primera derivada: Siempre es continua en los nodos. * Segunda derivada: No siempre es continua en los nodos. INTERPOLACIÓN SEGMENTARIA: SPLINE
  • 38.
    INTERPOLACIÓN SEGMENTARIA: SPLINE Procedimiento: Para“n+1” datos ( i = 0, 1, 2, …, n)  “n” intervalos. Por lo tanto, son “3xn” incógnitas y se requiere de “3xn” ecuaciones o condiciones.
  • 39.
    Condición 1: Seevalúa la primera y la última función pasan por los puntos extremos. INTERPOLACIÓN SEGMENTARIA: SPLINE
  • 40.
    Condición 2: Seevalúan en los nodos interiores de las funciones de polinomios adyacentes deben ser iguales en los nodos interiores. INTERPOLACIÓN SEGMENTARIA: SPLINE
  • 41.
    Condición 3: Lasprimeras derivadas en los nodos interiores son iguales. Condición 4: Suponemos que en el 1er punto la segunda derivada = 0. INTERPOLACIÓN SEGMENTARIA: SPLINE
  • 42.
    EJEMPLO: Interpolar los datosdados mediante un Spline de Segundo Grado. Luego, evaluar en x = 5. Se cuenta con 4 datos y n = 3 intervalos. Entonces, 3 x (3 ) = 9 incógnitas. INTERPOLACIÓN SEGMENTARIA: SPLINE X F(x) 3.0 2.5 4.5 1.0 7.0 2.5 9.0 0.5
  • 43.
    Condición 1: Evaluandola primera y la última función con los valores inicial y final, se agregan dos ecuaciones más (Paso 4): Condición 2: Se evalúa en los nodos medios INTERPOLACIÓN SEGMENTARIA: SPLINE
  • 44.
    : Condición 3: Seiguala la derivada de la funciones de la condición 2. Condición 4: INTERPOLACIÓN SEGMENTARIA: SPLINE
  • 45.
  • 46.
    A=[ 3 10 0 0 0 0 0; 0 0 0 0 0 81 9 1 ; 4.5 1 0 0 0 0 0 0; 0 0 20.25 4.5 1 0 0 0; 0 0 49 7 1 0 0 0; 0 0 0 0 0 49 7 1; 1 0 -9 -1 0 0 0 0;0 0 14 1 0 -14 -1 0] b=[2.5; 0.5; 1; 1; 2.5 ;2.5 ;0; 0]; x=inv(A)*x INTERPOLACIÓN SEGMENTARIA: SPLINE x =-1.0000 5.5000 0.6400 -6.7600 18.4600 -1.6000 24.6000 -91.3000
  • 47.
    INTERPOLACIÓN SEGMENTARIA: SPLINE : Luego,estos 9 coeficientes son reemplazados en las ecuaciones cuadráticas originales, obteniéndose lo siguiente por cada intervalo. Finalmente, se evalúa para x = 5, en la segunda expresión:
  • 48.
  • 49.
    INTERPOLACIÓN SEGMENTARIA: SPLINE SPLINESCÚBICOS: El objetivo es obtener un polinomio de tercer grado para cada intervalo entre los nodos.
  • 50.
    EJEMPLO: Interpolar los datosusando un Spline cúbico. Luego, evaluar en x = 5. >> x = [ 3 4.5 7 9 ]; >> y = [ 2.5 1 2.5 0.5 ]; >> XX = 3 : 0.1 : 9; >> YY = spline( x , y , XX ); >> plot(x,y,'o',XX,YY) >> Xo = 5; >> Yo = spline( x , y , Xo ) Yo =1.1519 INTERPOLACIÓN SEGMENTARIA: SPLINE
  • 51.
    INTERPOLACIÓN SEGMENTARIA: SPLINE M=[32.5;4.5 1;7 2.5;9 0.5]; a=5; function [fa]=spline_cubico(M,a) %spline_cubico calcula interpolación usando splines %cúbicos x=M(:,1);y=M(:,2);%separo la primera y segunda columna fa=spline(x,y,a);%trazadores cúbicos figure(1),clf x1=linspace(x(1),x(end),500); fx1=spline(x,y,x1);%calcula trazadores unicamente cúbicos hold on plot(x,y,'ro','LineWidth',3) plot(x1,fx1,'b','LineWidth',2) plot(a,fa,'ko','LineWidth',3) stem(x,y,'r','LineWidth',2) hold off grid minor end
  • 52.
  • 53.
    ACTIVIDAD DE APRENDIZAJETA-04 https://ayudasingenieria.com/files/METODOS_NUMERICOS/chapra.pdf Cap 20 – pag 463