Spline cúbico Matlab
Publicado por Yhoana (3 intervenciones) el 13/01/2016 20:08:05
Buena tarde
Actualmente estoy trabajando con el algoritmo para el calculo de los coeficientes del polinomio del spline cubico que se encuentra en la siguiente ruta https://www.dspace.espol.edu.ec/bitstream/123456789/20886/1/ANALISIS%20NUMERICO%20BASICO.pdf, sin embargo, al ejecutarlo me sale el siguiente error´y no se como solucionarlo. Agradezco su colaboración
??? Undefined function or method 'tridiagonal' for input arguments of type 'double'.
Error in ==> trazador at 25
u=tridiagonal(A,B,C,D);
El código es:
Actualmente estoy trabajando con el algoritmo para el calculo de los coeficientes del polinomio del spline cubico que se encuentra en la siguiente ruta https://www.dspace.espol.edu.ec/bitstream/123456789/20886/1/ANALISIS%20NUMERICO%20BASICO.pdf, sin embargo, al ejecutarlo me sale el siguiente error´y no se como solucionarlo. Agradezco su colaboración
??? Undefined function or method 'tridiagonal' for input arguments of type 'double'.
Error in ==> trazador at 25
u=tridiagonal(A,B,C,D);
El código es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
function [a,b,c,d]=trazador(x,y,z)
%Trazador Cúbico Natural: a(i)(x-x(i))^3+b(i)(x-x(i))^2+c(i)(x-x(i))+d(i),
%n>3
%z es opciona: es el vector de puntos para evaluar el trazador
%Entrega puntos del trazador o los coeficientes de los polinomios
%segmentarios
n=length(x);
clear A B C D;
if n<4
return
end
for i=1:n-1
h(i)=x(i+1)-x(i);
end
s(1)=0;
s(n)=0;
B(1)=2*(h(1)+h(2));
C(1)=h(2);
D(1)=6*((y(3)-y(2))/h(2)-(y(2)-y(1))/h(1))-h(1)*s(1);
for i=2:n-3 % Sistema tridiagonal para obtener S
A(i)=h(i);
B(i)=2*(h(i)+h(i+1));
C(i)=h(i+1);
D(i)=6*((y(i+2)-y(i+1))/h(i+1)-(y(i+1)-y(i))/h(i));
u=tridiagonal(A,B,C,D);
end
A(n-2)=h(n-2);
B(n-2)=2*(h(n-2)+h(n-1));
D(n-2)=6*((y(n)-y(n-1))/h(n-1)-(y(n-1)-y(n-2))/h(n-2))-h(n-1)*s(n);
for i=2:n-1
s(i)=u(i-1);
end
for i=1:n-1 %Coeficientes del trazador cúbico natural
a(i)=(s(i+1)-s(i))/(6*h(i));
b(i)=s(i)/2;
c(i)=(y(i+1)-y(i))/h(i)-(2*h(i)*s(i)+h(i)*s(i+1))/6;
d(i)=y(i);
end
if nargin ==3 %Puntos del trazador cúbico natural
p=[];
m=length(z);
for k=1:m
t=z(k);
for i=1:n-1
if t>=x(i) && t<=x(i+1)
p(k)=a(i)*(t-x(i))^3+b(i)*(t-x(i))^2+c(i)*(t-x(i))+d(i);
end
end
end
if m>1
k=m;i=n-1;
p(k)=a(i)*(t-x(i))^3+b(i)*(t-x(i))^2+c(i)*(t-x(i))+d(i);
end
clear a b c d;
a=p;
end
Valora esta pregunta


0