UNIVERSIDAD NACIONAL “SANTIAGO ANTUNEZ DE MAYOLO”
FACULTADAD DE INGENIERÍA CIVIL ESCUELA PROFESIONAL DE INGENIERÍA CIVIL
Alumno: Shuan Depaz Oliver Yobert Código: 151.0904.737 Docente: Ing. Asís López Maximiliano Tema: Spline cúbico en Matlab
SPLINES CÚBICOS El spline cúbico ( k =3) es el spline más empleado, debido a que proporciona un excelente ajuste a los puntos tabulados y su cálculo no es excesivamente complejo. Sobre cada intervalo , S está definido por un polinomio cúbico diferente. Sea S i el polinomio cúbico que representa a S en el intervalo [t i,t i+1], por tanto:
Los polinomios S i-1 y S i interpolan el mismo valor en el punto t i, es decir, se cumple: S i-1(t i) = yi = S i(t i)
por lo que se garantiza que S es continuo en todo el intervalo. Además, se supone que S ' y S '' son continuas, condición que se emplea en la deducción de una expresión para la función del spline cúbico. Aplicando las condiciones de continuidad del spline S y de las derivadas primera S ' y segunda S '', es posible encontrar la expresión analítica del spline. No vamos a obtener esta expresión, ya que su demostración queda fuera del ámbito de estos apuntes. Simplemente diremos que la expresión resultante es:
Figura 1: Imagen de la cual se obtendrán los puntos
OBTENCIÓN DE COORDENADAS EN AUTOCAD Figura 2: Dibujo del contorno de la figura en AutoCAD
COORDENADAS: EN “X”:
x=[0.7227,0.7232,0.7323,0.7357,0.7357,0.7363,0.7377,0.7389,0.7499,0.7556,0.7575,0.7595,0. 7402,0.7208,0.7141,0.7075,0.7756,0.8389,0.8375,0.8281,0.8268,0.8111,0.8192,0.8192,0.7802 ,0.7515,0.7245,0.7090,0.6937,0.6813,0.6813,0.7167,0.7548,0.7984,0.8626,0.9322,0.9951,1.13 45,1.3832,1.5784,1.7298,1.7906,1.9785,2.0031,2.0255,2.0508,2.0999,2.1356,2.1651,2.1885,2. 2557,2.3231,2.4152,2.4616,2.4997,2.5391,2.5807,2.5767,2.6081,2.6263,2.6371,2.6498,2.6602 ,2.7004,2.7661,2.8015,2.8186,2.9324,2.9452,2.9512,2.9959,3.0467,3.0582,3.0501,2.9976,2.97 82,3.0222,3.0757,3.1282,3.1373,3.1373,3.1663,3.2067,3.2636,3.2996,3.3242,3.3190,3.3229,3. 3380,3.3419,3.3349,3.3208,3.3140,3.3229,3.3169,3.2874,3.2503,3.1860,3.1331,3.1331,3.1091 ,3.1162,3.1224,3.1206,3.1081,3.1055,3.1073,3.0543,3.0447,2.9606,2.8891,2.7944,2.7161,2.63 41,2.5702,2.6044,2.6380,2.6380,2.5682,2.3676,2.3366,2.2834,2.3053,2.3706,2.3891,2.2633,2. 2082,2.1753,2.1753,2.1884,2.1631,2.1784,2.0712,2.0474,2.0224,1.6108,1.4596,1.4497,1.4135 ,1.4999,1.6332,1.6792,1.6453,1.5911,1.5163,1.5163,1.3639,1.2214,1.2021,1.0176,0.9119,0.84 29,0.8706,0.9570,0.9453,0.7714,0.7728,0.7490,0.7227]; EN “Y”:
y=[0.2591,0.2729,0.2974,0.3080,0.3335,0.3719,0.4372,0.4924,0.5875,0.6192,0.6492,0.6792,0. 7046,0.7299,0.7773,0.8231,0.9546,1.0723,1.1376,1.1868,1.2823,1.3760,1.5113,1.6506,1.7293 ,1.7713,1.7947,1.8335,1.8964,1.9476,1.9828,2.0750,2.1261,2.1016,2.1878,2.2010,2.1924,2.08 96,2.1419,2.1426,2.1305,2.1152,2.0972,2.0878,2.0996,2.0956,2.0829,2.0829,2.0881,2.0956,2. 0960,2.0999,2.0952,2.0759,2.0759,2.0999,2.1474,2.1615,2.2496,2.2894,2.3905,2.4718,2.5928 ,2.6957,2.8495,2.9193,3.0325,3.1001,3.0970,3.0922,3.1128,3.1068,3.0946,3.0681,3.0125,2.97 45,2.9745,2.9669,2.9700,2.9645,2.9260,2.8786,2.8578,2.8534,2.8421,2.8127,2.7950,2.7838,2. 7759,2.7524,2.7351,2.7351,2.7314,2.7113,2.7010,2.6782,2.6782,2.6479,2.6068,2.5514,2.4354 ,2.2779,2.1530,2.0633,1.9696,1.9128,1.7704,1.6576,1.5933,1.4649,1.3137,1.2321,1.1323,1.06 36,1.0426,0.9576,0.9095,0.8346,0.7033,0.5317,0.4650,0.3926,0.2990,0.2694,0.2230,0.2288,0. 2991,0.2919,0.3059,0.3179,0.3749,0.5273,0.6924,0.8438,0.9950,1.1116,0.9257,0.8644,0.7579 ,0.5201,0.3348,0.2832,0.2527,0.2789,0.3155,0.3444,0.5582,0.7307,1.0606,0.9069,0.7667,0.29 87,0.2629,0.2242,0.2116,0.2326,0.2655,0.2728,0.2591];
ALGORITMO EN MATLAB DEL SPLINE CUBICO function S=splinecubico(x,y) n=length(x); X=sym('X'); for i=1:n-1 h(i)=x(i+1)-x(i); end for i=2:n-1 p(i)=3*(y(i+1)*h(i-1)-y(i)*(x(i+1)-x(i-1))+y(i-1)*h(i))/(h(i1)*h(i)); end l(1)=1; u(1)=0; z(1)=0; for i=2:n-1 l(i)=2*(x(i+1)-x(i-1))-h(i-1)*u(i-1); u(i)=h(i)/l(i); z(i)=(p(i)-h(i-1)*z(i-1))/l(i); end l(n)=1; z(n)=0; c(n)=0; for j=n-1:-1:1 c(j)=z(j)-u(j)*c(j+1); b(j)=((y(j+1)-y(j))/h(j))-h(j)*(c(j+1)+2*c(j))/3; d(j)=(c(j+1)-c(j))/(3*h(j)); end for i=1:n-1 sj=x(i):.01:x(i+1); s=y(i)+b(i)*(sj-x(i))+c(i)*(sj-x(i)).^2+d(i)*(sj-x(i)).^3; hold on; plot(x,y,'x'); plot(x,y,'r'); plot(sj,s, 'm'); end for i=1:n-1 s=y(i)+b(i)*(X-x(i))+c(i)*(X-x(i))^2+d(i)*(X-x(i))^3; end
Figura 3: Algoritmo de spline cubico en matlab.
EJECUTANDO SPLINE CUBICO EN MATLAB CON LAS COORDENADAS Figura 4: Ejecución del programa con las coordenadas obtenidas anteriormente.
OBTENCIÓN DE LA GRAFICA EN MATLAB Figura 5: la imagen de una llama peruana en Matlab