splinecubMATLAB

Embed Size (px)

Citation preview

  • 7/25/2019 splinecubMATLAB

    1/2

    23/12/14 10:13 PM C:\Users\Mario\Documents\MATLAB\splinecub.m 1 of 2

    clc;

    clear;

    fprintf('Interpolacin con el Mtodo de Splines cbicos\n\n');

    n=input('\nDigite el nmero de puntos: ');

    fori=1:n

    fprintf('x(%d) = ',i);

    x(i)=input('\');

    fprintf('y(%d) = ',i);

    y(i)=input('\');

    end

    fori=1:n-1

    h(i)=x(i+1)-x(i);

    end

    fori=1:n

    a(i)=y(i);

    end

    v(1)=0;

    v(n)=0;fori=2:n-1

    v(i)=3*((a(i+1)-a(i))/h(i))-3*((a(i)-a(i-1))/h(i-1));

    end

    H(1,1)=1;

    H(n,n)=1;

    fori=2:n-1

    H(i,i)=2*(h(i-1)+h(i));

    H(i,i-1)=h(i-1);

    H(i,i+1)=h(i);

    end

    %Resuelve el sistema Hc=v

    %Matriz aumentada

    fori=1:n

    H(i,n+1)=v(i);

    end

    %Transforma la matriz H en una matriz triangular superior

    fork=1:n-1

    fori=k+1:n

    factor=H(i,k)/H(k,k);

    forj=k:n+1

    H(i,j)=H(i,j)-factor*H(k,j);

    end

    end

    end

    %Sustitucin hacia atras y determina los coeficientes c

    c(n)=H(n,n+1)/H(n,n);

    fori=n-1:-1:1

    sum=H(i,n+1);

    forj=i+1:n

    sum=sum-H(i,j)*c(j);

    end

    c(i)=sum/H(i,i);

    end

    %Determina los coeficientes d y bfori=1:n-1

    d(i)=(c(i+1)-c(i))/(3*h(i));

    b(i)=((a(i+1)-a(i))/h(i))-((2*c(i)+c(i+1))*h(i))/3;

  • 7/25/2019 splinecubMATLAB

    2/2

    23/12/14 10:13 PM C:\Users\Mario\Documents\MATLAB\splinecub.m 2 of 2

    end

    %Muestra todos los coeficientes

    a

    b

    c

    d