Xxxxxx
EJEMPLO DE APLICACIÓN
Ejemplo de Aplicación de Splines Cúbicos usando Matlab, utilizando los datos entregados en el ejercicio hecho por escrito mediante spline cubico:
Datos :
X | 0.4 | 5.5 | 8 | 10 |
Y | 3.5 | 2 | 3.5 | 1.5 |
Evaluar el polinomio en x=6.
(nota: la idea era quelos puntos en xi fueran equidistantes, pero se escogieron en un principio de esa forma, teniendo esto en cuenta de ingresaron los datos de esta forma al programa y se realizaron los cálculos de esta manera.)
Para la solución de este problema lo primero que se tiene que hacer es definir un polinomio cubico en cada uno de los intervalos
sx= a1x3+b1x2+c1x1 + d1 si x ∈ [ 0.4, 5.5]a2x3+b2x2+c2x1 + d2 si x ∈ [ 5.5, 8]a3x3+b3x2+c3x1 + d3 si x ∈ [ 8, 10]
Haciendo que para cada s(xi) pase por el punto que indica nuestra tabla :
s0.4=3.5 , entonces , 0.064 a1 + 0.16 b1+ 0.4 c1+ d1=3.5s5.5=2 , entonces , 166.375 a1 + 30.25 b1+ 5.5 c1+ d1=2 , 166.375 a2 + 30.25 b2+ 5.5 c2+ d2=2.s8=3.5 ,entonces , 512 a2 + 64 b2+ 8 c2+ d2=3.5,512 a3 + 64 b3+ 8 c3+ d3=3.5s10=1.5,entonces , 1000 a3 + 100 b3+ 10 c3+ d3=1.5
Se calcula la derivada
s'x= 3a1x2+2b1x1+c1x0 si x ∈ [ 0.4, 5.5] 3a2x2+2b2x1+c2x0 si x ∈ [ 5.5, 8] 3a3x2+2b3x1+c3x0 si x ∈ [ 8, 10]
Como el sistema puede ser discontinua en los puntos 5.5 y 8, entonces para que s’(x) sea continua, se igualan las ecuaciones correspondientes en ambos valores:
90.75a1+ 11 b1+c1 = 90.75 a2+ 11 b2+c2
192 a2+ 16 b2+c2 = 192 a3 + 16 b3+ c3
Y se procede a calcular la segunda derivada
s''x= 6a1x1+2b1 si x ∈ [ 0.4, 5.5] 6a2x1+2b2 si x ∈ [ 5.5, 8] 6a3x1+2b3 si x ∈ [ 8, 10]
El sistema de nuevo puede ser discontinuo en 5.5 y 8, entonces para que s’’(x) sea continua, se igualan las ecuaciones correspondientes en ambosvalores:
33 a1+ 2 b1= 90.75 a2+ 11 b2
192 a2+ 16 b2+c2 = 192 a3 + 16 b3
Y al final del proceso, las condiciones en que la doble derivada se anule en los puntos extremos inicial y final de los datos
s''0.4= 0→ 2.4 a1+2b1=0
s''10=0→ 60 a3+b3=0
Con esto se tienen las 12 ecuaciones vs 12 incógnitas de la siguiente forma:
0.064 a1 + 0.16 b1+ 0.4 c1+ d1=3.5
166.375 a1 + 30.25 b1+ 5.5 c1+ d1=2166.375 a2 + 30.25 b2+ 5.5 c2+ d2=2
512 a2 + 64 b2+ 8 c2+ d2=3.5
512 a3 + 64 b3+ 8 c3+ d3=3.5
1000 a3 + 100 b3+ 10 c3+ d3=1.5
90.75 a1+ 11 b1+c1 = 90.75 a2+ 11 b2+c2
192 a2+ 16 b2+c2 = 192 a3 + 16 b3+ c3
33 a1+ 2 b1= 90.75 a2+ 11 b2
192 a2+ 16 b2= 192 a3 + 16 b3
2.4 a1+2b1=0
60 a3+b3=0
Teniendo las ecuaciones, el paso a seguir es llegar a la forma matricial según lo explicado por elprofesor en el laboratorio del miércoles de la siguiente forma:
A1 | B1 | C1 | D1 | A2 | B2 | C2 | D2 | A3 | B3 | C3 | D3 |
0.064 | 0.16 | 0.4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
166.375 | 30.25 | 5.5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 166.375 | 30.25 | 5.5 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 512 | 64 | 8 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 512 | 64| 8 | 1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1000 | 100 | 10 | 1 |
90.75 | 11 | 1 | 0 | -90.75 | -11 | -1 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 192 | 16 | 1 | 0 | -192 | -16 | -1 | 0 |
33 | 2 | 0 | 0 | -90.75 | -11 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 192 | 16 | 0 | 0 | -192 | -16 | 0 | 0 |
2.4 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 60 | 1 | 0| 0 |
a1b1c1d1a2b2c2d2a3b3c3d3=3.5223.53.51.5000000
Usando MatLab para resolver la matriz obtenemos
>> c=[0.064 0.16 0.4 1 0 0 0 0 0 0 0 0;166.375 30.25 5.5 1 0 0 0 0 0 0 0 0;0 0 0 0 166.375 30.25 5.5 1 0 0 0 0;0 0 0 0 512 64 8 1 0 0 0 0;0 0 0 0 0 0 0 0 512 64 8 1;0 0 0 0 0 0 0 0 1000 100 10 1;90.75 11 1 0 -90.75 -11 -1 0 0 0 0 0;0 0 0 0 192 16 1 0 -192 -16 -1 0;33 2 0 0 -90.75 -11 0 0...
Regístrate para leer el documento completo.