matlab样条插值函数,已经有求插值函数的程序,想知道求一系列值的程序该怎么写function [sx]=cubic(x,y,dy0,dyn)n=length(x)-1;d=zeros(n+1,1);h=zeros(1,n-1);f1=zeros(1,n-1);f2=zeros(1,n-2);for i=1:nh(i)=x(i+1)-x(i);f1(i)=(y(i+1

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 15:44:35

matlab样条插值函数,已经有求插值函数的程序,想知道求一系列值的程序该怎么写function [sx]=cubic(x,y,dy0,dyn)n=length(x)-1;d=zeros(n+1,1);h=zeros(1,n-1);f1=zeros(1,n-1);f2=zeros(1,n-2);for i=1:nh(i)=x(i+1)-x(i);f1(i)=(y(i+1
matlab样条插值函数,已经有求插值函数的程序,想知道求一系列值的程序该怎么写
function [sx]=cubic(x,y,dy0,dyn)
n=length(x)-1;
d=zeros(n+1,1);
h=zeros(1,n-1);
f1=zeros(1,n-1);
f2=zeros(1,n-2);
for i=1:n
h(i)=x(i+1)-x(i);
f1(i)=(y(i+1)-y(i))/h(i);
end
for i=2:n
f2(i)=(f1(i)-f1(i-1))/(x(i+1)-x(i-1));
d(i)=6*f2(i);
end
d(1)=6*(f1(1)-dy0)/h(1);
d(n+1)=6*(dyn-f1(n-1))/h(n-1);
A=zeros(n+1,n+1);
B=zeros(1,n-1);
C=zeros(1,n-1);
for i=1:n-1
B(i)=h(i)/(h(i)+h(i+1));
C(i)=1-B(i);
end
A(1,2)=1;
A(n+1,n)=1;
for i=1:n+1
A(i,i)=2;
end
for i=2:n
A(i,i-1)=B(i-1);
A(i,i+1)=C(i-1);
end
M=A\d;
syms t;
for i=1:n
sx(i)=collect(y(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i))*(t-x(i))+M(i)/2*(t-x(i))^2+(M(i+1)-M(i))/(6*h(i))*(t-x(i))^3);
digits(4);
sx(i)=vpa(sx(i));
end
for i=1:n
disp('S(x)=');
fprintf(' %s (%d,%d)\n',char(sx(i)),x(i),x(i+1));
end
这上面是求样条插值函数的程序,现在想求-1:1:100,这100个插值点函数的值,怎么运行,我编写的程序是
S=zeros(1,99);
for i=1:99
t=-1+0.02*i;
for j=1:n
if (x(j)

matlab样条插值函数,已经有求插值函数的程序,想知道求一系列值的程序该怎么写function [sx]=cubic(x,y,dy0,dyn)n=length(x)-1;d=zeros(n+1,1);h=zeros(1,n-1);f1=zeros(1,n-1);f2=zeros(1,n-2);for i=1:nh(i)=x(i+1)-x(i);f1(i)=(y(i+1
报什么错啊?
插值点时,你写的也不完整啊.你看看私信吧.